EE 200  —  Accelerated programming for graduate students

For Fall 2020 this course will be completely online with no scheduled class meetings.

Quick links: GradescopeCampuswire

Office hours

I will have regular office hours on Tuesday and Friday evening 8-9:30pm US EST. You can see these posted on this calendar: US Eastern time | Beijing time

Schedule and links

Unless otherwise specified, assignments are due at 11:59pm (US Eastern time) on the day listed.

1Welcome and introduction
Wednesday, Sep 9Introduction to the course
What this course is really about
Organization of the course
How to complete HW 1
Purchase textbook
Read syllabus
Complete Homework 1 (due 9/14 via provide)
2Reading code + datatypes
Read AoP ch 2-3
Monday, Sep 14Quiz 2 (there is no quiz 1)
++i vs i++
Enum, continue, and other language features (coming soon)
Doing math with integers
On comparing floating point numbers
Binary number representations (video from Ben Eater)
Vim tips: moving quickly
Bad code in real life: Ariane 5 rocket
Start Homework 2 (due 9/17 via provide)
3Writing, compiling, and debugging code
Read AoP ch 1-1.3, 4-6
Friday, Sep 18Quiz 3
Cloning your first homework repository with git
Compiling your code with gcc
Committing and pushing your code back to Github
Submitting your homework on Gradescope
Understanding test coverage
Start Homework 3 (due 9/24 via git/gradescope)
4Pointers
Read AoP ch 8
Monday, Sep 21Quiz 4
Using tabs in Vim
Pointer fun with Binky (video from Nick Parlante)
Start Homework 4 (due 9/28 via git/gradescope)
5Arrays
Read AoP ch 9
Thursday, Sep 24Quiz 5
Some SSH tips
Start Homework 5 (due 10/1 via git/gradescope)
6Using pointers and arrays for good and evil
Read AoP ch 10
Monday, Sep 28Quiz 6
Introduction to tmux
Start Homework 6 (due 10/9 via git/gradescope)
8Interacting with the user and system
Read AoP ch 11
Monday, Oct 5Quiz 8 (there is no quiz 7)
Introduction to Make
Start Homework 7 (due 10/12 via git/gradescope)
9Recursion
Read AoP ch 7
Thursday, Oct 8Quiz 9
Start Homework 8 (due 10/15 via git/gradescope)
10Dynamic allocation
Read AoP ch 12
Monday, Oct 12Quiz 10
Using Valgrind
Start Homework 9 (due 10/19 via git/gradescope)
11Object-oriented programming
Read AoP ch 14,16
Thursday, Oct 15Quiz 11
Start Homework 10
12Constructors and destructors
Read AoP ch 15
Monday, Oct 19Quiz 12
Tuesday-FridayCoding interview 1 (2018 exam 1, 2018 exam coding problem)
Start Homework 11
13Templates
Read AoP ch 17
Monday, Oct 26Quiz 13
Start Homework 12
How to write good Git commit messages
"Good code documents itself" and other hilarious jokes you shouldn't tell yourself -- Hackaday
14Inheritance
Read AoP ch 18
Thursday, Oct 29Quiz 14
Using branches in Git
15Error handling
Read AoP ch 19
Monday, Nov 2Quiz 15
UnluckyNumber exception demonstration (Source code)
Start Homework 13 (due 11/30 via git/gradescope)
16Concurrency, callbacks, and the real world
Pthreads tutorial (multithreading)
SDL addTimer function (callbacks)
Quiz 16 (optional)
17Overview of algorithm analysis and sorting
Read AoP ch 20.1, 26
Tuesday, Nov 24Quiz 17
Using GDB for debugging
18Linked lists
Read AoP ch 21
Thursday, Dec 3Quiz 18
Start Homework 14 (due 12/8 via git/gradescope)
19Binary search trees
Read AoP ch 22
Saturday, Dec 5Quiz 19
Start Homework 15 (due 12/11 via provide)
20Hash tables
Read AoP ch 23
Monday, Dec 7Quiz 20
21Heaps and priority queues
Read AoP ch 24
Thursday, Dec 10Quiz 21
Start Homework 16 (due 12/22 via git/gradescope)
22Multithreading in modern C
Read AoP ch 28
Quiz 22 (optional)
Start Homework 17 (optional)
23Graphs
Read AoP ch 25
Quiz 23 (optional)
Final coding interview materials
Topic review sheet
2018 Exam #2
2018 Exam #3
"How many copies?" example
Template-based tuple example
Inheritance example