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/28 - 09/01 | introduction ssh video slides navigating linux video slides viewing files video slides file transfer video slides |
Sec03 Fri: minilab0 Sec04 Wed: minilab0 |
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/30 |
02 | 09/04 - 09/08 | No Class 09/04 (Labor Day) sshkeys video slides script/history video slides IO redirection video slides |
Sec03 Wed: minilab1 Fri: minilab2 Sec04: Wed: minilab1 |
- |
03 | 09/11 - 09/15 | linux utilities video slides compression video slides files diff/piping video slides files vim video slides files grep video slides files git overview video slides |
Sec03: Mon: minilab3 Fri: minilab4 Sec04: Mon: minilab2 Mon: minilab3 Wed: minilab4 |
Project 1 Assigned |
04 | 09/18 - 09/22 | git intro video slides git branching video slides git merging video slides git remotes video slides git other video slides |
Sec03: Fri: minilab5 Sec04: Wed: minilab5 |
|
05 | 09/25 - 09/29 | 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 |
Sec03: Mon: minilab06 Wed: minilab07 Fri: minilab08 Sec04: Mon: minilab06 Wed: minilab07 Wed:minilab08 |
Project 1 Due Friday, September 29 @ 11:59pm |
06 | 10/02 - 10/06 | Bash Scripting loops video slides script arrays video slides script functions video slides script regex basics video slides regex and grep video slides |
Optional minilab - bash scripting Sec04: Wed: minilab10 Sec03: Fri: minilab10 |
Monday, 10/02: test1 test1 review |
07 | 10/09 - 10/13 | sed video slides Files: random files books gawk basics video slides script gawk adv video slides script |
Sec03: Mon: minilab11 Fri: minilab12 Sec04: Mon: minilab11 Wed: minilab12 |
Project 2 Assigned |
08 | 10/16 - 10/20 | C intro video slides C compiling video slides C printing video slides script C basics video slides script C loops video slides script |
Sec03: Fri: minilab13 Sec04: Wed: minilab13 |
|
09 | 10/23 - 10/27 | No Class 10/23 (Fall Break) C pointers video slides script C stack vs heap video slides C memory allocation video slides script |
Project 2 Due Thursday, Oct. 26 @ 11:59pm | |
10 | 10/30 - 11/03 | C arrays & pointers video slides script C input video slides script |
Sec04: Mon: minilab15 Sec03: Fri: minilab15 |
Wednesday, 11/01: test2 test2 review Project 3 Assigned |
11 | 11/06 - 11/10 | C functions video slides script header files video slides files switch video slides script 2d arrays - stack video slides script |
Sec04: Mon: minilab16 Sec03: Fri: minilab16 |
|
12 | 11/13 - 11/17 | 2d arrays - dynamic allocation video slides script Recommended Reading Chap 4 Understanding and Using C Pointers by Reese C structs video slides script makefiles video slides scripts |
Sec03: Wednesday: minilab17 Sec04: Wednesday: minilab17 |
Project 3 due Saturday, Nov. 18 @ 11:59pm |
13 | 11/20 - 11/24 | test3 No Class 11/22 & 11/24 (Thanksgiving) |
Monday, 11/20: test 3 Project 4 Released |
|
14 | 11/27 - 12/01 | gdb/valgrind video slides original buggy script C string funcs video slides script C mem funcs video slides script C arguments video slides script |
Sec03: Wed: minilab18 Fri: minilab19 Sec04: Wed: minilab18 Wed: minilab19 |
|
15 | 12/04 - 12/08 | C fileio video slides files C enums/unions video slides script C libraries/misc video slides Non-coding portion of final exam (last class day) |
Project 4 due Friday, Dec. 8 @ 11:59pm | |
16 | 12/11 - 12/15 | Final Exam Sec03: Wednesday, Dec 13 12:00-1:50pm Sec04: Wednesday, Dec. 13 4:00-5:50pm |
Final Study guide |