Assignment Information

Assignments: Either A1 or A2, and A3
Late Days: from filling 3 surveys (at most 2 per assignment)
Submission: Paperless

Assignment 3: Gap Buffer (Parts 4-9)

Spec

Due: March 5, 2020, at 11:59 pm

From part 4 onward, the GapBuffer class is now a template! This will require moving and adapting your previous code into this new project.
Assignment is updated with 45 test cases! We've also given you the headers for each function as well. Hopefully that helps! Don't hesitate to reach out if you have questions!

Assignment 3: Gap Buffer (Parts 1-3)

Spec

Due: March 5, 2020, at 11:59 pm

This is a new assignment! We're still ironing out the final details - please let us know on Piazza if you have any questions, clarifications, or feedback. You will be implementing a gap buffer, which is the backend of popular text editors like emacs. There are 9 parts to this assignment. The goal is that after each lecture, you will be able to complete the next 1-2 parts of the assignment. This first starter code is used for parts 1-3. When we get to part 4, we will use a different file, since we need to turn our class into a templatized one! By the end of this full assignment, you will have implemented a useful class that works with all the STL algorithms, and is fast, efficient, and multithreaded!

Assignment 2: WikiRacer

Spec

Screenshots Due: Saturday, February 8th, 11:59pm
Assignment Due: Saturday, February 15th, 11:59pm

In this assignment you'll be writing a completely novel program that finds link ladders between two Wikipedia pages by using an intelligent algorithm. In the process, you will hopefully develop a strong understanding of several core C++ features such as iterators, algorithms, and containers!

There are two parts (and one survey) to this assignment. The survey (due 2/8) should take no more than 5 minutes. Part A shouldn't take more than 2 hours. The tasks are broken up into small manageable steps and we encourage you start early so that you can clarify any questions with us well before the deadline. The code for this assignment is not very long, but it can be dense in terms of the modern C++ concepts it employs. Ask lots of questions and have fun with it!

If you have any trouble getting started, want any clarification, or spot any typos/errors, please email us!

Assignment 1: GraphViz

Spec

Due: Thursday, January 30th, 11:59pm

In this assignment you'll be writing a graph visualization algorithm. For full details, click the PDF button above!

This year we have a live web demo! Unfortunately, JavaScript handles numbers a little differently than C++, so the web version behaves slightly differently. The end shape should be correct, though. doodad-3 is a notable exception; if you find others that you think are wrong, let me know! Some examples take a while to finish.