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
- These tools are the support requests tool and the office hours queue
- Email list archive, which is a Collab tool (here is the direct link, although Collab login is required)
- Piazza; Collab can log you in directly; the Collab tool link is here (again, Collab login required)
- Anonymous feedback
- All submission of assignments is via Gradescope, which can be accessed through Collab
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
- Gradescope FAQ (md) for submission questions and answers
- Teaching assistants: get to know your TAs!
- Lab due dates (md): When the various lab parts are due
- UNIX honor pledge, signed via Google Forms, will need to be signed by all the students in the course
- Generic review session slide set, which is really just a blank set of slides
- The lectures page (md) has a few pictures of the chalkboard from lecture
- 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 Thursday at noon
- 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
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. |
None yet!