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
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.
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”).
Related entry posted by @pushcx months ago: Awesome Falsehood
A series of articles or screencasts would probably be the best way to disseminate this information.
Only one of these things is actually a data type. Proof this course really is needed?
What definition are you using for “data type”, because I count more than 1 with my intuitive (i.e., non-formal) definition?
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.