Skip to content

Comment on How to make CS courses better

Comments

I agree, I'm a third year CS student and 90-95% of what I know I learned from in class projects or projects on my own. I didn't learn how to write good code by studying for exams.

The best class I ever took was a graduate level course called Internet and Web Systems. It was entirely project based and, more importantly, the projects were entirely spec-based.

For example, the first assignment was to write a webserver in Java that met the HTTP 1.1 Spec. The prof didn't care what algorithms we used or what data structures, all that mattered was that the server performed as desired when subjeced to tests. These were not unit tests that tested specific method interfaced but real-world test like 100,000 concurrent connections or testing for proper response codes in uncommon situations.

The last project in that class was to build a search engine. I mean an entire search engine, a crawler, an indexer, PageRank, a frontend, etc. all distributed over a DHT on AWS. I learned so much about disk/memory management and concurrency while building that project. In the end it was graded on 2 things: the robustness of the architecture we invented, and the professors experience when using the search engine. These criteria gave us a lot of freedom to learn and explore new programming techniques.

TL;DR - I agree, projects are the way to go.

That's a massive project, but I agree most learning in CS happens with actual implementation. There's a massive difference in knowledge between being able to say "I've studied that" and "I've built that".

It appears the professor, Dr. Andreas Haeberlen, is deeply connected to some of the tech titans and has structured the course around influence from his own network [1]. Bravo. We need more similar course offerings across schools.

Internet and Web Systems is quite interesting in combining aspects of data structures, web apps, distributed systems, information retrieval, and cloud computing in a single course. Its undergrad daughter course Scalable and Cloud Computing also seems valuable. Some excellent paper and tutorial links are included on their course webpages [2][3].

1: http://www.thedp.com/article/2012/11/company-sponsored-compu...

2: http://www.cis.upenn.edu/~cis455/

3: http://www.cis.upenn.edu/~mkse212/

[meta]: 3 "tl;dr" rules:

1) Try not to need it at all.

2) Write it first, not last.

3) Ommit "tl;dr". The summary is enough by itself.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.