# Stanford 1-2-3 Assignment

**WHAT:** Students coming to CS106X are expected to have substantial prior experience with programming constructs such as loops, functions or methods, arrays, console and file I/O, standard data types, and classes. In other words, students coming to CS106X are expected to know how to write code. In this course, we transform you from someone who knows how to write some code into someone who can wield the power of the computer in a more expansive, versatile, and fluent way. This course adds powerful new tools to your skillset: managing complexity through abstraction, using recursion to crack big, tough problems by breaking them into smaller solvable problems, and applying analytical tools to evaluate the efficiency of different software design choices.

Topics (schedule is very approxmiate):

- Week 1: (Very quick) transition to C++ (anticipating that most of the audience will have used Java and not C++), get started on the Basic ADTs (see weeks 2-3).
- Weeks 2-3: Basic ADTs: Vector, Grid, Stack, Queue, Map, Set, Lexicon.
- Week 4: Recursion, advanced recursion, backtracking recursion
- Week 5: Pointers and dynamic memory allocation (new/delete), classes in C++
- Weeks 6-8: Basic ADTs revisited: how do we implement them behind the scenes? Linked lists, trees, Binary Search Trees, tries, hashing.
- Week 9-10: Graphs, graph search algorithms (BFS, DFS, A*), minimum spanning tree algorithms; also inheritance and polymorphism in C++.

Week1 Sun 12:00 AMWeek1 Fri 12:00 PM No assignments have been posted yet. There will be an announcement on the main course web page when each assignment is posted.

### Homework 8 (Graphs; Inheritance): Stanford 1-2-3

**due:**, 6:00pm (not accepted after , 6:00pm)

**pair assignment** (you may work alone, or with one partner from your section; see pair rules)

For this assignment you must solve and turn in the following single problem:

### Homework 7 (Graphs): Trailblazer

**due:**, 6:00pm (not accepted after , 6:00pm)

**pair assignment** (you may work alone, or with one partner from your section; see pair rules)

For this assignment you must solve and turn in the following single problem:

### Homework 6 (Binary Trees): 21 Questions; Huffman Encoding

**due:**, 6:00pm (not accepted after , 6:00pm)

**pair assignment** (you may work alone, or with one partner from your section; see pair rules)

For this assignment you must solve and turn in **both** of the following problems: (We may post a third problem over the weekend.)

### Homework 5 (Linked Lists): Patient Queue; Tiles

**due:**, 6:00pm (not accepted after , 6:00pm)

**pair assignment** (you may work alone, or with one partner from your section; see pair rules)

For this assignment you must solve and turn in **both** of the following problems:

### Homework 2 (ADTs): Word Ladder; N-Grams; Maze Generator

**due:**, 6:00pm (not accepted after , 6:00pm)

**pair assignment** (you may work alone, or with one partner from your section; see pair rules)

For this assignment you must solve and turn in **all three (3)** of the following problems:

### Homework 1 (C++ Basics): Mad Libs; Game of Life; Fauxtoshop

**due:**, 6:00pm (not accepted after , 6:00pm)

**individual assignment** (no pairs)

For this assignment you must solve and turn in **all three (3)** of the following problems:

### "I need help with my homework!"

- There is probably someone in the LaIR, or maybe the instructor has office hours soon. If so, go see them.
- Check the message forum; your question may have been answered there.
- Go to the YEAH hours for this assignment.
- Read the relevant chapters and sections of the textbook
- Look at the in-class lecture examples.
- Look at this week's section handout problems and their solutions.
- Start early! We get swamped the day assignments are due.
- Don't panic. Every student has late days that can be used to submit an assignment after the due date.

## 0 thoughts on “Stanford 1-2-3 Assignment”