Comment by chrisaycock

Comment by chrisaycock 7 days ago

10 replies

This op-ed was written by an undergrad and complains that Northeastern's switch to Python (from Racket) for its introductory classes will prevent students from learning fundamentals of computer science.

But that complaint can be made about any language! "This dynamically typed language won't allow students to understand type safety." "This high-level language won't allow students to learn pointers and systems programming." Etc.

I believe that an intro course should get students coding since the first major hurdle is learning how to construct any kind of program at all. The switch to a more "employable" language isn't going to make education worse.

ycombinatrix 7 days ago

How about you focus on the argument instead of making ad hominem attacks?

>Racket was chosen because it has “teaching languages” that can gradually introduce features as students are taught the relevant design principles.

So no, that complaint can't be made about any language.

SolarNet 7 days ago

Tell me you haven't read the article (or used racket) without telling me.

> I believe that an intro course should get students coding since the first major hurdle is learning how to construct any kind of program at all. The switch to a more "employable" language isn't going to make education worse.

None of this is the issue at hand. The switch to python is because industry uses it. The article correctly makes the point that racket was intentionally designed to get students coding as easily and quickly as possible. It has multiple steps of teaching languages for exactly that purpose, introducing concepts in ways that let students grapple with them one at a time in an interactive environment.

Meanwhile in python complex topics like duck typing, object oriented methods, exceptions, the distinction between iterables and lists, how to use a command line/terminal or how to configure an IDE, and so on must be covered before people can start writing code for the exercises. Racket is streamlined for beginners.

  • lazyasciiart 7 days ago

    > Meanwhile in python complex topics like duck typing, object oriented methods, exceptions, the distinction between iterables and lists, how to use a command line/terminal or how to configure an IDE, and so on must be covered before people can start writing code for the exercises.

    No, they dont have to be at all. You might as well suggest you need to learn the JVM before writing a line of Java.

  • wombatpm 7 days ago

    Python supports imperative, OO and functional programming paradigms. And to start you can use any text editor, an IDE is not required. In fact you can start working in the REPL right away, in which case you need a terminal and the command “Python”.

    • Jarwain 7 days ago

      All of that except for working in the terminal, could probably be considered higher level

    • sorawee 7 days ago

      To quote the above person: "tell me you haven't read the article without telling me".

      You thought that supporting multiple "programming paradigms" is a nice thing, but it's the opposite for teaching beginning student. Experienced programmers want expressivity/customization/choices to do whatever they want. That's not what newbies need when they get stuck on an assignment.

  • [removed] 7 days ago
    [deleted]
AnimalMuppet 7 days ago

Does anyone else question whether an undergrad is best able to evaluate the strengths and weaknesses of the curriculum?

  • fn-mote 7 days ago

    In this case, you can find the same criticisms in published articles and books. I expect this student heard them straight from the source (author of the articles or books). That does not lessen their impact or correctness in my opinion.

    Also, see SolarNet's comment. https://news.ycombinator.com/item?id=42677918

  • 000ooo000 7 days ago

    Yeah.. Undergads leave school and are barely trusted to write CRUD apps.