Program and Data Representation: CS 2150 Specific Content

Spring 2016

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 Lecture 2 progress
1 Jan 20 Wednesday no lab this week Course introduction Course introduction, slides 1 to 48 (recording) Course introduction, slides 1 to 31
2 Jan 22 Friday Course introduction, 01: C++ Snow day! Snow day!
3 Jan 25 Monday Lab 1: Intro to C++ (md) / Tutorial 1: Intro to UNIX (md) 01: C++ C++, slides 1 to 29 (recording) C++, slides 1 to 27
4 Jan 27 Wednesday 01: C++ C++, slides 27 to 47 (recording) C++, slides 27 to 47
5 Jan 29 Friday 01: C++ C++, slides 48 to 78 (recording) C++, slides 48 to 72
6 Feb 1 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 78 to 100 (recording) C++, slides 72 to 86
7 Feb 3 Wednesday 01: C++, 02: Lists C++, slides 101 to 121 (end); Lists, slides 1 to 9 (recording) C++, slides 87 to 113
8 Feb 5 Friday 02: Lists Lists, slides 10 to 35 (recording) Lists, slides 1 to 25
9 Feb 8 Monday Lab 3: Stacks (md) / Tutorial 3: More UNIX, part 1, introduction and sections 1-4 02: Lists, 03: Numbers Lists, slides 36 to 56 (end); Numbers, slides 1 to 7 (recording) Lists, slides 25 to 50
10 Feb 10 Wednesday 03: Numbers Numbers, slides 8 to 33 (recording) Lists slide 53 to Numbers slide 29
11 Feb 12 Friday 03: Numbers Numbers, slides 33 to 52 (recording) Numbers slides 29 to 50
12 Feb 15 Monday Lab 4: Numbers (md) / Tutorial 4: More UNIX, part 2, sections 5-8 03: Numbers Snow day! Again. Snow day! Again.
13 Feb 17 Wednesday 04: Arrays & big-Oh 03: Numbers, slides 53 to 71 (end); 04: Arrays & big-Oh, slides 1 to 10 (recording) Numbers, slides 51 to 71
14 Feb 19 Friday 04: Arrays & big-Oh 04: Arrays & big-Oh, slides 11 to 25 (recording) 04: Arrays & big-Oh, slides 11 to 25
Feb 21 Sunday Exam 1 review session
15 Feb 22 Monday Exam 1 instead during Tuesday's lab 04: Arrays & big-Oh, 05: Trees 04: Arrays & big-Oh, slides 25 to 58 (end) (recording) 04: Arrays & big-Oh, slides 25 to 58
16 Feb 24 Wednesday 05: Trees 05: Trees, slides 1 to 31 (recording) 05: Trees, slides 1 to 40
17 Feb 26 Friday 05: Trees 05: Trees, slides 32 to 59 (recording) 05: Trees, slides 40 to 55
18 Feb 29 Monday Lab 5: Trees (md) / Tutorial 5: make (md) 05: Trees 05: Trees, slides 59 to 97 (recording) 05: Trees, slides 55 to 86
19 Mar 2 Wednesday 05: Trees 06: Hashes, slides 1 to 28 (recording) 05: Trees, slides 86 to 116; 06: Hashes, slides 1 to 14
20 Mar 4 Friday 06: Hashes 06: Hashes, slides 29 to 48 (recording) 06: Hashes, slides 14 to 45
Mar 7 Monday no lab this week (spring break)
Mar 9 Wednesday (spring break)
Mar 11 Friday (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 06: Hashes, slides 49 to 55 (end); 05: Trees, slides 98 to 106 (recording) 06: Hashes, slides 45 to 55
22 Mar 16 Wednesday 06: Hashes, 07: IBCM (machine language) 05: Trees, slides 107 to 116 (end); 07: IBCM, slides 1 to 16 (recording)
23 Mar 18 Friday 07: IBCM (machine language) 07: IBCM, slides 15 to 32 (recording) slides 15 to 32
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) 07: IBCM, slides 33 to 43 (recording) 07: IBCM, slides 33 to 43
25 Mar 23 Wednesday 07: IBCM (machine language) 08: x86, slides 1 to 28 (recording) 08: x86, slides 1 to 28
26 Mar 25 Friday 08: x86 (assembly language) 08: x86, slides 28 to 65 (recording) 08: x86, slides 28 to 65
27 Mar 28 Monday Lab 8: x86, part 1 (md) / Tutorial 8: nasm, which is two book chapters: 1 and 2 08: x86 (assembly language) 08: x86, slides 65 to 80 (recording) 08: x86, slides 66 to 80
28 Mar 30 Wednesday 08: x86 (assembly language) 08: x86, slides 78 to 102 (recording)
29 Apr 1 Friday 08: x86 (assembly language) 08: x86, slides 102 to 106 (end); 09: advanced C++, slides 1 to 24 (recording)
Apr 3 Sunday Exam 2 review session
30 Apr 4 Monday Exam 2 instead during Tuesday's lab 08: x86, 09: Advanced C++ 09: advanced C++, slides 25 to 44 (recording)
31 Apr 6 Wednesday 09: Advanced C++ 09: advanced C++, slides 45 to 65 (end) (recording)
32 Apr 8 Friday 09: Advanced C++ 10: heaps and Huffman, slides 1 to 17 (recording)
33 Apr 11 Monday Lab 9: x86, part 2 (md) / Tutorial 9: C (md) 09: Advanced C++, 10: Heaps and Huffman coding 10: heaps and Huffman, slides 18 to 32 (recording)
34 Apr 13 Wednesday 10: Heaps and Huffman coding 10: heaps and Huffman, slides 33 to 59 (recording)
35 Apr 15 Friday 10: Heaps and Huffman coding 10: heaps and Huffman, slides 47 to 80 (end) (recording)
36 Apr 18 Monday Lab 10: Huffman coding (md) / (no tutorial) 10: Heaps and Huffman coding, 11: Graphs 11: Graphs, slides 1 to 24 (recording)
37 Apr 20 Wednesday 11: Graphs 11: Graphs, slides 24 to 35 (recording; no sound)
38 Apr 22 Friday 11: Graphs 11: Graphs, slides 34 to 55 (recording)
39 Apr 25 Monday Lab 11: Graphs (md) 11: Graphs 11: Graphs, slides 56 to 70 (end) (recording)
40 Apr 27 Wednesday 11: Graphs, 12: Memory 12: Memory, slides 1 to 15 (recording)
41 Apr 29 Friday 12: Memory 12: Memory, slides 16 to 44 (recording)
42 May 2 Monday Lab 12: Objective C (md) 13: Esoteric PLs, Course conclusion 12: Memory, slides 45 to 48 (end); 13: Esoteric PLs, slides 1 to 54 (end); Course conclusion, slides 1 to 12 (end) (recording)
May 4 Wednesday Final exam review session
May 6 Friday Final exam from 7:00 p.m. - 10:00 p.m. in the lecture classroom Final exam from 7:00 p.m. - 10:00 p.m. in the lecture classroom

Grading Concerns

None yet!