Course Schedule
1
Introduction and a dash of *nix
Lecture
Slides: remark(down) · pdf
Lecture Recordings: Google Drive
Resources: VMs and Ubuntu (Google Drive) · VMs and Ubuntu (Survey) · Arch: Behind the Curtain (Google Drive) · Arch: Behind the Curtain (Survey)
Syllabus week! Today we will look at what this course is and how it's organized and then jump right into talking about one of my favorite things: command lines.
- Introduction
- Course overview
- Intro to *nix
- What is a command line?
- Why a command line?
- Live command line demo
2
GITing started
Lecture
Slides: remark(down) · pdf
Lecture Recordings: Google Drive
Today we'll be taking a bit of a detour and looking at the basics of version control and Git
- Recap of Lec 1
- What is version control?
- Basic Git flow
- Git branches
- A taste of Git remotes
3
Unix and You
Lecture
Slides: remark(down) · pdf
Lecture Recordings: Google Drive
Today we'll be looking at Unix and its workings and how they tie into Bash and other shells.
- What is Unix?
- How does Unix work?
- Interacting with Unix via Shells
- Bash
4
Review and Regular Expressions
Lecture
Slides: remark(down) · pdf
Lecture Recordings: Google Drive
Today we'll be reviewing and working through some examples and using Bash and then go into regular expressions.
- Reviewing Bash
- Regular expressions
5
Git Gud
Lecture
Slides: remark(down) · pdf
Lecture Recordings: Google Drive
Today we'll be reviewing and working through some examples and using Bash and then go into regular expressions.
- Rewriting history
- Stashing
- Remotes
- Workflows
- Merge conflicts
6
Text Editors
Lecture
Slides: remark(down) · pdf
Lecture Recordings: Google Drive
Today we'll be looking at text editor history and look at more "advanced" text editor features, featuring vim
- Text editor history
- vim
7
Build Systems
Lecture
Slides: remark(down) · pdf
Lecture Recordings: Google Drive
Today we'll be looking at how code gets built and the tools that help them out
- Building programs
- Build systems
- Make
8
Python
Lecture
Slides: remark(down) · pdf
Lecture Recordings: Google Drive
Today we'll be taking a look at this fancy Python thing
- Higher level scripting
- What is Python?
- Python extras
9
Debugging
Lecture
Slides: remark(down) · pdf
Lecture Recordings: Google Drive
We'll be looking at methods for debugging C/C++ programs
printf
- Logging
- GDB
- Valgrind
Cancelled
10
Libraries
Lecture
Slides: remark(down) · pdf
Lecture Recordings: Google Drive
We'll be looking into the idea of libraries, how to use them, and how to create them. This lecture will be in the context of C and C++, but the general idea can apply to other languages as well.
- What are libraries?
- Using existing libraries
- Creating your own
11
Testing
Lecture
Slides: remark(down) · pdf
Lecture Recordings: Google Drive
We'll be taking a dip into testing software
- What is and why testing?
- Kinds of testing
- Unit testing
- Test-driven development
- Live TTD demo
Basic
Advanced
12
Staff lectures and conclusion
Lecture
Slides: remark(down) · pdf · Arav's · Sowgandhi's
Lecture Recordings: Google Drive
We'll hand the floor over to our IAs to give some small lectures
- Staff lectures
Basic
Advanced