4 ms·
After graduation, I fought my undergrad to switch the CS 101 course from Java to Python for the simple reason that public static void main() has a huge number
by caseysoftware 5y ago
After graduation, I fought my undergrad to switch the CS 101 course from Java to Python for the simple reason that
public static void main()
has a huge number of concepts built in and "just trust us, we'll cover that later" is a terrible excuse.
Edit: Even now, years later, I still got them in the wrong order. Arg.
- lupire 5y agoThat's a bit silly reasoning. Processing is Java but doesn't have public static void main. Python has a the beginners problem that a small error won't block compile but will make the program behave on completely bizarre ways.
- simplify 5y agoI'm not sure that's a good reason. Handling "just trust us, we'll cover it later" is as essential skill when learning anything, especially things related to programming.
- ineedasername 5y agoYeah, ignoring that might be okay in a course like "Programming for non-CS Majors", but I'd expect better from an actual CS program where understanding the foundations of the language you're working with are important. I remember the same exact thing from Java, and similar "magical words" that weren't explained but I was simply told had to be there. Learning for/while/do loops and variable assignment and all of that is fine for a programming course, but the first semester of a CS course shouldn't just be sticking a fahrenheit to Celsius converter or a string reversal or simple sorter in between magic words and symbols.
- kaba0 5y agoI disagree. Other than the already mentioned points in replies, static typing and failing at compile time with a helpful error is really important. Runtime errors are much harder to interpret and debug - it is a skill they will have to learn later on, but inferring runtime state at a given point is arguably harder than doing so statically.