Home | Learning Goals | Schedule | Administration | Readings | Lab/Lecture Notes | Assignments | Computing |
(Assignments are available from the assignments page.)
Handouts for Everyone!
Here are some possibly-helpful notes:
Lab | Resources | Date |
---|---|---|
Lab 1: An Introduction to Programming and Compiling in C++ |
|
Jan 12 - Jan 16 |
Lab 2: Debugging an Insertion Sort program, and Analyzing C++ pointers and reference parameters |
|
Jan 19 - Jan 23 |
Lab 3: C++ Class and Linked Lists |
|
Jan 26 - Jan 30 |
Lab 4: Binary Search Trees |
|
Feb 2 - Feb 6 |
Lab 5: Minimum Heaps |
|
Feb 10 - Feb 23 |
Lab 6: Marking Lab 5 and Midterm Review | Feb 27 - Mar 5 | |
Lab 7: QuickSort |
|
Mar 6 - Mar 12 |
Lab 8: AVL trees |
|
Mar 13 - Mar 19 |
Lab 9: Hashing |
|
Mar 20 - Mar 26 |
Lab 10: Parallel |
|
Mar 27 - Apr 2 |
Lab 11: Marking Lab 10 and Foundations of Computing Concept Inventory | note1: Students that have their lab on Mondays can drop by other labs and get their work marked. note2: There will be a concept inventory test during this lab. It should take you no more than 30 minutes to complete. Participating in this test is COMPELTELY VOLUNTARY, but you will be given a bonus mark. Doing the Concept inventory is worth 1 lab point (0.33% course grade) | Apr 7 - Apr 10 |
I will try to post my lecture slides before they are presented in class,
usually by at least the day before. However, sometimes I make changes
just before (or during!) lecture, in which case, I will update them
afterwards.
Here are the code examples from the lectures. You'll have to fix
count_matches.cpp as shown on the slides.
count_matches.cpp
Timer.hpp
Timer.cpp
Makefile
Fun, historical, completely optional background reading:
Section 201 (Hu, MWF) Handouts
Important Notes! Because the parallelism section of this
course is not covered in your textbooks, we are providing these
(Note for Mac users: On Hassan's Mac, when he downloaded, it was
renaming the files to be .cp and .hh instead. If this happens to you,
either rename the files to what they were, or edit the Makefile to
reflect the new file names.)
These are the programs I used for the Runtime Smackdown, in case you're curious. With the thrash.cpp program, if you have access to machines with both a modern processor and something Pentium 4 vintage or older, you can see what happens when you change the stride length to different values. I can't get the BASIC programs off of the Tandy 200 easily, since it only has built-in connections for a 300 baud modem, a cassette tape, and an RS-232 serial port. :-) However, I re-typed them for you.
Note: I typically provide source code as plain text files for Linux/Unix systems, and they will work fine on MacOS as well. If you have problems on a Windows system with the entire file appearing on one super-long line, take a look at this Wikipedia page for an explanation and some quick ways to get around this problem.
Topic | Readings from Epp Sections (3rd ed/4th ed) | Readings from Koffman Sections | Dated to be coverd |
Topic | Readings from Epp Sections (3rd ed/4th ed) | Readings from Koffman Sections | Useful Resources, Examples or Articles | Dated Posted |
---|---|---|---|---|
Introduction | Chapters P and 1 | fib.cc | Jan 6 | |
Crash course on arrays and pointers | Chapters P and 1 | leak.cc | Jan 8 | |
ADTs, Stacks, and Queues Lecture Slides | 4.5-4.7, 5, 6.1-6.3, 6.5 | Jan 13 | ||
Asymptotic Analysis | 9.2, 9.3/11.2, 11.3 | 2.6 | Jan 29 | |
Priority Queues and Heaps | 8.5 | Parameter passing in C++ (ppt) | Feb 10 | |
Recursion and Iteration Optional reading material: Iteration, Induction, and Recursion by Jeffrey Ullman | 5.1, 5.2 7.1, 7.2, 4.2, 4.3, 4.5 /6.1, 6.2 7.1, 7.2, 5.2, 5.3, 5.5 | Chapter 7 | permute.cc | Feb 26 |
Sorting
|
9.5 /11.5 | 10.1 - 10.4 and 10.7-10.10 | Mar 3 | |
Binary Search Trees | 11.5/10.5 | 8.1-8.4 | Mar 12 | |
AVL Trees | 11.1, 11.2 | Mar 17 | ||
Hashing | 7.3/9.4 | 9 | Mar 24 | |
Parallelism and Concurrency, part1 Parallelism and Concurrency, part2 Additional Notes on Parallelism and Concurrency | count_matches.zip | Apr 10 |