Program and Data Representation: CS 2150 Specific Content

Fall 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 Tuesday) Planned topic Lecture progress
1 Aug 25 Wednesday no lab this week Course introduction
2 Aug 27 Friday Course introduction, 01: C++
3 Aug 30 Monday Lab 1: Intro to C++ (md) / Tutorial 1: Intro to UNIX (md) 01: C++
4 Sep 1 Wednesday 01: C++
5 Sep 3 Friday 01: C++
6 Sep 6 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++
7 Sep 8 Wednesday 01: C++, 02: Lists
8 Sep 10 Friday 02: Lists
9 Sep 13 Monday Lab 3: Stacks (md) / Tutorial 3: More UNIX, part 1, introduction and sections 1-4 02: Lists, 03: Numbers
10 Sep 15 Wednesday 03: Numbers
11 Sep 17 Friday 03: Numbers
12 Sep 20 Monday Lab 4: Numbers (md) / Tutorial 4: More UNIX, part 2, sections 5-8 03: Numbers
13 Sep 22 Wednesday 04: Arrays & big-Oh
14 Sep 24 Friday 04: Arrays & big-Oh
Sep 26 Sunday Exam 1 review session
15 Sep 27 Monday Exam 1 instead during Tuesday’s lab 04: Arrays & big-Oh, 05: Trees
16 Sep 29 Wednesday 05: Trees
17 Oct 1 Friday 05: Trees
Oct 4 Monday Lab 5: Trees (md) / Tutorial 5: make (md) 05: Trees
18 Oct 6 Wednesday 05: Trees
19 Oct 8 Friday 06: Hashes
20 Oct 11 Monday no lab this week due to fall break fall break no lecture due to fall break
21 Oct 13 Wednesday 06: Hashes
22 Oct 15 Friday 06: Hashes
23 Oct 18 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)
24 Oct 20 Wednesday 07: IBCM (machine language)
25 Oct 22 Friday 07: IBCM (machine language), 08: Assembly
26 Oct 25 Monday Lab 7: IBCM (md) / Tutorial 7: Shell scripting, part 2 (remainder of here, as described on the tutorials page) 08: Assembly
27 Oct 27 Wednesday 08: Assembly
28 Oct 29 Friday 08: Assembly
29 Nov 1 Monday Lab 8: assembly, part 1 (md) / Tutorial 8: see the information on the tutorials page (md) 08: Assembly, 09: Advanced C++
30 Nov 3 Wednesday 09: Advanced C++
31 Nov 5 Friday 09: Advanced C++, 10: Heaps and Huffman coding
Nov 7 Sunday Exam 2 review session
32 Nov 8 Monday Exam 2 instead during Tuesday’s lab 10: Heaps and Huffman coding
33 Nov 10 Wednesday 10: Heaps and Huffman coding
34 Nov 12 Friday 10: Heaps and Huffman coding
35 Nov 15 Monday Lab 9: assembly, part 2 (md) / Tutorial 9: C (md) 10: Heaps and Huffman coding, 11: Graphs
36 Nov 17 Wednesday 11: Graphs
37 Nov 19 Friday 11: Graphs
38 Nov 22 Monday Lab 10: Huffman coding (md) / (no tutorial) 11: Graphs
Nov 24 Wednesday Thanksgiving break no lecture due to Thanksgiving break
Nov 26 Friday Thanksgiving break no lecture due to Thanksgiving break
39 Nov 29 Monday Lab 11: Graphs (md) 11: Graphs, 12: Memory
40 Dec 1 Wednesday 12: Memory
41 Dec 3 Friday Extra “buffer” day if we get behind in lecture
42 Dec 6 Monday 13: Esoteric PLs, Course conclusion
Dec 12? Sunday? Final exam review session
Dec 14 Tuesday Final exam from 7:00 p.m. - 10:00 p.m. Final exam from 7:00 p.m. - 10:00 p.m.

Grading Concerns