703.608.0975 rick@warrenworks.com

C Programming

Boot Camp

marrymount-logo-half

College of Business, Innovation, Leadership, and Technology (BILT)
School of Technology & Innovation

C Programming Boot Camp

Fall 2024

SYLLABUS

Instruction Type:

Classroom/Instructor Facilitated

Description:

A breathless introduction and overview of the C programming language. The boot camp consists of three, 3-hour sessions and covers essential topics including development environment setup and configuration, coding, compiling, linking, and running simple C applications, fundamental data types, control flow, functions, arrays, structures, stack vs. heap memory, dynamic memory allocation, and pointers.

Instructor:

Rick Miller, MS Computer Science
California State University Long Beach
Phone: (703) 608-0975
email: richmill@marymount.edu
website: warrenworks.com

Session Dates:

Location Dates & Times
Session 1 — Ballston Center, Room 4088 Saturday, 7 September 2024, 0900 — 1200
Session 2 — Ballston Center, Room  4088 Saturday, 14 September 2024, 0900 — 1200
Session 3 — Ballston Center, Room 4088 Saturday, 21 September 2024, 0900 — 1200
Session 4 — Ballston Center, Room 4088 Saturday, 28 September 2024, 0900 — 1200

Primary Reference:

Reference Link
C Programming Language, 2nd Edition, Brian W. Kernighan & Dennis M. Ritchie https://warrenworks.com/wp-content/uploads/2024/02/C_Programming_Language_2nd-Edition.pdf

Helpful References:

Reference Link
ISO/IEC 9899:201x Draft Standard https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1548.pdf
The C Book, 2nd Edition, by Mike Banahan, et. al. https://publications.gbdirect.co.uk//c_book/
C: Elements of Style, by Steve Oualline http://www.r-5.org/files/books/computers/languages/c/style/Steve_Oualline-C_Elements_of_Style-EN.pdf
An Introduction to GCC https://www.linuxlinks.com/wp-content/uploads/2019/07/An_Introduction_to_GCC-Brian_Gough.pdf
The GNU C Programming Tutorial http://www.crasseux.com/books/ctut.pdf
Essential C, by Nick Parlante http://cslibrary.stanford.edu/101/EssentialC.pdf
Modern C, by Jens Gustedt https://gustedt.gitlabpages.inria.fr/modern-c/
GNU Make https://www.gnu.org/software/make/manual/make.pdf
C Programming Language, 2nd Edition, Solutions https://github.com/ohkimur/the-c-programming-language-2nd-edition-solutions
GNU Coding Standards https://www.gnu.org/prep/standards/
The Definitive C Book Guide on StackOverflow.com https://stackoverflow.com/questions/562303/the-definitive-c-book-guide-and-list
The GNU C Library Reference PDF https://www.gnu.org/software/libc/manual/pdf/libc.pdf

Syllabus:

Session | Date Discussion Topics Activities | Assignments
Session 1
  • Introductions All ‘Round
  • Why C?
  • Development Environment Setup and Configuration
    • MacOS
    • Windows
  • First C Program
    • Compiling
    • Linking
    • Running
  • Purpose of main() Function
  • Fundamental Data Types and Their Sizes
    • char
    • short
    • int
    • long
    • float
    • double
  • Variables
    • Naming
  • Constants
    • Numeric
    • Character
    • String
    • Enumerations
  • Common Operators
    • Arithmetic
    • Relational and Logical
    • Increment and Decrement
      • Prefix
      • Postfix
    • Console I/O
      • printf()
      • puts()
      • scanf()

      My YouTube Channel: https://www.youtube.com/pulpfreepress

      Install gcc on MacOS: https://youtu.be/fjJGIP5ic5s?si=pBVjIWiE29EYbBzd

      Install gcc on Windows: https://youtu.be/a37wNPSWklw?si=k0z_t4XwtFziR2HV

      Getting Organized: https://youtu.be/MBFbnNliw-w?si=QxRgrgJxcfi_Xoel

      Hello World!: https://youtu.be/T-xKQgk4Ge8?si=BwgCKYb8A7sIKci9

       

      C Programming Boot Camp Repository:
      https://github.com/pulpfreepress/c_bootcamp

       

      Development Environment Setup and Configuration

      Session 2
      • Functions
        • Declaration
        • Definition
        • Calling
        • Passing Arguments
        • Returning Values
      • Control Flow
        • if/else
        • while
        • do/while
        • switch
      • Multi-File Programs
        • Header Files
        • Compiling
      • Pre-Processor Directives
        • #include
        • #ifndef
        • #define
      • Strings
        • NULL Termination
      • Arrays
        • Declaration
        • Element Access
        • Iterating
        • Array Math
      Session 3
      • Pointers
        • What is a Pointer?
        • Declaration
        • Dereferencing
      • Stack vs. Heap Memory
      • Dynamic Memory Allocation
      • Releasing Allocated Memory
      • Defining Your Own Types
        • typedef
      • Complex Data Types
        • struct
      Session 4
      • C Standard Library
      • File I/O
      • Complex Projects
        • Project Directory Structure
        • Make Utility
      • Course Wrap-Up
        • Where to Go From Here