37.1 The end is near
Another Software Engineering lecture!? Yes!! We're actually now almost done with 61B. Best of luck on finals! Today, we'll actually just be spending time reflecting on 61B.
61B has been taught since ~Spring 1994. Before that, it was CS60C, which goes back to at least 1988.
In modern times there have been 4 varieties of 61B:
- Hilfinger: 4 extremely long real world projects that are somewhat based on data structures material.
- Hug: 1 (or 2) long real world project that is somewhat based on data structures material. Remaining material ties in tightly to lectures.
- 61BL: Lab based class that focuses heavily on data structures, but with one large real world project (Gitlet).
- Shewchuk / Yelick (extinct): Focus on implementing data structures. No large real world project
Gitlet was first offered in the Spring 2015 offering of 61B.
- My first solo offering of the class.
- Projects had significant authorship from students.
- Project 0 - Bomb Checkers (me, but implemented by Jimmy Lee).
- Project 1 - ngordnet (me).
- Project 2 - Gitlet (Joey Moghadam).
- Project 3 - Fun with Tries (me, adapted from my old Princeton HWs).
- Joey also used the project as one of his assignments in Summer 2015.
CS61B Version 2 (Spring 2016, 2017)
- Fall 2014/Spring 2015 observation: Hated that students had to split time between the core data structures content and a huge project that wasn’t related to that content.
- Decided to have the messy real world project due right before data structures:
- 2016: Build a text editor.
- 2017: Create software for manipulating text databases. (This is a very cool project! I really hope you can try this for yourselves and then take CS 186!!)
CS61B Current Version (3.6) (Fall 2022 and Spring 2023)
- Replaced Gitlet with Ngordnet.
- Ngordnet is much more data structures focused.
- 2A: Build a TimeSeries and build an NgramMap.
- 2B: Build whatever you need to support additional functionality, including implementing a graph somehow.
GSIs voted ~3 to 1 to keep Ngordnet over Gitlet.
Overall this course was meant to help you with Software Engineering. And all of you have done an amazing job making data structures such as HashMaps and ArrayLists and using Java to solve real-world problems that I hope was interesting! Many people even come out of this class signing up for Linguistics 100 after learning about hyponyms and doing Ngordnet. Wherever you now go equipped with this amazing knowledge of 61B, I wish you the best of luck! Here's to solving more problems with CS! Cheers and good luck on Finals!
Spring/summer 2015 Gitlet was way too hard.
- No testing provided.
- No tips on persistence.