Program and Data Representation: CS 2150 Specific Content

Spring 2020

Go up to the main README file (md)

See the CS 2150 online course structure page (md) and also the Spring 2020 Final Exam Information page (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:

The Documents page (md) has a number of useful parts:


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 13 Monday no lab this week Course introduction course intro to slide 4.6
2 Jan 15 Wednesday Course introduction, 01: C++ finished course intro; C++ to slide 5.5
3 Jan 17 Friday 01: C++ C++ to slide 7.9
Jan 20 Monday Lab 1: Intro to C++ (md) / Tutorial 1: Intro to UNIX (md) No class due to MLK day No class due to MLK day
4 Jan 22 Wednesday 01: C++ C++ to slide 9.19
5 Jan 24 Friday 01: C++ C++ to slide 10.17
6 Jan 27 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++ to slide 12.10
7 Jan 29 Wednesday 01: C++, 02: Lists finished C++; lists to slide 4.6
8 Jan 31 Friday 02: Lists lists to slide 6.16
9 Feb 3 Monday Lab 3: Stacks (md) / Tutorial 3: More UNIX, part 1, introduction and sections 1-4 02: Lists, 03: Numbers finished lists; numbers to slide 5.3
10 Feb 5 Wednesday 03: Numbers numbers to slide 8.10
11 Feb 7 Friday 03: Numbers numbers to slide 9.21
12 Feb 10 Monday Lab 4: Numbers (md) / Tutorial 4: More UNIX, part 2, sections 5-8 03: Numbers; 04: Arrays & big-Oh finished numbers; arrays & big-oh to slide 4.4
13 Feb 12 Wednesday 04: Arrays & big-Oh arrays & big-oh to slide 5.8 (image)
14 Feb 14 Friday 04: Arrays & big-Oh finished arrays & big-Oh
Feb 16 Sunday Exam 1 review session
15 Feb 17 Monday Exam 1 instead during Tuesday’s lab 05: Trees trees through slide 5.11
16 Feb 19 Wednesday 05: Trees trees to slide 7.9
17 Feb 21 Friday 05: Trees trees to slide 7.31
18 Feb 24 Monday Lab 5: Trees (md) / Tutorial 5: make (md) 05: Trees, 06: Hashes trees to slide 9.12; hashes to slide 5.5
19 Feb 26 Wednesday 06: Hashes hashes to slide 7.4 (image)
20 Feb 28 Friday 06: Hashes finished hashes
21 Mar 2 Monday Lab 6: Hashes (md) / Tutorial 6: Shell scripting, part 1 (part of this link; the specific sections are mentioned on the tutorials page) 07: IBCM (machine language) IBCM to slide 5.15
22 Mar 4 Wednesday 07: IBCM (machine language) IBCM to slide 6.12
23 Mar 6 Friday 07: IBCM (machine language) finished IBCM; trees from slides 10.1 to the end
Mar 9 Monday no lab this week due to spring break No class due to spring break No class due to spring break
Mar 11 Wednesday No class due to spring break No class due to spring break
Mar 13 Friday No class due to spring break No class due to spring break
Mar 16 Monday No lab due to UVa’s closure due to the Covid-19 outbreak No class due to UVa’s closure due to the Covid-19 outbreak No class due to UVa’s closure due to the Covid-19 outbreak
Mar 18 Wednesday No class due to UVa’s closure due to the Covid-19 outbreak No class due to UVa’s closure due to the Covid-19 outbreak
24 Mar 20 Friday 08: Assembly assembly, slides 1 to 5.6
25 Mar 23 Monday Lab 7: IBCM (md) / Tutorial 7: Shell scripting, part 2 (remainder of here, as described on the tutorials page) 08: Assembly assembly, slides 5.6 to 7.3
26 Mar 25 Wednesday 08: Assembly assembly, slides 7.1 to 8.15
27 Mar 27 Friday 08: Assembly assembly, slides 8.15 to 10.12
28 Mar 30 Monday Lab 8: assembly, part 1 (md) / Tutorial 8: see the information on the tutorials page (md) 08: Assembly, 09: Advanced C++ finished assembly; advanced C++ to slide 6.11
29 Apr 1 Wednesday 09: Advanced C++ advanced C++ to slide 8.5
30 Apr 3 Friday 09: Advanced C++, 10: Heaps and Huffman coding finished advanced C++; heaps & Huffman to slide 6.2
31 Apr 6 Monday Lab 9: assembly, part 2 (md) / Tutorial 9: C (md) 10: Heaps and Huffman coding heaps & Huffman, slides 6.2 to 6.16
32 Apr 8 Wednesday 10: Heaps and Huffman coding heaps & Huffman, slides 7.1 to 8.19
33 Apr 10 Friday 10: Heaps and Huffman coding heaps & Huffman, slides 8.11 to 8.31
34 Apr 13 Monday Lab 10: Huffman coding (md) / (no tutorial) 10: Heaps and Huffman coding, 11: Graphs finished heaps & Huffman; graphs to slide 5.2
35 Apr 15 Wednesday 11: Graphs graphs to slide 6.9
36 Apr 17 Friday 11: Graphs graphs to slide 8.9
37 Apr 20 Monday Lab 11: Graphs (md) 11: Graphs, 12: Memory finished graphs; memory to slide 4.9
38 Apr 22 Wednesday 12: Memory finished memory
39 Apr 24 Friday (no recorded lecture) (no recorded lecture)
40 Apr 27 Monday (no lab this week) 13: Esoteric PLs, Course conclusion finished esoteric PLs; finished course conclusion
Apr 28? Tuesday? Final exam review session
Apr 30 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