user avatar
morgan
@CasualEffects
Roblox Chief Scientist U.Waterloo & McGill Prof. @morgan3d.bsky Known for NVIDIA, Unity, Graphics Codex, Markdeep, G3D, Skylanders, E Ink, Titan Quest, Williams
Ontario, Canada
Joined January 2012
  • user avatar
    It wasn't until I'd *taught* algorithms a few times that I finally understood why sorting is in the CS curriculum. Unfortunately, most curricula don't explain this! It is NOT because sorting is an important algorithm to learn to implement...
    As a 41 year-old software developer do you know how many times I've had to manually implement QuickSort? Zero. Maybe we should test for more useful skills like taking a slow SQL query and optimizing it.
  • user avatar
    GIF
  • user avatar
  • user avatar
    Replying to @CasualEffects
    By using different sort algorithms as a running example, we can cover ideas such as: - Asymptotic analysis - Space vs. time tradeoffs - Best case vs. worst case vs. expected case behavior - Functional vs. imperative implementations - Explicit stack vs. recursive implementations
  • user avatar
    Replying to @CasualEffects
    We teach sorting in algorithms classes because it is a simple and easy to motivate EXAMPLE of different algorithms for accomplishing the same task. The solution isn't the point in the classroom. The problem is the point...
  • user avatar
    The @Roblox metaverse connects 100s of millions of players in millions of games, with consistent personas. As Chief Scientist, I'm now leading computer-, data-, and social-science research to continue Roblox's innovation for coexperience, creativity, safety, and digital civility.
  • user avatar
    Replying to @CasualEffects
    In conclusion, the point of the sorting lectures you had in college was the lessons you learned along the way, not the sorting. I'm really sorry we didn't tell you that at the time!
  • user avatar
    I'm excited to announce in partnership with the @nvidia Deep Learning Institute that the Graphics Codex is now a free online computer graphics rendering and ray tracing textbook at graphicscodex.courses.nvidia.com The programming projects run everywhere and are accelerated on RTX GPUs.
  • user avatar
    Replying to @CasualEffects
    - Stable vs. unstable - Adversarial cases - Concurrency As a bonus, we can also point out that if you give your algorithm a cool name like "QuickSort", then generations of programmers will naively assume that it is the fastest sorting algorithm and use it...
  • user avatar
    Note that Roblox uses the Right Handed, Y=Up 3D category. It matches the intuition you probably have from learning coordinates when graphing in school, follows my favorite textbooks, and plays nice with cross products: X × Y = Z; Y × Z = X; Z × X = Y.
  • user avatar
    Replying to @CasualEffects
    As a professor, scientist, programmer, game developer, etc. what sorting algorithm do I use? WHATEVER SORT IS IN MY STANDARD LIBRARY ...
  • user avatar
    regexper.com just changed my programming life. Suddenly regexps aren't write-only expressions...
  • user avatar
    I'm now Director of Hyperscale Graphics Systems research at NVIDIA! And my team is hiring PhD interns and senior scientist/engineer positions right now (thread):
  • user avatar
    I'm amazed that the debugging experience circa 2000 in C++ with Visual Studio or CodeWarrior (or even xgdb) was more sophisticated than now with Python, JavaScript, and various GPU languages. We're really back to working with "printf" a lot instead of visual debugging.