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 -- it'll just take place in a virtual format. I welcome students to just sign-on to the office hour zoom calls and use the time to work on their projects and listen to questions others might have.
Unfortunately, this will not be a typical semester. This course will be entirely online, but there will still likely be surprises and we will need to be flexible to accommodate changes.
I recognize the difficulties some of you may face. My goal is to make this semester as effective and as smooth as possible. Please reach out to me early and keep me informed of any issues that arise.
This table will have all of the lecture video links, due dates, etc. added throughout the semester. Material will be added on a weekly basis. Lecture video links will be posted under the topic column and released at the start of each week.
Week | Date | Topics | Activities | TODOs |
---|---|---|---|---|
01 | 01/18-01/22 | intro video ssh (Optional) video slides navigating linux video slides viewing files video slides file transfer video slides |
minilab 0 | Create a Piazza account Create a github account (if you do not already have one) Course Survey due Monday 01/25 Windows Users Only: Enable the Linux Subsystem by Wed 01/20 |
02 | 01/25 - 01/29 | sshkeys video slides script/history video slides IO redirection video slides linux utilities video slides |
minilab 1 | - |
03 | 02/01 - 02/05 | compression video slides files diff/piping video slides files grep video slides files git overview video slides |
minilab 2 | |
04 | 02/08 - 02/12 | git intro video slides git branching video slides git remotes video slides git merging video slides |
minilab 3 | Project 1 Assigned |
05 | 02/15 - 02/19 | git other video slides vim video slides files permissions/path video slides installing from source video slides processes video slides |
minilab 4 | Project 1 Due Saturday 02/20 @ 11:59pm Sign-up for Quiz Time Slot Quiz Review Guide |
06 | 02/22 - 02/26 | Bash Scripting basics video slides script arguments video slides script variables video slides script conditionals video slides script loops video slides script arrays video slides script functions video slides script |
minilab 5 | Command Line Quiz |
07 | 03/01 - 03/05 | regex basics video slides regex and grep video slides sed video slides Files: random files books |
minilab 6 | Command Line Quiz Retake / Makeup Project 2 Assigned |
08 | 03/08 - 03/12 | gawk basics video slides script gawk adv video slides script C intro video slides |
minilab 7 Solution Video |
- |
09 | 03/15 - 03/19 | C compiling video slides C printing video slides script C basics video slides script C loops video slides script C pointers video slides script |
minilab 8 | Project 2 Due Friday 03/19 @ 11:59pm PL Practice Quiz |
10 | 03/22 - 03/26 | C stack vs heap video slides C memory allocation video slides script C arrays & pointers video slides script |
minilab 9 | Midterm Monday 03/22 Study Guide Project 3 Released |
11 | 03/29 - 04/02 | C input video slides script C functions video slides script switch video slides script header files video slides files |
minilab 10 | - |
12 | 04/05 - 04/09 | C structs video slides script 2d arrays - stack video slides script 2d arrays - dynamic allocation video slides script makefiles video slides scripts Recommended Reading Chap 4 Understanding and Using C Pointers by Reese |
minilab 11 | Project 3 due Friday 04/09 @ 11:59pm Project 4 Released |
13 | 04/12 - 04/16 | C string funcs video slides script C mem funcs video slides script gdb/valgrind video slides original buggy script |
minilab 12 | |
14 | 04/19 - 04/23 | C arguments video slides script C enums/unions video slides script C fileio video slides files C libraries/misc video slides |
minilab 13 | Project 4 due Friday 04/23 @ 11:59pm Course Evals on BB ClassTranscribe Survey (see Piazza note for link) |
15 | 04/26 - 04/30 | FINAL EXAM: 5:00AM Tuesday, April 27 to 5:00AM Wednesday, April 28 Study guide |