Program and Data Representation: CS 2150 Specific Content

Spring 2017

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 1 progress
1 Jan 18 Wednesday no lab this week Course introduction course intro, slides 1 to 5.4 (recording)
2 Jan 20 Friday Course introduction, 01: C++ course intro, slides 6.1 to 7.2; C++, slides 1 to 4.15 (recording)
3 Jan 23 Monday Lab 1: Intro to C++ (md) / Tutorial 1: Intro to UNIX (md) 01: C++ C++, slides 5.1 to 7.9 (recording)
4 Jan 25 Wednesday 01: C++ C++, slides 8.1 to 9.17 (recording)
5 Jan 27 Friday 01: C++ C++, slides 9.17 to 10.14 (recording)
6 Jan 30 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 10.15 to 12.10 (recording)
7 Feb 1 Wednesday 01: C++, 02: Lists C++, slides 12.11 to 13.14 (end); lists, slides 1 to 4.6 (recording)
8 Feb 3 Friday 02: Lists lists, slides 5.1 to 7.2 (recording)
9 Feb 6 Monday Lab 3: Stacks (md) / Tutorial 3: More UNIX, part 1, introduction and sections 1-4 02: Lists, 03: Numbers lists, slides 7.1 to 9.4 (end); numbers, slides 1 to 5.7 (recording)
10 Feb 8 Wednesday 03: Numbers numbers, slides 5.7 to 8.9 (recording)
11 Feb 10 Friday 03: Numbers numbers, slides 9.1 to 9.17 (recording)
12 Feb 13 Monday Lab 4: Numbers (md) / Tutorial 4: More UNIX, part 2, sections 5-8 03: Numbers numbers, slides 9.17 to 9.35 (end) (recording)
13 Feb 15 Wednesday 04: Arrays & big-Oh arrays & big-Oh, slides 1 to 5.6 (recording)
14 Feb 17 Friday 04: Arrays & big-Oh arrays & big-Oh, slides 5.6 to 5.26 (recording)
Feb 19 Sunday Midterm 1 review session
15 Feb 20 Monday Midterm 1 instead during Tuesday's lab 04: Arrays & big-Oh, 05: Trees arrays & big-Oh, slides 5.26 to 6.8 (end); trees, slides 1 to 4.16 (recording)
16 Feb 22 Wednesday 05: Trees trees, slides 5.1 to 7.10 (recording)
17 Feb 24 Friday 05: Trees trees, slides 7.10 to 8.5 (recording)
18 Feb 27 Monday Lab 5: Trees (md) / Tutorial 5: make (md) 05: Trees trees, slides 8.3 to 8.12; hashes, slides 1 to 5.11 (recording)
19 Mar 1 Wednesday 05: Trees hashes, slides 5.11 to 7.4 (recording)
20 Mar 3 Friday 05: Trees, 06: Hashes hashes, slides 7.4 to 8.7 (end) (recording)
Mar 6 Monday (spring break) (spring break)
Mar 8 Wednesday (spring break) (spring break)
Mar 10 Friday (spring break) (spring break)
21 Mar 13 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 IBCM, slides 1 to 5.11 (recording)
22 Mar 15 Wednesday 06: Hashes IBCM, slides 5.11 to 6.6 (recording)
23 Mar 17 Friday 06: Hashes, 07: IBCM (machine language) IBCM, slides 6.6 to 7.10 (end) (recording)
24 Mar 20 Monday Lab 7: IBCM (md) / Tutorial 7: Shell scripting, part 2,(remainder of here, as described on the tutorials page) 07: IBCM (machine language) assembly, slides 1 to 5.3 (recording)
25 Mar 22 Wednesday 07: IBCM (machine language) assembly, slides 5.3 to 6.6 (recording)
26 Mar 24 Friday 08: Assembly (assembly language) assembly, slides 6.6 to 8.11 (recording)
27 Mar 27 Monday Lab 8: assembly, part 1 (md) / Tutorial 8: see the,information on the tutorials page,(md) 08: Assembly (assembly language) assembly, slides 8.11 to 10.9 (recording)
28 Mar 29 Wednesday 08: Assembly (assembly language) assembly, slides 10.5 to 10.31 (recording)
29 Mar 31 Friday 08: Assembly (assembly language) assembly, slides 10.31 to 10.33 (end); 05: Trees, slides 9.1 to 10.10 (recording)
Apr 2 Sunday Midterm 2 review session
30 Apr 3 Monday Midterm 2 instead during Tuesday's lab 08: Assembly, 09: Advanced C++ advanced C++, slides 1 to 5.9 (recording)
31 Apr 5 Wednesday 09: Advanced C++ advanced C++, slides 6.1 to 6.22 (recording)
32 Apr 7 Friday 09: Advanced C++, 10: Heaps and Huffman coding advanced C++, slides 7.1 to 8.12 (end) (recording)
33 Apr 10 Monday Lab 9: assembly, part 2 (md) / Tutorial 9: C (md) 10: Heaps and Huffman coding heaps & Huffman coding, slides 1 to 6.7 (recording)
34 Apr 12 Wednesday 10: Heaps and Huffman coding heaps & Huffman coding, slides 6.8 to 8.4 (recording)
35 Apr 14 Friday 10: Heaps and Huffman coding heaps & Huffman coding, slides 8.4 to 8.31 (recording)
36 Apr 17 Monday Lab 10: Huffman coding (md) / (no tutorial) 10: Heaps and Huffman coding, 11: Graphs heaps & Huffman coding, slides 9.1 to 9.9 (end); graphs, slides 1 to 5.3 (recording)
37 Apr 19 Wednesday 11: Graphs graphs, slides 5.3 to 6.9 (recording)
38 Apr 21 Friday 11: Graphs graphs, slides 6.9 to 7.6 (recording)
39 Apr 24 Monday Lab 11: Graphs (md) 11: Graphs graphs, slides 8.1 to 9.11 (recording)
40 Apr 26 Wednesday 12: Memory graphs, slides 9.10 to 9.15 (end); memory, slides 1 to 4.9 (recording)
41 Apr 28 Friday 12: Memory memory, slides 4.9 to 5.19 (end) (recording)
42 May 1 Monday Lab 12: Objective C (md) 13: Esoteric PLs, Course conclusion esoteric PLs, slides 1 to 6.13 (end); course conclusion, slides 1 to 12 (end) (recording)
May 4 Wednesday Final exam review session
May 6 Saturday Final exam from 7:00 p.m. - 10:00 p.m. in CHM 402 Final exam from 7:00 p.m. - 10:00 p.m. in CHM 402

Recording notes

None yet!


Grading Concerns