Course Schedule
1
Introduction, VMs, and a bit of *nix
Lecture
Slides: Google Sheets
Lecture Recordings: Friday
Syllabus week! Today we had an introduction to the class, talked a little bit about *nix and VMs, then did a brief demo on the power of the command line. A light week overall.
- Introduction
- Course overview
- A bit of *nix
- A bit of VMs
- Live command line demo
2
Unix and You
Lecture
Slides: remark(down) · pdf
Lecture Recordings: Friday
We'll be looking into what Unix is, how it's structured, and how to work in an Unix environment including shells and environment.
- More Introductions
- Unix history
- Shells
- Files
- Environment variables
- Scripting
3
GITing Started
Lecture
Slides: remark(down) · pdf
Lecture Recordings: Friday
We'll be introducing version control and looking into how to get started using Git.
- Week 2 recap and clarifications
- Version control introduction
- Git overview
- Git local work
- Git branching
- Git remotes
4
Text Editors
Lecture
Slides: remark(down) · pdf
Lecture Recordings: Friday
We'll be looking at various text editors, be they in the terminal or GUI
- nano
- vim
- emacs
- gedit
5
Unix++
Lecture
Slides: remark(down) · pdf
Lecture Recordings: Friday
We'll be revisiting the Unix environment and looking more at how to wrangle the command line to do our bidding.
- File descriptors
- Deeper look into Bash
- Regular expressions
6
Git Gud
Lecture
Slides: remark(down) · pdf
Lecture Recordings: Friday
We'll be taking another look at Git and how to play nicely with others.
- Rewriting history
- Stashing
- Remotes
- Workflows
7
Build Systems
Lecture
Slides: remark(down) · pdf
Lecture Recordings: Friday
We'll be looking at how to build applications.
- Build systems
- Make
8
Debugging
Lecture
Slides: remark(down) · pdf
Lecture Recordings: Friday
We'll be looking at methods for debugging C/C++ programs
printf
- Logging
- GDB
- Valgrind
Winter/Spring Break!
Lecture
No lecture!
Homework
Advanced Assignment
Cancelled due to COVID-19
Lecture
Classes this week are canceled as part of university-wide COVID-19 prevention measures. Be on the lookout for a Canvas announcement detailing how this course will proceed. I hope you all stay well for the rest semester.
Homework
Advanced Assignment
9
Python!
Lecture
Slides: remark(down) · pdf
Lecture Recordings: Friday
We'll be taking a look at this fancy Python thing.
- What is Python?
- Python fundamentals
- Python extras
10
Libraries
Lecture
Slides: remark(down) · pdf
Lecture Recordings: Friday
We'll be looking into the idea of libraries, how to use them, and how to create them, particularly in the context of C and C++ programs. Similar ideas may apply to other languages as well.
- What are libraries?
- Using existing libraries
- Creating your own
Cancelled (grading your homework)
Lecture
Homework
Advanced Assignment
Cancelled (grading your homework)
Lecture
Homework
Advanced Assignment
11
Hardware pragmatics
Lecture
Slides: remark(down) · pdf
We'll be looking at how the more academic side of computer hardware ties into the real world, as well as answer questions that you have asked.
- Hardware and the real world
- Answering your questions
Homework
Advanced Assignment