Harvard Extension School Student Forum

Come discuss with other HES students in a new forum who are at Harvard Extension School. Talk about life in and around Cambridge, Boston, classes, school, Harvard University, course reviews, and more. Interested in the best ways to travel to Harvard for your residency requirement? Check out the 'On and Around Campus' category for tips and advice. Want to join a book club with other Harvard Extension School students that read through the Harvard Classics? It's a Harvard education in and of itself. ExtensionStudentForum Forum categories include 'Job Postings & Job Seekers', 'Extension Confidential', 'Professional Graduate Certificates', 'HBX', 'ALB' and 'ALM' discussions. Extension Student Forum is brought to you by The Degree Tracker.

Register with your Harvard.edu email address

This forum is exclusively for Harvard University students. The sponsor for this forum is an exciting new web app, The Degree Tracker. Track and plan your Harvard Extension School ALM and ALB degrees or professional graduate certificate. Course ratings, instructor reviews, accomplishment badges, planning, tracking, and other tools to help guide students through their HES journey. TheDegreeTracker is proud to bring you this tool to use to track your degree at Harvard Extension School. If you are a student who has more courses than you can keep track of, and you would like to plan out your degree pathway carefully, then track and plan courses with the Degree Tracker to take control of your education. Including course reviews and course ratings, TheDegreeTracker has the potential to not only guide you through your degree, but to let you help other students who might be wondering about the HES courses that you've taken. The Degree Tracker is glad to provide the Harvard Extension School Student Forum (ESF) to help foster a nurturing environment. This forum for was born in 2015 to create better Harvard Extension School friendships, networking, and information to contribute to a better overall HES experience. Extension students formerly congregated at forums such as philfac and extensionstudent. This website has no affiliation with either the philfac or extensionstudent websites. It has been created and run by 100% completely different leadership. For the extension student who wants a bigger taste of what life with other Harvard Extension students is like, combining the Degree Tracker and the extension student forum can foster that sense of community that others have on campus. Another advantage of participating in an online community over the Harvard campus is that extension students can develop permanent relationships with other extension students that being on a physical campus might not necessarily allow, since online students are great at staying in touch online.

What would you like to see in a forum?

We'd be glad to hear your feedback. It's no piece of cake to graduate with your Bachelor of Liberal Arts or Master of Liberal Arts in a timely fashion, but your Bachelor's or Master's degree plan will only benefit from making use of the Degree Tracker and this exclusive forum for Harvard's marvelous students.

How to prepare for CS124

CS124 is one of the most notorious courses offered at Harvard which is skipped by many Extension School students for its difficulty. I'll try to explain how to properly prepare for it - it doesn't mean that you'll get an A after doing everything in this post, but you're much more likely to understand over 99% of the class and learn much more.

Even though it's official name is "Data Structures and Algorithms", it should really be called "Design and Analysis of Algorithms". The class is extremely math-y (even people from math department occasionally complain) and doesn't involve a lot of programming (depends on the instructor, though). The official prerequisites for CS124 are CS51 and CS20, which is typically enough to pass though CS124, but not always to succeed unless you're one of the smart and bright students from College.

CS20 (or any class/MOOC covering the same topics) is definitely a hard prerequisite for three reasons: first, you must be comfortable with proofs when you come to CS124. Don't try to learn proving things at the same time - a very bad idea. If you had some proof experience before from abstract algebra or other math classes, you'll probably struggle for the first 2-3 weeks and then be fine; yet, I recommend practicing problems from discreet math domain because they're more useful in Algorithms and the transition will be much easier. The second reason is actually discreet math. This one is not as essential as proofs because you can pick it up along the way, but again, if you want to concentrate on learning algorithms and not re-watch every lecture multiple times, know discrete math in advance. The third reason is the knowledge of discreet probability which is used in CS124 relatively often (again depends on the instructor). CS20 covers that enough for you to understand everything in CS124. It's possible to learn probability on your own if you've taken into statistics class before (read Stat-100), but again a bad idea to start from scratch while taking CS124. 

CS51, which often is not that popular among HES students, covers functional programming and persistent data structures (lists, trees, heaps, streams) which you must know before CS124 because it will discuss a bunch of optimizations and theory behind them. You do not really need to know functional programming, but solid understanding of recursion which you'll have after CS51 is invaluable in CS124. 

Now, there's a problem with both CS20 and CS51. CS20 is taught using live blackboard conference and isn't suitable for everyone for different reasons: time zone difference, difficulty to convey a good proof using blackboard drawing tools, desire to watch the real 1,5 hour lecture with blackboard and chalk explanations rather than 10min shorts by Harry Lewis with slides. I faced all of those issues and dropped CS20 after week 1. If you're in a similar situation, check Berkeley's CS70 recorded lectures on YouTube which I personally have found recently and have been filling the gaps in my discreet math knowledge. They cover everything from CS20 and even more. Next, CS51 is a wonderful class, but it's focused on functional programming and it skips how you build similar structures in procedural languages or mutable data structures for solving problems. There's another recorded Berkeley course that I recommend studying - CS61b, data structures, which first introduces java given that you know some programming language and then covers data structures from basic sequences to graphs (CS51 doesn't cover graphs at all). Along the way CS61b also covers good OO design practices for java. The class is similar to CSCIE-22, but involves twice as many cool programming assignments (especially look at archived projects), which I personally think is great to practice data structures and algorithms while solving some interesting problems. The unfortunate things about CS70 and CS61b is that nether of them are MOOCs, so you have to watch lectures on YouTube, check official course web sites for homework/projects and will not get any feedback/solutions. 

Optional: If you enjoy solving problems for fun and want to code more advanced algorithms which you'll cover in CS124, take a look at Princeton's Coursera MOOC Algorithms part2. The course covers first part of CS124 but focuses on programming part rather than math concepts. I guess CS124 will become more digestible after you've coded something even without understanding deep math behind that. Once again, part2 of Algorithms has a huge overlap with first part of CS124, so it's totally optional.

TL;DR: to be ready for CS124, take CS20 and CS51; it's your bare minimum to be prepared for one of the most challenging CS classes at Harvard; both are offered in spring. In case you want a better preparation, self study CS70 while taking CS20 or after it and during summer study CS61b which you're very likely to enjoy and learn Java (I assume you've taken CS50 and not CS10ab/CS22).
Sign In or Register to comment.