Did you find a typo or bug in a lab, homework, or project? Was there something that was confusing or
unclear? Let us know how we can improve our assignments by submitting suggestions. We also welcome
positive feedback. Let us know if you particularly liked something.
Was there an issue with the grades of one of your assignments? Please let us know what issues or
mistakes may have occurred when grading your assignment in the regrade request form!
Note: Homework and labs submitted via GitHub are graded automatically according to correctness. We
will not be changing our partial credit rubric for these assignments.
Quick Navigation
Labs
Number | Title | Concepts | Staff | Due Date |
---|---|---|---|---|
1 | javac, java, Git | Intro to Java and Git | Sarah Kim | Sun 2/1, 10 PM |
1b | Setting up your computer | Setup | Japheth Wong, Jene Li | N/A |
1c | Installing .jars on your computer | Setup | Japheth Wong, Josh Hug | N/A |
1d | Installing GJDB on your computer | Setup | Josh Hug | N/A |
2 | JUnit Testing | JUnit testing, IntLists, destructive and non-destructive lists | Melanie Cebula | Sun 2/1, 10 PM |
3 | Debugging, Doubly-Linked Lists | Methods and tools of debugging, doubly-linked lists | Leo Colobong | Sun 2/8, 10 PM |
4 | Project 0 Work Day | N/A | N/A | N/A |
5 | No Lab Following Midterm 1 | N/A | N/A | N/A |
6 | HugLife | Testing and debugging in packages | Daniel Nguyen | Sun 3/1, 10 PM |
7 | Project 1 Work Day | N/A | N/A | N/A |
8 | Asymptotics | Asymptotic analysis | Patrick Lutz | Sun 3/15, 10 PM |
9 | Project 2 Design Lab | Project 2 | Josh Hug | Sun 3/22, 10 PM |
10 | Midterm 2 Themed Office Hours | N/A | N/A | N/A |
11 | Project 2 Work Day | N/A | N/A | N/A |
12 | Sounds of Sorting | Various sorting algorithms | Daniel Nguyen | Sun 4/19, 10 PM |
13 | Graphs | DFS, BFS, graph representations, runtime analysis | Josh Hug | Sun 4/26, 10 PM |
14 | Project 3 Work Day | N/A | N/A | N/A |
Homework
Number | Title | Concepts | Staff | Due Date |
---|---|---|---|---|
0 | Optional Java Exercises | Java practice | Josh Hug | N/A |
1 | NBody Simulation | Static keyword, conditionals, loops, classes, Princeton stdlib | Matthew Chow | Wed 1/28, 10 PM |
2 | Bitwise Operators, Pointers, Linked Lists | JUnit testing, recursive/iterative code, bit operations, stdin | Japheth Wong | Wed 2/4, 10 PM |
3 | OOP | LinkedLists, supertypes, subtypes, static/dynamic type, casting | Anusha Ramakuri | Tue 2/17, 10 PM |
4 | Packages | Packages, abstract classes | Melanie Cebula | Wed 2/25, 10 PM |
5 | Generics | Generic classes/methods | Patrick Lutz | Wed 3/4, 10 PM |
6 | Asymptotics | Binary search trees, graph traversals, asymptotic analysis | Brendan Hu | Wed 3/18, 10 PM |
7 | Hashing | Hashing, hashcodes, and hash tables | Chris Jeng | Wed 4/1, 10 PM |
8 | Sorting | Sorting algorithms | Amanda Chow | Fri 4/24, 10 PM |
Projects
Number | Title | Creators | Support TAs | Support Readers | Category | Weight | Due Date |
---|---|---|---|---|---|---|---|
0 | Checkers61b | Jimmy Lee, Chris Jeng | Leo Colobong, Anusha Ramakuri | Akhil, Andrew, Charles, Fan, Jasmine, Jason Won, Khalid, Nick Rose, Ross, Rudy, Thomas, Wesley | Basics | 1 EC Point | Tue 2/10, 10 PM |
Final | 10 Points | Fri 2/13, 11:59 PM | |||||
1 | Ngordnet | Josh Hug | Jene Li, Japheth Wong, Alex Chou, Jerry Cheng | Allen, Brian, Calley, Colbert, Daniel, Gilbert, Giulio, Jason Zhang, Laura, Nick Fong, Sean, Tara, Yujie | Basics | 1 EC Point | Fri 3/6, 11:59 PM |
Final | 18 Points | Wed 3/11, 11:59 PM | |||||
2 | Gitlet | Joseph Moghadam | Alicia Luengo, Sarah Kim, Matthew Chow, Yan Zhao, Austin Chen, Alan Yao | Akhil, Andrew, Charles, Fan, Jasmine, Jason Won, Khalid, Nick Rose, Ross, Rudy, Thomas, Wesley | Basics | 1 EC Point | Tue 4/7, 11:59 PM |
Final | 24 Points[+5 Gold Points] | Mon 4/13, 11:59 PM | |||||
3 | Fun with Tries | Alan Yao | Dennis Zhao, Patrick Lutz, Daniel Nguyen, Amanda Chow, Brendan Hu | Allen, Brian, Calley, Colbert, Daniel, Gilbert, Giulio, Jason Zhang, Laura, Nick Fong, Sean, Tara, Yujie | Basics | 1 EC Point | Fri 4/24, 11:59 PM |
Final | 18 Points[+5 Gold Points] | Fri 5/1, 11:59 PM |
Discussion Handouts
Number | Title | Concepts | Staff | Solutions |
---|---|---|---|---|
1 | Intro, Code Translation | Intro to Java | Josh Hug | Solution |
2 | Scope, Iterative vs. Recursive, Diagramming | IntLists, Recursion/Iteration, Destructive/Non-Destructive, Pass by value | Alicia Luengo | Solution |
3 | Linked Lists and Arrays | Sentinel Nodes, Arrays, Linked Lists | Jene Li | Solution |
4 | Inheritance | Inheritance, Static vs. Dynamic Type, Overriding Methods, Dynamic Method Lookup | Japheth Wong | Solution |
5 | Midterm 1 Review | Arrays, Linked Lists, Strings | Chris Jeng | Solution |
6 | Abstract Data Types [Yan's Slides] | List, Set, Stack, Queue, Map | Joseph Moghadam | Solution |
7 | Object-Oriented Design | OOP Design, How to break bad stacks, Immutability | Jimmy Lee | Solution |
8 | Asymptotics | Asymptotic analysis | Amanda Chow | Solution |
9 | Trees, BSTs | Trees, Balanced Trees | Dennis Zhao | Solution |
10 | Heaps & Hashing | Heaps, Hashing, Binary Trees, Midterm 2 Review | Patrick Lutz, Sarah Kim, Jimmy Lee | Solution |
11 | Sorting | Sorting algorithms | Anusha Ramakuri | Solution |
12 | Bounds, Comparing Algorithms | TBA | Matthew Chow | Solution |
13 | Graphs | Graphs | Daniel Nguyen | Solution |
14 | Fun Puzzles | TBA | Melanie Cebula | TBA |
Guerrilla Sections
Title | Concepts | Staff | Solutions |
---|---|---|---|
Section 1 | Static vs. dynamic type, bitwise operators, IntLists, OOP, Inheritance | Leo, Nick Fong, Jasmine, Andrew Huang, Yujie, Nick Rose, Khalid, Jason Won | Solution |
Section 2 | Asymptotics and data structures | Anusha, Leo, Akhil, Giulio, Jasmine, Laura, Jason Zhang, Charles, Nick Fong | Solution |
Section 3 | Heaps, Sorts, Graphs, Trees, Hashing | Leo, Anusha, Nick Fong, Jasmine, Laura, Yujie, Nick Rose, Khalid, Jason Won, Fan, Jason Zhang, Giulio | Solution |
Exams
Exam | Concepts | Solutions |
---|---|---|
Midterm 1 | IntLists, Destructive & Non-destructive methods, Pointers, Debugging, JUnit Tests, Bits, Higher Order Functions, Arrays, Static Keyword, Inheritance, Interfaces, Dynamic Method Lookup | Solution |
Midterm 2 | Hash Maps, Heaps, Disjoint Sets, Asymptotics, Trees, Data Structure and Algorithm Selection and Design, Exceptions | Solution |