Program and Data Representation: CS 2150 Specific Content

Fall 2018

Go up to the main README file (md)

Much of the rest of this git repo is meant to be generic to anybody who has a class such as this one. But this page contains details specific to the CS 2150 version of the course at the University of Virginia.


There are a number of links and other parts of this course that are NOT included in this repository. They are:

The parts of this course that are in this repo are:


Labs and Tutorials

This is a series of links to the labs and tutorials that are elsewhere in this repository. A bunch of notes:

Semester Schedule


The links in the right-most column link directly to the lecture recording on Collab, and you have to be logged into Collab first before the link will work. Some plugins (such as NoScript) will block that link from working.

Num Date Day of week Lab & Tutorial (on Tue) Planned topic Bloomfield's lecture progress Floryan's lecture progress Nguyen's lecture progress
1 Aug 29 Wednesday no lab this week Course introduction course intro, slides 1 to 3.41 (recording) course intro, slides 1 to 4.6
2 Aug 31 Friday Course introduction, 01: C++ course intro, slides 3.42 to 7.3 (end); C++, slides 1 to 4.10 (recording) course intro, slides 5.01 to 7.03 (end); C++, slides 1 to 4.15
3 Sep 3 Monday Lab 1: Intro to C++ (md) / Tutorial 1: Intro to UNIX (md) 01: C++ C++, slides 4.10 to 6.9 (recording) C++, slides 5.01 to 6.9
4 Sep 5 Wednesday 01: C++ C++, slides 6.9 to 9.7 (recording) C++, slides 6.9 to 9.11
5 Sep 7 Friday 01: C++ C++, slides 9.7 to 10.13 (recording) C++, slides 9.12 to 10.15
6 Sep 10 Monday Lab 2: Linked lists (md) / Tutorial 2: LLDB (md) OR Tutorial 2: GDB (md) (see lab 2 for which one to pick) 01: C++ C++, slides 10.13 to 12.5 (recording) C++, slides 10.14 to 12.4
7 Sep 12 Wednesday 01: C++, 02: Lists C++, slides 12.5 to 13.14 (end); Lists, slides 1 to 4.4 (recording)
8 Sep 14 Friday 02: Lists Lists, slides 4.4 to 6.7 (recording)
9 Sep 17 Monday Lab 3: Stacks (md) / Tutorial 3: More UNIX, part 1, introduction and sections 1-4 02: Lists, 03: Numbers Lists, slides 6.8 to 9.4 (end) (recording)
10 Sep 19 Wednesday 03: Numbers Numbers, slides 1 to 8.4 (recording)
11 Sep 21 Friday 03: Numbers Numbers, slides 8.4 to 9.13 (recording)
12 Sep 24 Monday Lab 4: Numbers (md) / Tutorial 4: More UNIX, part 2, sections 5-8 03: Numbers Numbers, slides 9.13 to 9.32 (recording)
13 Sep 26 Wednesday 04: Arrays & big-Oh Numbers, slides 9.33 to 9.35 (end); Arrays & big-Oh, slides 1 to 4.12 (recording)
14 Sep 28 Friday 04: Arrays & big-Oh Arrays & big-Oh, slides 5.1 to 5.16 (recording)
Sep 30 Sunday Exam 1 review session recording
15 Oct 1 Monday Exam 1 instead during Tuesday's lab 04: Arrays & big-Oh, 05: Trees Arrays & big-Oh, slides 5.16 to 6.8 (end); Trees, slides 1 to 4.11 (recording)
16 Oct 3 Wednesday 05: Trees Trees, slides 4.11 to 5.20 (recording)
17 Oct 5 Friday 05: Trees Trees, slides 6.1 to 7.6 (recording will be available soon)
Oct 8 Monday No lab this week due to fall break (fall break) (no class)
18 Oct 10 Wednesday 05: Trees Trees, slides 7.1 to 7.30 (recording)
19 Oct 12 Friday 05: Trees Trees, slides 7.30 to 10.2 (recording)
20 Oct 15 Monday Lab 5: Trees (md) / Tutorial 5: make (md) 06: Hashes Trees, slides 10.2 to 10.10 (end); Hashes, slides 1 to 5.8 (recording)
21 Oct 17 Wednesday 06: Hashes Hashes, slides 5.8 to 7.4 (recording)
22 Oct 19 Friday 06: Hashes 06: Hashes, slides 7.4 to 8.4 (recording)
23 Oct 22 Monday Lab 6: Hashes (md) / Tutorial 6: Shell scripting, part 1 (part of this link; the specific sections are mentioned on the tutorials page) 06: Hashes, 07: IBCM (machine language) 08: Hashes, slides 8.4 to 8.7 (end); 07: IBCM, slides 1 to 5.11 (recording)
24 Oct 24 Wednesday 07: IBCM (machine language) 07: IBCM, slides 5.11 to 6.4 (recording)
25 Oct 26 Friday 07: IBCM (machine language) 07: IBCM, slides 6.4 to 6.12 (recording)
26 Oct 29 Monday Lab 7: IBCM (md) / Tutorial 7: Shell scripting, part 2 (remainder of here, as described on the tutorials page) 08: Assembly 07: IBCM, slides 7.1 to 7.10 (end); 08: assembly, slides 1 to 4.10 (recording)
27 Oct 31 Wednesday 08: Assembly 08: assembly, slides 4.10 to 5.11 (recording)
28 Nov 2 Friday 08: Assembly 08: assembly, slides 5.11 to 8.14 (recording)
29 Nov 5 Monday Lab 8: assembly, part 1 (md) / Tutorial 8: see the information on the tutorials page (md) 08: Assembly Assembly, slides 8.14 to 10.13 (recording)
30 Nov 7 Wednesday 08: Assembly, 09: Advanced C++ Assembly, slides 10.13 to 10.33 (end); Advanced C++, slides 1 to 5.9 (recording)
31 Nov 9 Friday 09: Advanced C++ Advanced C++, slides 6.1 to 6.22 (recording)
Nov 11 Sunday Exam 2 review session (recording)
32 Nov 12 Monday Exam 2 instead during Tuesday's lab 09: Advanced C++ Advanced C++, slides 6.19 to 8.11 (end) (recording)
33 Nov 14 Wednesday 10: Heaps and Huffman coding Heaps and Huffman, slides 1 to 6.7 (recording)
34 Nov 16 Friday 10: Heaps and Huffman coding Heaps and Huffman, slides 6.7 to 6.16 (recording)
35 Nov 19 Monday Lab 9: assembly, part 2 (md) / Tutorial 9: C (md) 10: Heaps and Huffman coding Heaps and Huffman, slides 7.1 to 8.27 (recording)
Nov 21 Wednesday (Thanksgiving break)
Nov 23 Friday (Thanksgiving break)
36 Nov 26 Monday 11: Graphs Heaps and Huffman, slides 8.27 to 9.9 (end); Graphs, slides 1 to 4.13
37 Nov 28 Wednesday 11: Graphs
38 Nov 30 Friday Lab 10: Huffman coding (md) / (no tutorial) 11: Graphs
39 Dec 3 Monday Lab 11: Graphs (md) 11: Graphs
40 Dec 5 Wednesday 12: Memory
41 Dec 5 Friday 13: Esoteric PLs, Course conclusion
Dec 12 Wednesday Final exam review session
Dec 15 Saturday Final exam from 7:00 p.m. - 10:00 p.m. in the lecture classroom Final exam from 7:00 p.m. - 10:00 p.m. in the lecture classroom

Recording notes

None, yet


Grading Concerns