Course Schedule

0

Syllabus

Sep 02, 2022

Content and Videos

Class

Slides: remark(down) · pdf

Class Recordings: CoE Lec. Cap.

Class Survey

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 09, 2022

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 16 at 10:29 am on Canvas

Slides: remark(down) · pdf

Class

Slides: remark(down) · pdf

Class Recordings: CoE Lec. Cap.

Class Survey

Let's get acquainted with the command line :)

  • What is a command line?
  • Intro to *nix

Basic

Due Wed, Sep 21 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

Sep 16, 2022

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 16 at 10:29 am on Canvas

Slides: remark(down) · pdf

Class

Slides: remark(down) · pdf

Class Recordings: CoE Lec. Cap.

Class Survey

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

Basic

Due Mon, Oct 03 at 11:59 pm: pdf

  • Connecting to the course server
  • Setting up an existing code base
  • Making and merging topic/feature branches
  • Setting up a remote
  • Running the autograder

Advanced

Due Mon, Oct 03 at 11:59 pm: pdf

  • Recovering data with Git

3

Unix and You

Sep 23, 2022

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, Sep 23 at 10:29 am on Canvas

Slides: remark(down) · pdf

Class

Slides: remark(down) · pdf

Class Recordings: CoE Lec. Cap.

Class Survey

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

Basic

Due Mon, Oct 10 at 11:59 pm: pdf

  • Redirection
  • Pipelines
  • Variables

Advanced

Due Mon, Oct 10 at 11:59 pm: pdf

  • Writing a minimal shell

4

Shells

Sep 30, 2022

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, Sep 30 at 10:29 am on Canvas

Slides: remark(down) · pdf

Class

Slides: remark(down) · pdf

Class Recordings: CoE Lec. Cap.

Class Survey

Today we'll be at how to take advantage of Bash.

  • Shell operation
  • Expansion
  • Control flow
  • Scripts
  • Configuration

Basic

Due Tue, Oct 25 at 11:59 pm: pdf

  • Pipelines
  • Expansions
  • Control flow
  • Functions
  • Scripting

Advanced

Due Tue, Oct 25 at 11:59 pm: pdf

  • Shell prompt configuration

5

Regular Expressions

Oct 07, 2022

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 07 at 10:29 am on Canvas

Slides: remark(down) · pdf

Class

Slides: remark(down) · pdf

Class Recordings: CoE Lec. Cap.

Class Survey

Today we'll be going into regular expressions.

  • Regular expressions

Basic

Due Tue, Nov 01 at 11:59 pm: pdf

  • Regexes with grep
  • Regexes with sed

Advanced

Due Tue, Nov 01 at 11:59 pm: pdf

  • Pig Latin conversion with sed

6

Git Gud

Oct 14, 2022

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 14 at 10:29 am on Canvas

Slides: remark(down) · pdf

Class

Slides: remark(down) · pdf

Class Recordings: CoE Lec. Cap.

Class Survey

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

Basic

Due Tue, Nov 08 at 11:59 pm: pdf

  • Changing remotes
  • Dealing with a merge conflict
  • Cleaning up by rebasing

Advanced

Due Tue, Nov 08 at 11:59 pm: pdf

  • Git hooks

Break

Content and Videos

Class

Enjoy your (spring?) break!

Basic

Advanced

7

Text Editors

Oct 28, 2022

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, Oct 28 at 10:29 am on Canvas

Class

Slides: remark(down) · pdf

Class Recordings: CoE Lec. Cap.

Class Survey

Today we'll be looking at text editor history and look at more "advanced" text editor features, featuring Vim

  • Text editor history
  • vim

Basic

Due Tue, Nov 15 at 11:59 pm: pdf

  • Getting familiar with terminal editors

Advanced

Due Tue, Nov 15 at 11:59 pm: pdf

  • Extending editors

8

Build Systems and Make

Nov 04, 2022

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 04 at 10:29 am on Canvas

Slides: remark(down) · pdf

Class

Slides: remark(down) · pdf

Class Recordings: CoE Lec. Cap.

Class Survey

Today we'll be looking at how code gets built and the tools that help them out

  • Building programs
  • Build systems
  • Make

Basic

Due Tue, Nov 22 at 11:59 pm: pdf

  • Basic Makefile
  • Makefile phonies
  • Makefile dependencies
  • Variables and reuse

Advanced

Due Tue, Nov 22 at 11:59 pm: pdf

  • More Make
  • CMake

9

Python

Nov 11, 2022

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 11 at 10:29 am on Canvas

Slides: remark(down) · pdf

Class

Slides: remark(down) · pdf

Class Recordings: CoE Lec. Cap.

Class Survey

Today we'll be taking a look at how to program a snake

  • Higher level scripting
  • What is Python?
  • Python extras

Basic

Due Tue, Dec 06 at 11:59 pm: pdf

  • Getting settled with Python

Advanced

Due Tue, Dec 06 at 11:59 pm: pdf

  • MATLAB alternative
  • Your own path

10

Debugging

Nov 18, 2022

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, Nov 18 at 10:29 am on Canvas

Slides: remark(down) · pdf

Class

Slides: remark(down) · pdf

Class Recordings: CoE Lec. Cap.

Class Survey

We'll be looking at methods for debugging C/C++ programs

  • printf
  • Logging
  • GDB
  • Valgrind

Basic

Due Tue, Dec 13 at 11:59 pm: pdf

  • Using GDB to debug a C/C++ program
  • Using Valgrind to check for memory errors

Advanced

Due Tue, Dec 13 at 11:59 pm: pdf

  • Debugging a running process
  • Your debugging process
  • Pretty printing

11

Libraries

Dec 02, 2022

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, Dec 02 at 10:29 am on Canvas

Slides: remark(down) · pdf

Class

Slides: remark(down) · pdf

Class Recordings: CoE Lec. Cap.

Class Survey

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

Basic

Due Tue, Dec 20 at 11:59 pm: pdf

  • Linking against libraries
  • Creating libraries

Advanced

Due Tue, Dec 20 at 11:59 pm: pdf

  • Runtime library linking

12

Staff classs and conclusion

Dec 09, 2022

Content and Videos

Class

Slides: remark(down) · pdf · Kethan's · Shah's

Class Recordings: CoE Lec. Cap.

Class Survey

We'll hand the floor over to our IAs to give some small classs

  • Staff classs

Basic

Due Tue, Dec 20 at 11:59 pm: pdf

  • How's it going?

Advanced

Due Tue, Dec 20 at 11:59 pm: pdf

  • Internships/jobs/summer plans