Course Schedule

Loading...

Click/tap off of the video to close, or hit Esc

0

Syllabus

Jan 12, 2024

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

1

Intro and getting started

Jan 19, 2024

Content and Videos

  • 1 - What is a command line? [ Play | Link ]
  • 2 - What is Unix? [ Play | Link ]
  • 3 - Getting around the Unix command line [ Play | Link ]
  • 4 - Playing around with the Unix command line [ Play | Link ]
  • 5 - Getting an SSH key [ Play | Link ]

Quiz due at Fri, Jan 26 at 10:30 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, Jan 31 at 11:59 pm on Gradescope - pdf

  • Getting access to Unix(-like) command line
  • Getting access to the course server
  • Some light reading

2

GITing started

Jan 26, 2024

Content and Videos

Quiz due at Fri, Jan 26 at 10:30 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 Wed, Feb 07 at 11:59 pm on EECS GitLab - 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 Wed, Feb 07 at 11:59 pm on Gradescope - pdf

  • Recovering data with Git

3

Unix and You

Feb 02, 2024

Content and Videos

  • 1 - What is Unix 2, Electric Boogaloo (2:03) [ Play | Link ]
  • 2 - Unix principles (4:39) [ Play | Link ]
  • 3 - Unix processes (16:26) [ Play | Link ]
  • 4 - Unix files (12:11) [ Play | Link ]
  • 5 - Shell background (2:17) [ Play | Link ]
  • 6 - Shell operation (8:28) [ Play | Link ]
  • 7 - Variables (4:35) [ Play | Link ]
  • 8 - Walking the PATH (3:41) [ Play | Link ]
  • 9 - Executables and shell scripts (8:02) [ Play | Link ]

Quiz due at Fri, Feb 02 at 10:30 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 Thu, Feb 15 at 11:59 pm on EECS GitLab - pdf

  • Redirection
  • Pipelines
  • File modes

Advanced

Due Thu, Feb 15 at 11:59 pm on EECS GitLab - pdf

  • Writing a minimal shell

4

Shells

Feb 09, 2024

Content and Videos

  • 1 - Shell introduction (2:39) [ Play | Link ]
  • 2 - Job control (13:41) [ Play | Link ]
  • 3 - File redirection++ (11:02) [ Play | Link ]
  • 4 - Command grouping (3:47) [ Play | Link ]
  • 5 - Expansions (15:19) [ Play | Link ]
  • 6 - Quoting (4:35) [ Play | Link ]
  • 7 - Control flow (23:16) [ Play | Link ]
  • 8 - Sourcing (3:40) [ Play | Link ]
  • 9 - Shell configuration (5:31) [ Play | Link ]

Quiz due at Fri, Feb 09 at 10:30 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 Wed, Feb 21 at 11:59 pm on EECS GitLab - pdf

  • Pipelines
  • Expansions
  • Control flow
  • Functions
  • Scripting

Advanced

Due Wed, Feb 21 at 11:59 pm on Gradescope - pdf

  • Shell prompt configuration

5

Regular Expressions

Feb 16, 2024

Content and Videos

  • 1 - Regex introduction (4:33) [ Play | Link ]
  • 2 - Character literals (4:05) [ Play | Link ]
  • 3 - Special characters (9:15) [ Play | Link ]
  • 4 - Brackets (5:56) [ Play | Link ]
  • 5 - Quantifiers (7:27) [ Play | Link ]
  • 6 - Anchors (4:53) [ Play | Link ]
  • 7 - Backreferences (6:10) [ Play | Link ]

Quiz due at Fri, Feb 16 at 10:30 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 Wed, Mar 06 at 11:59 pm on EECS GitLab - pdf

  • Regexes with grep
  • Regexes with sed

Advanced

Due Wed, Mar 06 at 11:59 pm on EECS GitLab - pdf

  • Pig Latin conversion with sed

6

Git Gud

Feb 23, 2024

Content and Videos

  • 1 - Fixing commits (12:49) [ Play | Link ]
  • 2 - Rebase (12:45) [ Play | Link ]
  • 3 - Caveats of rewriting history (5:34) [ Play | Link ]
  • 4 - Stash (4:07) [ Play | Link ]
  • 5 - Remotes and tracking (10:12) [ Play | Link ]
  • 6 - Workflows (19:42) [ Play | Link ]
  • 7 - Conflicts (7:47) [ Play | Link ]

Quiz due at Fri, Feb 23 at 10:30 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 Wed, Mar 06 at 11:59 pm on EECS GitLab - pdf

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

