Program and Data Representation: CS 2150 Specific Content

Spring 2019

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 Lecture progress
1 Jan 14 Monday no lab this week Course introduction course intro, slides 1 to 3.41 (recording)
2 Jan 16 Wednesday Course introduction, 01: C++ course intro, slides 3.42 to 7.3 (end); C++, slides 1 to 4.9 (recording)
3 Jan 18 Friday 01: C++ C++, slides 4.10 to 7.9 (recording)
Jan 21 Monday Lab 1: Intro to C++ (md) / Tutorial 1: Intro to UNIX (md) No class: MLK day No class: MLK day
4 Jan 23 Wednesday 01: C++ C++, slides 8.1 to 9.19 (recording)
5 Jan 25 Friday 01: C++ C++, slides 9.18 to 11.2 (recording)
6 Jan 28 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 11 to 13.14 (end) (recording)
7 Jan 30 Wednesday 01: C++, 02: Lists Lists, slides 1 to 5.10 (recording)
8 Feb 1 Friday 02: Lists Lists, slides 6 to 8.9 (recording)
9 Feb 4 Monday Lab 3: Stacks (md) / Tutorial 3: More UNIX, part 1, introduction and sections 1-4 02: Lists Lists, slides 9 to 9.4 (end); Numbers, slides 1 to 6.7 (recording)
10 Feb 6 Wednesday 03: Numbers Numbers, slides 7 to 9.4 (recording)
11 Feb 8 Friday 03: Numbers Numbers, slides 9.4 to 9.19 (recording)
12 Feb 11 Monday Lab 4: Numbers (md) / Tutorial 4: More UNIX, part 2, sections 5-8 03: Numbers Numbers, slides 9.18 to 9.35 (end) (recording)
13 Feb 13 Wednesday 03: Numbers, 04: Arrays & big-Oh Arrays & big-Oh, slides 1 to 5.4 (recording)
14 Feb 15 Friday 04: Arrays & big-Oh Arrays & big-Oh, slides 5.4 to 5.22 (recording)
Feb 17 Sunday Exam 1 review session (recording)
15 Feb 18 Monday Exam 1 instead during Tuesday's lab 04: Arrays & big-Oh, 05: Trees Arrays & big-Oh, slides 5.23 to 6.8 (end); Trees, slides 1 to 4.12 (recording)
16 Feb 20 Wednesday 05: Trees Snow day, so no classes
17 Feb 22 Friday 05: Trees Trees, slides 4.12 to 6.15 (recording)
18 Feb 25 Monday Lab 5: Trees (md) / Tutorial 5: make (md) 05: Trees Trees, slides 7 to 7.31 (recording)
19 Feb 27 Wednesday 05: Trees Trees, slides 8.1 to 8.12; Hashes, slides 1 to 5.5 (recording)
20 Mar 1 Friday 05: Trees, 06: Hashes Hashes, slides 5.6 to 6.8 (recording from fall 2018)
21 Mar 4 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 Hashes, slides 7.1 to 8.5 (recording)
22 Mar 6 Wednesday 06: Hashes Hashes, slides 8.5 to 8.7 (end); IBCM, slides 1 to 5.11 (recording)
23 Mar 8 Friday 06: Hashes, 07: IBCM (machine language) IBCM, slides 5.11 to 6.6 (recording)
Mar 11 Monday No lab this week because of spring break No class: spring break No class: spring break
Mar 13 Wednesday No class: spring break No class: spring break
Mar 15 Friday No class: spring break No class: spring break
24 Mar 18 Monday Lab 7: IBCM (md) / Tutorial 7: Shell scripting, part 2 (remainder of here, as described on the tutorials page) 07: IBCM (machine language) IBCM, slides 6.7 to 7.10 (end); Assembly, slides 1 to 4.2 (recording)
25 Mar 20 Wednesday 07: IBCM (machine language) Assembly, slides 4.3 to 5.6 (recording)
26 Mar 22 Friday 07: IBCM (machine language), 08: Assembly Assembly, slides 5.7 to 8.14 (recording)
27 Mar 25 Monday Lab 8: assembly, part 1 (md) / Tutorial 8: see the information on the tutorials page (md) 08: Assembly Assembly, slides 8.15 to 10.16 (recording)
28 Mar 27 Wednesday 08: Assembly Assembly, slides 10.17 to 10.33 (end); Trees, slides 9.1 to 9.3 (recording)
29 Mar 29 Friday 08: Assembly Trees, slides 9.3 to 10.10 (end); Advanced C++, slides 1 to 6.4 (recording)
Mar 31? Sunday? Exam 2 review session
30 Apr 1 Monday Exam 2 instead during Tuesday's lab 08: Assembly, 09: Advanced C++ Advanced C++, slides 6.3 to 7.3 (recording)
31 Apr 3 Wednesday 09: Advanced C++ Advanced C++, slides 7.3 to 8.12 (end); Heaps & Huffman, slides 1 to 5.5 (recording)
32 Apr 5 Friday 09: Advanced C++ Heaps & Huffman, slides 5.5 to 6.7 (recording)
33 Apr 8 Monday Lab 9: assembly, part 2 (md) / Tutorial 9: C (md) 10: Heaps and Huffman coding Heaps & Huffman, slides 6.8 to 8.2 (recording)
34 Apr 10 Wednesday 10: Heaps and Huffman coding Heaps & Huffman, slides 8.1 to 8.29 (recording)
35 Apr 12 Friday 10: Heaps and Huffman coding Heaps & Huffman, slides 8.30 to 9.9 (end); Graphs, slides 1 to 4.11 (recording)
36 Apr 15 Monday Lab 10: Huffman coding (md) / (no tutorial) 10: Heaps and Huffman coding, 11: Graphs Graphs, slides 4.11 to 5.9 (recording)
37 Apr 17 Wednesday 11: Graphs Graphs, slides 6.1 to 6.14 (recording)
38 Apr 19 Friday 11: Graphs Graphs, slides 7.1 to 9.7 (recording)
39 Apr 22 Monday Lab 11: Graphs (md) 11: Graphs Graphs, slides 9.7 to 9.15 (end); Memory, slides 1 to 4.9 (recording)
40 Apr 24 Wednesday 11: Graphs Memory, slides 4.9 to 5.4 (recording)
41 Apr 26 Friday 12: Memory Memory, slides 5.4 to 5.19 (end); final exam review Q&A (recording)
42 Apr 29 Monday 13: Esoteric PLs, Course conclusion 13: Esoteric PLs, slides 1 to 54 (end); Course conclusion, slides 1 to 12 (end) (recording)
May 7? Tuesday? Final exam review session
May 9 Thursday Final exam from 7:00 p.m. - 10:00 p.m. Final exam from 7:00 p.m. - 10:00 p.m.

Recording notes

None, yet


Grading Concerns