Problem: This course in Advanced Programming is too irrelevant, too specific, too research-heavy, full of repetition and tedium, extremely light on actual programming, and of somewhat low quality in its materials.
Duration:
July 20, 2020
Background:
I wrote a lengthy review of LAFF here. I have read through all the electives of the Knowledge Areas in the CS 2013 document and this course does not really cover any of them in my opinion (except for Logic, which is covered elsewhere in the curriculum).
Proposal:
Remove it from the curriculum.
I don't see any clear connection to the topics in CS 2013 either.
As an aside, I think there is an open question as to what exactly should be in "Advanced". Should Core be all topics in Tier 1, with Advanced covering topics in Tier 2 and Extras covering electives?
Either way, this course does not seem to target our curricular goals. I support removing it.
@spamegg1 can you set the duration to July 20, 2020? That will leave a month long comment period.
I agree with removing it 👍️
@waciumawanjohi Updated the date, it was a typo.
I think there is an open question as to what exactly should be in "Advanced".
I have some ideas. These are tricks of the trade that are usually not directly taught in classes but programmers have to pick them up on their own. These are not specific topics covered academically, but rather learned through practice:
and many others. Things that would be considered "the art of programming". Thinking about programs more deeply. These definitely would go under "Advanced" I think. It's very difficult to fit the Tier1/Tier2 classifications into specific courses available on the web.
Design of Computer Programs is a good place to start. Very tough course but incredibly valuable. Definitely feels "advanced", much more so than other courses in Advanced Programming currently. The instructor created it with the above paragraphs in mind (teaching what is usually not taught). I have a review here.
I was just about to open an issue to suggest adding this course to Advanced Programming, but I am having trouble relating it to the CS2013 document. All I can find is Refactoring in SDF/Development Methods, SE/Software Design, SE/Software Evolution, and Advanced Search (A* and such). My difficulty relating it to CS2013 actually reflects the somewhat "unteachable" nature of these skills. I can only say: "it's a great course, take it."
"Maturity" is difficult to pin down. Norvig has an interesting article called Teach Yourself Programming in 10 years which actually gave me the idea to start on this lifelong path. I still have 8 years to go! LOL
If people can read my review, go to the course page, enroll just to browse the topics to get an overview (or if they already took it) and can find topics in CS2013 related to the course, I would greatly appreciate it. Then I can open an issue more properly.
On another question, where would Artificial Intelligence for Robotics fit? Advanced Systems? I took this 8-9 years ago, barely remember it, should write a review of it too.
Making a pull request