2 ms·
I definitely agree -- context matters. For a potential math major [i.e. people for whom metric space refers to a measure and not a flat in Europe :)], you defi
by kalid 12y ago
I definitely agree -- context matters.
For a potential math major [i.e. people for whom metric space refers to a measure and not a flat in Europe :)], you definitely want the ground-up understanding. In CS it's similar, where you learn about transistors, logic gates, ALUs, CPUs, machine code, compilers, along with high-level languages.
But, some people just need the HTML "Hello World" to make their webpage. (In the math field, we have students who need calculus primarily to find the min/max of a function, and are wasting time worrying about epsilon-delta definitions of continuity. Limits are interesting, but I'd prefer to ignite curiosity with higher-level topics then dive into the details, instead of forcing someone to learn organic chemistry before being able to drive a car.)
- hibikir 12y agoThat's how they taught CS at your school? Where I studied, we did have classes on all the low level stuff, but we didn't start there: I took a class taught using a high level language every semester. CS-100 was intro to how computers worked, but right along with it, you had 101 teaching C. If you are going to end up teaching software engineering material, compiler design and such, you just can't have people that have barely done any programming for a year or two, or all they are going to learn is boxes next to each other, instead of being able to actually write a simple compiler in the compiler class.
- kalid 12y agoWhoops, I probably wasn't clear enough in my reply -- the classes on transistors, logic gates, etc. are available to CS majors but are definitely not a requirement for programming. I completely agree that trying to teach about digital logic, etc. without the general context of programming is backwards. Drive the car, build your interest, then start taking classes in chemistry, physics, etc. to see how it works.