Program and Data Representation: CS 2150 Specific Content

Spring 2022

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

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

Grading Concerns

None yet!