1. 17

  2. 7

    It would also be hard to sell the course to students, because it looks a little, well, mundane.

    I don’t know about this. I think it might look like a class on practical, real-world development rather than abstract, tedious computer science and I remember CS students being pretty hungry for that. (Or it might look like an easy couple credit hours and they were often a fan of that. This could be a hilariously hard class, though.)

    When I saw the title I thought this was just going to be about good usage of the data structures that make up almost all usage in software development: objects, lists, maps, tuples, ORM. Some time on dealing with structures that can’t fit into working memory, working lazily, when and how to create types/classes, inheritance, immutable data structures, data validity (“make illegal states unrepresentable”), serialization/parsing. There’s certainly more topics I’m not thinking of off the top of my head, but right now this stuff is partially addressed by a few books* and mostly addressed by “write code at work for 10 years and hopefully reflect on it well enough to figure out practices that don’t lead to endless firefighting” (aka “style”).

    • Code Complete, Clean Code, Refactoring, Design Patterns, Growing Object Oriented Software Guided by Tests, Domain-Driven Design, Working Effectively With Legacy Code, Patterns of Enterprise Application Architecture, Object Thinking
    1. 3

      Related entry posted by @pushcx months ago: Awesome Falsehood

      1. 3

        A series of articles or screencasts would probably be the best way to disseminate this information.

        1. 0

          Times. Dates. Floats. Non-English text. Currencies.

          Only one of these things is actually a data type. Proof this course really is needed?

          1. 4

            What definition are you using for “data type”, because I count more than 1 with my intuitive (i.e., non-formal) definition?

            1. 4

              Time, dates, real numbers, text, and currency all fit the textbook definition of abstract data type quite nicely. I think it’s safe to assume the author intended “floats” and “non-english text” to refer to the representation of these things in computer systems which, while not strictly a study of abstract data types, seems to be a reasonable fit with the intention of such a course.