mshah.ioCourse ScheduleCourse Information


Module 2 - C Review and Unix Programming Tools (Shah) - 2025-Aug-29

Overview

In this module we review the basics of what you should know in regards to C programming

  • Why C? The 'lingua franca' of systems programming
  • A motivation example with matrix multiply
  • C Programming Review
  • Terminal / Shell / Command Line Interface (CLI) - A window to the operating system
  • Some tools we will use: Compiler, GDB, git, ssh, text editor

Slides and Class Content

Please note: Your in-class activity is graded. Your first attempt will be graded. You can use your notes and slides if you like. You have 1 week from the date of this module opening to complete the in-class activity. In-class activities are completed individually.

Audio/Video Recording

Note: Audio/Video recordings are made in a best effort in case you have to miss class or you would otherwise like to re-watch a portion of lecture. Occassional recording errors (e.g. missing sound, corrupted video, etc.) may occur, and I apologize in advance if a recording is not able to be made available.

Readings

    Please use the following resources to supplement this lecture. You may choose to read 1 or more of these before/during/after the lecture to fully immerse into the material.

  1. C Basics you should comfortable with
    • Dive into C - Chapter 1
  2. C Foundations you should be familiar with
    • Dive into C - Chapter 2
  3. GDB Beginner Masterclass
    • (My Youtube to help you debug in 23 minutes on GDB)
  4. Beej's Quick Guide to GDB
    • (My Youtube to help you debug in 23 minutes on GDB)
  5. Essential C Programming Guide
    • For Review on C programming topics
  6. Learn and understand (almost) everything about the fundamentals of C++ pointers in 96 minutes
    • YouTube Video on Pointers
  7. Interactive Shell Course
    • Hackerrank course on using the shell
  8. Internals of how git works
    • Extra reading for git internals
Please do not redistribute or host any materials without e-mailing me first. Thank you for your time!