This course should help acquaint you with:
- Navigating and using a Unix-based OS (primarily Linux)
- Remote access and file transfer for Unix systems
- Linux utilities and scripting
- Git/Github
- Programming with a system-level language (C) and memory management
- Syllabus
- Piazza -- also FAQ about Piazza
- PrairieLearn - log-in using "Google" and use your GVSU gmail account
- ClassTranscribe - select "Google" sign-in and use your GVSU gmail account
- GVSU VPN Instructions
If you have questions, please ask! I'm here to help. I welcome students to drop by office hours, either virtual or in-person, to work on their projects and listen to questions others might have (or chat about other CS topics, grad school, etc.)
This table outlines the entire course schedule. Lecture notes are posted for each topic. Lecture videos, although not direct recordings of this semester's live lectures, cover the same topics and are beneficial if you are sick or do not feel comfortable attending in person. Minilab links will be added prior to the start of class. The dates in this schedule are tentative and subject to change.
Week | Date | Topics | Activities | TODOs |
---|---|---|---|---|
01 | 08/29 - 09/02 | introduction ssh video slides navigating linux video slides viewing files video slides file transfer video slides |
Wednesday: minilab0 Friday: minilab1 |
Create a Piazza account Create a github account (if you do not already have one) Windows Users Only: Enable the Linux Subsystem by Wed 08/31 |
02 | 09/05 - 09/09 | No Class 09/05 (Labor Day) sshkeys video slides script/history video slides IO redirection video slides linux utilities video slides |
Wednesday: minilab2 Friday: minilab3 |
- |
03 | 09/12 - 09/16 | compression video slides files diff/piping video slides files vim video slides files grep video slides files git overview video slides |
Friday: minilab4 | Project 1 Assigned Sign-up for Quiz Time Slot Quiz Review Guide |
04 | 09/19 - 09/23 | git intro video slides git branching video slides git merging video slides git remotes video slides git other video slides |
Wednesday: minilab5 | Command Line Quiz (M-W) |
05 | 09/26 - 09/30 | permissions/path video slides installing from source video slides processes video slides Bash scripting: basics video slides script arguments video slides script variables video slides script conditionals video slides script |
Monday: minilab6 Wednesday: minilab7 Friday: minilab8 |
Project 1 Due Thursday 09/29 @ 11:59pm |
06 | 10/03 - 10/07 | Bash Scripting loops video slides script arrays video slides script functions video slides script regex basics video slides regex and grep video slides |
Wendesday: minilab9 Friday: minilab10 |
|
07 | 10/10 - 10/14 | sed video slides Files: random files books gawk basics video slides script gawk adv video slides script Minilab11 Solution Video |
Monday: minilab11 Friday: minilab12 |
Project 2 Assigned |
08 | 10/17 - 10/21 | C intro video slides C compiling video slides C printing video slides script C basics video slides script C loops video slides script |
Monday: minilab 13 Friday: minilab14 |
PL Practice Quiz |
09 | 10/24 - 10/28 | No Class 10/24 (Fall Break) C pointers video slides script C stack vs heap video slides C memory allocation video slides script |
Project 2 Due Thursday 10/27 @ 11:59pm | |
10 | 10/31 - 11/04 | C arrays & pointers video slides script C input video slides script |
Wednesday: minilab 15 | Midterm (6:00pm Sunday, Oct 30 - 6:00pm Monday, Oct 31) Midterm Study Guide Project 3 Assigned (tentative) |
11 | 11/07 - 11/11 | C functions video slides script switch video slides script header files video slides files |
||
12 | 11/14 - 11/18 | 2d arrays - stack video slides script 2d arrays - dynamic allocation video slides script Recommended Reading Chap 4 Understanding and Using C Pointers by Reese C structs video slides script |
Project 3 due (tentative) | |
13 | 11/21 - 11/25 | makefiles video slides scripts No Class 11/23 & 11/25 (Thanksgiving) |
Project 4 Released (tentative) | |
14 | 11/28 - 12/02 | gdb/valgrind video slides original buggy script C string funcs video slides script C mem funcs video slides script C arguments video slides script C enums/unions video slides script |
||
15 | 12/05 - 12/09 | C fileio video slides files C libraries/misc video slides |
Project 4 Due (tentative) | |
16 | 12/11 - 12/16 | FINAL EXAM - WINDOW TBD |