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 set of online tools, which can be accessed through Collab or here.
- These tools are: support requests, lab submission, regrades, gradebook, and the office hours queue
- The announcements, which are posted to the CS 2150 twitter feed: @UVaCS2150
- Grading guidelines, which will be available in the Collab wiki (here is the direct link, although Collab login is required)
- Email list archive, which is a Collab tool (here is the direct link, although Collab login is required)
- Piazza, and our specific class is here; Collab can (maybe?) log you in directly; the Collab tool link is here (again, Collab login required)
- Anonymous feedback
The parts of this course that are in this repo are:
- Daily announcements slide set
- Course introduction slide set
- Course syllabus (md): the course syllabus
- Teaching assistants: get to know your TAs
- Lab due dates (md): When the various lab parts are due
- UNIX honor pledge, which needs to be signed by all the students in the course (it is created from a .tex file)
- Generic review session slide set, which is really just a blank set of slides
- Frivolous regrade policy (md) for exams (note: it's unclear how this will apply with online exams; more info on that later)
- The final course grading metrics (md)
The Documents page (md) has a number of useful parts:
- Useful compiler flags (md)
- GDB command summary (md)
- LLDB command summary (md)
- GDB vs LLDB (md)
- Compilation issues (md)
- Readings (md) in lieu of a textbook
This is a series of links to the labs and tutorials that are elsewhere in this repository. A bunch of notes:
- The lab parts are all due on specific times throughout the week, as detailed on the lab due dates (md) page
- Each lab is for a given week, which (for sake of argument) we claim starts on a Monday
- Which lab is done on which week is listed below in the semester schedule
- The lab is released the week before, typically on a Wednesday or Thursday
- While a version of the lab will be in this github repo for some time prior, there WILL be modifications to that lab up until the "official" release, which is when it is announced as released on the twitter feed: @UVaCS2150
- All the labs and tutorials can be found on the labs page (md) and the tutorials page (md).
- In particular, these pages have additional details and links not described here
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 |
---|---|---|---|---|
1 | Aug 26 | Wednesday | no lab this week | Course introduction |
2 | Aug 28 | Friday | Course introduction, 01: C++ | |
3 | Aug 31 | Monday | no lab this week | 01: C++ |
4 | Sep 2 | Wednesday | 01: C++ | |
5 | Sep 4 | Friday | 01: C++ | |
6 | Sep 7 | Monday | Lab 1: Intro to C++ (md) / Tutorial 1: Intro to UNIX (md) | 01: C++ |
7 | Sep 9 | Wednesday | 01: C++, 02: Lists | |
8 | Sep 11 | Friday | 02: Lists | |
9 | Sep 14 | 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, 03: Numbers |
10 | Sep 16 | Wednesday | 03: Numbers | |
11 | Sep 18 | Friday | 03: Numbers | |
12 | Sep 21 | Monday | Lab 3: Stacks (md) / Tutorial 3: More UNIX, part 1, introduction and sections 1-4 | 03: Numbers; 04: Arrays & big-Oh |
13 | Sep 23 | Wednesday | 04: Arrays & big-Oh | |
14 | Sep 25 | Friday | 04: Arrays & big-Oh | |
15 | Sep 28 | Monday | Lab 4: Numbers (md) / Tutorial 4: More UNIX, part 2, sections 5-8 | 05: Trees |
16 | Sep 30 | Wednesday | 05: Trees | |
17 | Oct 2 | Friday | 05: Trees | |
18 | Oct 5 | Monday | Lab 5: Trees (md) / Tutorial 5: make (md) | 05: Trees, 06: Hashes |
19 | Oct 7 | Wednesday | 06: Hashes | |
20 | Oct 9 | Friday | 06: Hashes | |
21 | Oct 12 | 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) |
22 | Oct 14 | Wednesday | 07: IBCM (machine language) | |
23 | Oct 16 | Friday | 07: IBCM (machine language) | |
24 | Oct 19 | Monday | Lab 7: IBCM (md) / Tutorial 7: Shell scripting, part 2 (remainder of here, as described on the tutorials page) | 08: Assembly |
25 | Oct 21 | Wednesday | 08: Assembly | |
26 | Oct 23 | Friday | 08: Assembly | |
27 | Oct 26 | Monday | Lab 8: assembly, part 1 (md) / Tutorial 8: see the information on the tutorials page (md) | 08: Assembly |
28 | Oct 28 | Wednesday | 08: Assembly, 09: Advanced C++ | |
29 | Oct 30 | Friday | 09: Advanced C++ | |
30 | Nov 2 | Monday | Lab 9: assembly, part 2 (md) / Tutorial 9: C (md) | 09: Advanced C++, 10: Heaps and Huffman coding |
31 | Nov 4 | Wednesday | 10: Heaps and Huffman coding | |
32 | Nov 6 | Friday | 10: Heaps and Huffman coding | |
33 | Nov 9 | Monday | Lab 10: Huffman coding (md) / (no tutorial) | 10: Heaps and Huffman coding |
34 | Nov 11 | Wednesday | 10: Heaps and Huffman coding, 11: Graphs | |
35 | Nov 13 | Friday | 11: Graphs | |
36 | Nov 16 | Monday | Lab 11: Graphs (md) | 11: Graphs |
37 | Nov 18 | Wednesday | 11: Graphs, 12: Memory | |
38 | Nov 20 | Friday | 12: Memory | |
39 | Nov 23 | Monday | no lab this week | 13: Esoteric PLs, Course conclusion |
None, yet
- None yet!