Course External Tools
OHQ – Office Hour Queue for most office hours. May not be used by every TA, unless said in the OH event location, your best bet is to ask the hosting TA.
Ed Discussion Board – The Ed Discussion board provides a place for students to get support from course staff. Ed is also the primary mechanism for announcements, though we will try to repeat announcements at the beginning of lecture for convenience.
Gradescope – For check-ins, exams and projects.
PollEverywhere – For in-class polls & activity. Helps Travis know how well students are following lecture and if more or less time can be spent on a topic.
Class Recordings – Lecture recordings, each recording should come out a few hours after the lecture.
Canvas – Contains grades, class recordings, and recordings from previous offerings.
Github – /* Link TODO */ For maintaining your code and collaborating on team projects.
Course Information
Syllabus – an overview of the course and course policies
Meeting Requests – For requesting meetings with the course instructor
Environment Setup
Github account setup – For setting up your git account and getting it registered with the course
Docker & Git Setup – The recommended environment for developing the course, and how to download your repo (only after the Github account setup has been done)
Speclab: getting started – If docker doesn’t work, you should do your development here.
Penn VPN – Information for connecting to the UPenn VPN. This is necessary to access speclab from off campus.
Course Texts
Dive Into Systems Textbook – An optional textbook that contains well written information on most things covered in the class (though we will not cover everything in it).
C reference – a reference of features and useful utilites in C.
Linux Man Pages (linux.die.net) – Contains useful information on user terminal commands (section 1), C system calls (section 2) and C standard library functions (section 3)
Linux Man Pages (man7.org) – Contains useful information on user terminal commands (section 1), C system calls (section 2) and C standard library functions (section 3)
Pre-recorded Videos
Pre-recorded Lectures & Others – This links to a page on canvas that contains a collection of videos that you may find useful, especially if you potentiall want some alternative explanations to the ones provided in-class.
C refresher – A refresher on C going over a simple program, compilation, running, and debugging the program. NOTE: thislinks to part 1., hit the next arrow in the lower right corner to move on to parts 2, 3 and 4.
Git Demo – Excellent demo that showcases how to clone a git repository and check-in code to it.
GDB Debugging Tool – Excellent video that demonstrates the most important GDB commands for starters.
Project 0 Demo – TA Demo going over project 0 and demonstrating it.
Project 1 Demo – TA Demo going over prohect 1 and demonstrating it. Note that there are two parts after it, hit the next button in the lower right corner to see the next two.
Google Sanitizers – Google sanitizers is an optional tool that some find useful for identifying various memory errors in C.
Linux, Makefile and Valgrind Demo – 1 hour video recording during an optional session going over Linux, Makefiles, and Valgrind. This video is not as polished or scripted as the other tool demos
Other References
Vim Basic Guide – Vim is the editor that is used by the instructor. You are not required to use it, but it is popular for a reson. This article provides a relatively short and straightfoward tutorial for getting started with vim.
GDB Tutorial – The GNU Debugger, HIGHLY recommended for this course. Another very useful command is tui enable
which allows you to more easily see the code while you debug.
Valgrind: quick start – Valgrind is a very useful tool for finding memory errors (not just leaks!) in your code. We also HIGHLY recommend valgrind.