Course Schedule
1
Introduction and a dash of *nix
Lecture
Slides: remark(down) · pdf
Lecture Recordings: Google Drive
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
Basic
Due Fri, Feb 12 at 11:59 pm: pdf
- Getting access to Unix(-like) command line
- Getting access to the course server
- Some light reading
Advanced
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
Supplemental: Virtual Machines and Ubuntu
Lecture
Lecture Recordings: Google Drive
A supplementary lecture about virtual machines and Ubuntu
- Glance at computer systems
- What is an OS?
- What is a VM?
- Virtualization software
- Installing Ubuntu feat. VirtualBox
- Installing VirtualBox Guest Additions
- Setting up VirtualBox shared folders
- Installing Ubuntu feat. QEMU
Basic
Advanced
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