Program and Data Representation: CS 2150 Specific Content

Spring 2021

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:

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) Posted lecture
1 Feb 1 Monday No lab this week Course introduction to ???
2 Feb 3 Wednesday Course introduction to end, 01: C++ to slide 5.5
3 Feb 5 Friday 01: C++ to slide 8.1
4 Feb 8 Monday No lab this week 01: C++ to slide 9.19
5 Feb 10 Wednesday 01: C++ to slide 10.17
6 Feb 12 Friday 01: C++ to slide 12.10
7 Feb 15 Monday Lab 1: Intro to C++ (md) / Tutorial 1: Intro to UNIX (md) 01: C++ to end, 02: Lists to slide 4.6
Feb 17 Wednesday Break day, so no lecture
8 Feb 19 Friday 02: Lists to slide 6.11
9 Feb 22 Monday Lab 2: Linked lists (md) / Tutorial 2: LLDB (md) OR Tutorial 2: GDB (md) (see lab 2 for which one to pick) 02: Lists to end, 03: Numbers to slide 5.2
10 Feb 24 Wednesday 03: Numbers to slide 8.10
11 Feb 26 Friday 03: Numbers to slide 9.21
12 Mar 1 Monday Lab 3: Stacks (md) / Tutorial 3: More UNIX, part 1, introduction and sections 1-4 03: Numbers to end; 04: Arrays & big-Oh to slide 4.4
13 Mar 3 Wednesday 04: Arrays & big-Oh to slide 5.8
14 Mar 5 Friday 04: Arrays & big-Oh to end
15 Mar 8 Monday No lab this week because Tuesday is the break day 05: Trees to slide 5.11
16 Mar 10 Wednesday 05: Trees to slide 7.9
17 Mar 12 Friday 05: Trees to slide 7.31
18 Mar 15 Monday Lab 4: Numbers (md) / Tutorial 4: More UNIX, part 2, sections 5-8 05: Trees to slide 9.12, 06: Hashes to slide 5.5
19 Mar 17 Wednesday 06: Hashes to slide 7.4
20 Mar 19 Friday 06: Hashes to end
21 Mar 22 Monday Lab 5: Trees (md) / Tutorial 5: make (md) 07: IBCM (machine language) to slide 5.15
22 Mar 24 Wednesday 07: IBCM (machine language) to slide 6.12
23 Mar 26 Friday 07: IBCM (machine language) to end; 05: Trees to end
Mar 29 Monday Lab 6: Hashes (md) / Tutorial 6: Shell scripting, part 1 (part of this link; the specific sections are mentioned on the tutorials page) Break day, so no lecture
24 Mar 31 Wednesday 08: Assembly to slide 5.6
25 Apr 2 Friday 08: Assembly to slide 7.3
26 Apr 5 Monday Lab 7: IBCM (md) / Tutorial 7: Shell scripting, part 2 (remainder of here, as described on the tutorials page) 08: Assembly to slide 8.15
27 Apr 7 Wednesday 08: Assembly to slide 10.12
28 Apr 9 Friday 08: Assembly to end, 09: Advanced C++ to slide 6.11
29 Apr 12 Monday Lab 8: assembly, part 1 (md) / Tutorial 8: assembly (see the information on the tutorials page (md)) 09: Advanced C++to slide 8.5
30 Apr 14 Wednesday 09: Advanced C++ to end, 10: Heaps and Huffman coding to slide 6.2
31 Apr 16 Friday 10: Heaps and Huffman coding to slide 6.16
32 Apr 19 Monday Lab 9: assembly, part 2 (md) / Tutorial 9: C (md) 10: Heaps and Huffman coding to slide 8.19
33 Apr 21 Wednesday 10: Heaps and Huffman coding to slide 8.31
34 Apr 23 Friday 10: Heaps and Huffman coding to end, 11: Graphs to slide 5.3
35 Apr 26 Monday Lab 10: Huffman coding (md) / (no tutorial) 11: Graphs to slide 6.9
36 Apr 28 Wednesday 11: Graphs to slide 8.9
37 Apr 30 Friday 11: Graphs to end, 12: Memory to slide 4.8
38 May 3 Monday Lab 11: Graphs (md) / Tutorial 11: Doxygen 12: Memory to end
39 May 5 Wednesday 13: Esoteric PLs to end, Course conclusion to end

Recording notes

None, yet


Grading Concerns