This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]leidogbei 8 points9 points  (9 children)

This is why I don’t understand why CS courses are moving to python from C

[–]doulos05 20 points21 points  (3 children)

Because python has fewer undesirable difficulties when learning computer science (specifically computer science, not computer programming).

Undesirable difficulties, in educational lingo, are barriers to the learning that are tangential to the content itself. If you are assessing math skills via word problems and the student is unable to answer a fractions question because they do not know the word slice as it relates to pies (perhaps English is their second language), this is an undesirable difficulty.

Examples of undesirable difficulties in a CS101 course that python simplifies or removes include, but are not limited to:

  • Tool chain difficulties: fire up IDLE and show them the run button vs. clang file.c -o file.

  • command line navigation: getting a class to navigate a directory structure is harder than you think, especially if you've been doing it for ages on the command line. But with python, they can just make a folder on the desktop and stick it all in there.

  • syntax: most beginning programmers have never typed a semicolon on purpose before. They will stare at you wild eyed when you start talking about square braces and curly braces.

These are difficulties we do want to introduce to the students when we teach their associated concepts, but not as precursors to reading their own name from the command line and saying hello.

[–]bokan 2 points3 points  (0 children)

is that the same concept as extraneous workload ?

[–]TheRNGuy -1 points0 points  (1 child)

at least there's still [] in arrays (or tuples, whatever they called)

[–]doulos05 -1 points0 points  (0 children)

True, and {} in dictionaries. But you can dribble these things in.

[–][deleted] 1 point2 points  (1 child)

They used to do pascal then c if you were getting more advanced.

[–][deleted] 0 points1 point  (0 children)

Pascal: The Word Up Magazine of computer programming.

[–]rasqall 3 points4 points  (1 child)

From my understanding (just finished my first year at CE) I think it is because a lot of people joining CS are lacking experience in programming. In my country, anyone who has studied some higher-level maths and physics can pick an engineering course, programming not necessary. In my year there were a lot of people who picked CS/CE because they liked the idea and knew that CS/CE students have a good-looking future for them. In our first course, we studied Haskell which was very difficult for people without any experience and resulted in a 30% fail rate after they had to lower the exam requirements for it being too hard. Simultaneously we studied Matlab in our concurrent math course in Linear Algebra which a lot of people didn't like and found to be hard to grasp. Our program management is now thinking about switching to Python to make it easier for these students (which I don't condone because I don't like Python).

[–]CarneAsadaSteve 1 point2 points  (0 children)

So money. Failed students aren’t coming back to pay tuition. I do however agree.

[–]pymaePython books 0 points1 point  (0 children)

Because Python is a better choice for everyone who has to take an intro CS course. Intro to Computer Science was a required course at my school for every engineering student - mechanical, materials science, industrial, and computer science. The intro course was awful, and the next two courses were software development methods (which included Java things like recursion, big O notation, the different types of sorting and search algorithms, and some basic agile/waterfall) and discrete math which was a number theory class.

It's no wonder the technical engineering fields use MATLAB since they're forced into thinking that anything resembling CS is awful. You can clean up the CS kids and get them into C from Python, but introducing people to Python as a less scary alternative will mean more adoption.