Course Schedule
0
Syllabus
Sep 08, 2023
Content and Videos
Class
Slides: remark(down) · pdf
Class Recordings: CoE Lec. Cap.
Syllabus week! Today we will look at what this course is and how it's organized, and strategies for success.
- Introduction
- Course overview
Basic
Advanced
1
Intro and getting started
Sep 15, 2023
Content and Videos
1 - What is a command line?
2 - What is Unix?
3 - Getting around the Unix command line
4 - Playing around with the Unix command line
5 - Getting an SSH key
Quiz due at Fri, Sep 15 at 10:30 am on Canvas
Slides: remark(down) · pdfClass
Slides: remark(down) · pdf
Class Recordings: CoE Lec. Cap.
Let's get acquainted with the command line :)
- What is a command line?
- Intro to *nix
Basic
Due Fri, Sep 29 at 11:59 pm on Gradescope - pdf
- Getting access to Unix(-like) command line
- Getting access to the course server
- Some light reading
Advanced
Cancelled
Sep 22, 2023
Content and Videos
Class
Enjoy a week off!
Basic
Advanced
2
GITing started
Sep 29, 2023
Content and Videos
1 - What is version control?
2 - What is Git?
3 - GITing around
4 - GITing things back
5 - Git branches
6 - Git remotes
Quiz due at Fri, Sep 29 at 10:30 am on Canvas
Slides: remark(down) · pdfClass
Slides: remark(down) · pdf
Class Recordings: CoE Lec. Cap.
Today we'll be taking a bit of a detour and looking at the basics of version control and Git
- What is version control?
- Basic Git flow
- Git branches
- A taste of Git remotes
3
Unix and You
Oct 06, 2023
Content and Videos
1 - What is Unix 2, Electric Boogaloo (2:03)
2 - Unix principles (4:39)
3 - Unix processes (16:26)
4 - Unix files (12:11)
5 - Shell background (2:17)
6 - Shell operation (8:28)
7 - Variables (4:35)
8 - Walking the PATH (3:41)
9 - Executables and shell scripts (8:02)
Quiz due at Fri, Oct 06 at 10:30 am on Canvas
Slides: remark(down) · pdfClass
Slides: remark(down) · pdf
Class Recordings: CoE Lec. Cap.
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
4
Shells
Oct 13, 2023
Content and Videos
1 - Shell introduction (2:39)
2 - Job control (13:41)
3 - File redirection++ (11:02)
4 - Command grouping (3:47)
5 - Expansions (15:19)
6 - Quoting (4:35)
7 - Control flow (23:16)
8 - Sourcing (3:40)
9 - Shell configuration (5:31)
Quiz due at Fri, Oct 13 at 10:30 am on Canvas
Slides: remark(down) · pdfClass
Slides: remark(down) · pdf
Class Recordings: CoE Lec. Cap.
Today we'll be at how to take advantage of Bash.
- Shell operation
- Expansion
- Control flow
- Scripts
- Configuration
5
Regular Expressions
Oct 20, 2023
Content and Videos
1 - Regex introduction (4:33)
2 - Character literals (4:05)
3 - Special characters (9:15)
4 - Brackets (5:56)
5 - Quantifiers (7:27)
6 - Anchors (4:53)
7 - Backreferences (6:10)
Quiz due at Fri, Oct 20 at 10:30 am on Canvas
Slides: remark(down) · pdfClass
Slides: remark(down) · pdf
Class Recordings: WN 2023 Lec. Cap. · FA 2023 Zoom recording
Today we'll be going into regular expressions.
- Regular expressions
6
Git Gud
Oct 27, 2023
Content and Videos
1 - Fixing commits (12:49)
2 - Rebase (12:45)
3 - Caveats of rewriting history (5:34)
4 - Stash (4:07)
5 - Remotes and tracking (10:12)
6 - Workflows (19:42)
7 - Conflicts (7:47)
Quiz due at Fri, Oct 27 at 10:30 am on Canvas
Slides: remark(down) · pdfClass
Slides: remark(down) · pdf
Class Recordings: CoE Lec. Cap.
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
7
Build Systems and Make
Nov 03, 2023
Content and Videos
1 - What are programs? (3:20)
2 - What is a build system? (3:11)
3 - What is Make? (1:29)
4 - Rules and targets (9:34)
5 - Variables (6:37)
6 - Automatic variables (5:46)
7 - Functions and expansions (1:26)
8 - Pattern matching (6:24)
Quiz due at Fri, Nov 03 at 10:30 am on Canvas
Slides: remark(down) · pdfClass
Slides: remark(down) · pdf
Class Recordings: CoE Lec. Cap.
Today we'll be looking at how code gets built and the tools that help them out
- Building programs
- Build systems
- Make
8
Python
Nov 10, 2023
Content and Videos
1 - Intro (0:46)
2 - What is Python? (3:11)
3 - Variables and data (3:34)
4 - Types (9:39)
5 - Expressions (3:26)
6 - Comprehensions (2:58)
7 - Simple statements (1:26)
8 - Compound statements (1:51)
9 - Functions (0:42)
10 - Classes (1:35)
11 - Modules (3:10)
12 - Conclusion (0:26)
Quiz due at Fri, Nov 10 at 10:30 am on Canvas
Slides: remark(down) · pdfClass
Slides: remark(down) · pdf
Class Recordings: CoE Lec. Cap.
Today we'll be taking a look at how to program a snake
- Higher level scripting
- What is Python?
- Python extras
9
Libraries
Nov 17, 2023
Content and Videos
1 - Intro (1:12)
2 - Types of libraries (4:41)
3 - Using libraries (7:26)
4 - Creating libraries (15:17)
Quiz due at Fri, Nov 10 at 10:30 am on Canvas
Slides: remark(down) · pdfClass
Slides: remark(down) · pdf
Class Recordings: CoE Lec. Cap.
We'll be looking into the idea of libraries, how to use them, and how to create them. This class 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
Break
Nov 24, 2023
Content and Videos
Class
Enjoy your Thanksgiving break!
Basic
Advanced
10
Testing
Dec 01, 2023
Content and Videos
Slides:Class
Slides: remark(down) · pdf
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
11
Conclusion
Content and Videos
Class
Slides: remark(down) · pdf
Class Recordings: CoE Lec. Cap.
In another semester, we'll have handed the floor over to our IAs to give some small classs
12
Text Editors
Content and Videos
1 - Intro (1:25)
2 - The editors around us (9:01)
3 - Intro to Vim (15:07)
4 - Vim counts, motions, and operators (3:00)
5 - Vim macros (3:26)
6 - Vim configuration (3:35)
Quiz due at Fri, Dec 08 at 11:59 pm on Canvas
Slides: remark(down) · pdfClass
Today we'll be looking at text editor history and look at more "advanced" text editor features, featuring Vim
- Text editor history
- vim
13
Debugging
Content and Videos
1 -Intro (0:27)
2 - Print debugging (9:30)
3 - Logging (13:00)
4 - Interactive debuggers feat. GDB and LLDB (21:04)
5 - Valgrind Memcheck (7:09)
6 - Conclusion (9:14)
Quiz due at Fri, Dec 08 at 11:59 pm on Canvas
Slides: remark(down) · pdfClass
We'll be looking at methods for debugging C/C++ programs
printf
- Logging
- GDB
- Valgrind