Advanced

Due Wed, Mar 06 at 11:59 pm on EECS GitLab - pdf

  • Git hooks

Break

Mar 01, 2024

Content and Videos

Class

Enjoy your winter (spring?) break!

7

Build Systems and Make

Mar 08, 2024

Content and Videos

  • 1 - What are programs? (3:20) [ Play | Link ]
  • 2 - What is a build system? (3:11) [ Play | Link ]
  • 3 - What is Make? (1:29) [ Play | Link ]
  • 4 - Rules and targets (9:34) [ Play | Link ]
  • 5 - Variables (6:37) [ Play | Link ]
  • 6 - Automatic variables (5:46) [ Play | Link ]
  • 7 - Functions and expansions (1:26) [ Play | Link ]
  • 8 - Pattern matching (6:24) [ Play | Link ]

Quiz due at Fri, Mar 08 at 10:30 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 Wed, Mar 20 at 11:59 pm on EECS GitLab - pdf

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

Advanced

Due Wed, Mar 20 at 11:59 pm on EECS GitLab - pdf

  • More Make
  • CMake

8

Python

Mar 15, 2024

Content and Videos

Quiz due at Fri, Mar 15 at 10:30 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 Wed, Mar 27 at 11:59 pm on EECS GitLab - pdf

  • Getting settled with Python

Advanced

Due Wed, Mar 27 at 11:59 pm on Gradescope - pdf

  • MATLAB alternative
  • Your own path

9

Libraries

Mar 22, 2024

Content and Videos

  • 1 - Intro (1:12) [ Play | Link ]
  • 2 - Types of libraries (4:41) [ Play | Link ]
  • 3 - Using libraries (7:26) [ Play | Link ]
  • 4 - Creating libraries (15:17) [ Play | Link ]

Quiz due at Fri, Mar 22 at 10:30 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 Wed, Apr 03 at 11:59 pm on EECS GitLab - pdf

  • Linking against libraries
  • Creating libraries

Advanced

Due Wed, Apr 03 at 11:59 pm on EECS GitLab - pdf

  • Runtime library linking

10

Debugging

Mar 29, 2024

Content and Videos

  • 1 -Intro (0:27) [ Play | Link ]
  • 2 - Print debugging (9:30) [ Play | Link ]
  • 3 - Logging (13:00) [ Play | Link ]
  • 4 - Interactive debuggers feat. GDB and LLDB (21:04) [ Play | Link ]
  • 5 - Valgrind Memcheck (7:09) [ Play | Link ]
  • 6 - Conclusion (9:14) [ Play | Link ]

Quiz due at Fri, Mar 29 at 10:30 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 Wed, Apr 17 at 11:59 pm - pdf

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

Advanced

Due Wed, Apr 17 at 11:59 pm - pdf

  • Debugging a running process
  • Your debugging process

Eclipse!

Apr 05, 2024

Content and Videos

Class

Go experience the total solar eclipse! Next total eclipse visible from the contiguous US will be in 2044!

11

Text Editors

Apr 12, 2024

Content and Videos

  • 1 - Intro (1:25) [ Play | Link ]
  • 2 - The editors around us (9:01) [ Play | Link ]
  • 3 - Intro to Vim (15:07) [ Play | Link ]
  • 4 - Vim counts, motions, and operators (3:00) [ Play | Link ]
  • 5 - Vim macros (3:26) [ Play | Link ]
  • 6 - Vim configuration (3:35) [ Play | Link ]

Quiz due at Fri, Apr 19 at 10:30 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 text editor history and look at more "advanced" text editor features, featuring Vim

  • Text editor history
  • vim

Basic

Due Wed, Apr 24 at 11:59 pm - pdf

  • Getting familiar with terminal editors

Advanced

Due Wed, Apr 24 at 11:59 pm - pdf

  • Extending editors

12

Testing

Apr 19, 2024

Content and Videos

Slides:

Class

Slides: remark(down) · pdf

Class Recordings: CoE Lec. Cap.

Class Survey

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

Conclusion

Apr 19, 2024

Content and Videos

Class

Slides: remark(down) · pdf

Class Survey

In another semester, we'll have handed the floor over to our IAs to give some small classs

Basic

Due Wed, Apr 24 at 11:59 pm on Gradescope - pdf

  • How's it going?

Advanced

Due Wed, Apr 24 at 11:59 pm on Gradescope - pdf

  • Internships/jobs/summer plans