The C Programming Language
The C Programming Language is a beginner-level computer programming course suitable for students who may have light exposure to computer programming in general, but may have little to zero experience with programming in C.
This course consists of 12 sessions and students are encouraged to take each session in consecutive order. Students will be learning a wide array of topics, including data types, control flow, and low-level memory management.
Registration
Registration is currently closed as maximum capacity has been reached.
Notice: I am retired from teaching and mentoring, and this course is no longer active.
General Information
- This course is beginner-friendly, but having some pre-existing light exposure to computer programming in general will help tremendously.
- There are no assignments or labs, but optional projects are available.
- Sessions consist of a mixture of lectures, whiteboards, Q+A, and demonstrations.
- Sessions can be expected to last 60-90 minutes each and are scheduled by appointment through Calendly (no Calendly registration required).
- Additional tutoring and help can be scheduled by appointment.
Full Course Overview
Session 1: Introduction
- Basic I/O
- Hello world!
- Compilers
- The big picture
Session 2: Data Types I
- Integers
- Characters
- Floats
- Doubles
Session 3: Data Types II
- Pointers
- Arrays and strings
- Data size modifiers
- Signage modifiers
Session 4: Basic Operators
- Basic arithmetic operators
- Increment and decrement
- Relational operators
Session 5: Advanced Operators
- Logical AND, OR, NOT
- Bitwise AND, OR, NOT
- Bitwise XOR
- Bitwise shifting
- The ternary operator
Session 6: Conditional Control Flow Structures
- If-else conditionals
- Switch-case conditionals
Session 7: Looping Control Flow Structures
- While/do-while loops
- For loops
- Jump statements
Session 8: Functions
- Function declaration
- Function calling
- Returning data
- Scope
Session 9: Preprocessor Directives and Makefiles
- Inclusions
- Constant definitions
- Makefiles
- Important compiler flags
Session 10: Low-Level Memory Management
- Memory addresses
- Pointers
- References
- Dereferences
- Dynamic memory allocation
- Memory deallocation
Session 11: File I/O
- Opening files
- Reading files
- Writing to files
- Seeking locations
Session 12: Introduction to Structures
- Defining structures
- Creating structures
- Interacting with structures
Optional Projects
Four-Function Calculator
This is a project that is ideally to be done after the completion of “Session 8: Functions.” Create a four-function calculator. Your program should at minimum synthesize the following topics:
- Input and output
- Conditionals
- Functions
File Shredder
This is a project that is ideally to be done after the completion of “Session 11: File I/O.” On a computer, “deleting” a file usually only marks the file for deletion. Even things like clearing out the trash bin only marks the space that the file occupied as available to be overwritten by future data. Create a program that will take a file and will overwrite it entirely. Your program should at minimum synthesize the following topics:
- File I/O
- Loops
Notepad
This is a project that is ideally to be done after the completion of “Session 12: Introduction to Structures.” Create a notepad app that can write notes to files, read notes from files, and edit notes. Your program should at minimum synthesize the following topics:
- File I/O
- Dynamic memory management
- Structures