C Programming Language

Overview:

Learn one of the most important and oldest programming languages. As a low-level, or "close-to-the-metal" language, C is in many ways the core and beating heart of programming. Several programming languages are built in, or ontop of C, and you will learn what happens "under the hood" of those languages.

Week 1: Introduction to Programming / Input & Output / Variables and Data Types

scratch logo
  • Topics:
    • Introduction to programming
    • variables, data types (integers, floats, booleans), basic operators (+, -, *, /, %)
    • Reading data from the user and print
  • Practice Problems:
    • Write programs to perform basic calculations with different data types
    • Identify data types based on given values.

Week 2: Conditional Statements (if/else)

scratch logo
  • Topics:
    • if statements, else statements, logical operators (and, or, not)
  • Practice Problems:
    • Write programs that make decisions based on user input (e.g., checking if a number is even or odd).
    • Use nested if statements for complex decision-making.

Week 3: Loops (for, while)

logo
  • Topics:
    • for loops (definite iteration), while loops (indefinite iteration)
  • Practice Problems:
    • Write programs that use for loops for repetitive tasks (e.g., printing a sequence of numbers).
    • Use while loops for situations where the number of iterations is unknown beforehand (e.g., guessing game).

Week 4: Functions (defining and calling functions)

logo
  • Topics:
    • Defining functions with parameters and return values, calling functions
  • Practice Problems:
    • Write programs that use functions to modularize code (e.g., separate functions for calculation and output).
    • Pass arguments to functions and handle return values.

Week 5: Arrays (One-Dimensional)

logo
  • Topics:
    • Declaring and initializing arrays, accessing elements, iterating through arrays
  • Practice Problems:
    • Write programs to store and manipulate data using arrays (e.g., finding the sum or average of elements).
    • Use loops to iterate through arrays and perform operations on each element.

Week 6: Strings (String Manipulation)Strings (String Manipulation)

logo
  • Topics:
    • String data type, accessing characters, string manipulation functions

Week 7: Pointers

logo
  • Topics:
    • Introduction to pointers, pointer arithmetic, pointer dereferencing
  • Practice Problems:
    • Write programs to understand basic pointer operations
    • Use pointers to store array of characters

Week 8: Structures

logo
  • Topics:
    • Defining and accessing structures, structure initialization, nested structures
  • Practice Problems:
    • Write programs to define and manipulate structures

Week 9: Time for projects

logo
  • Topics:
    • Decomposition (breaking down complex problems into smaller subproblems)
  • Practice Problems:
    • Decompose complex CCC-style problems into smaller, solvable steps.
    • Use flowcharts or pseudocode to represent the problem-solving process.

Week 10: Multidimensional Arrays

logo
  • Topics:
    • Declaring and initializing multidimensional arrays, accessing elements, nested loops
  • Practice Problems:
    • Write programs to work with two-dimensional arrays and perform operations on them

Week 11: Dynamic Memory Allocation

logo
  • Topics:
    • Dynamic memory allocation, memory management
  • Practice Problems:
    • Write programs to dynamically allocate memory for arrays and structures
    • Implement dynamic data structures such as linked lists and trees using dynamic memory allocation

Week 12: Review and Projects

logo
  • Topics:
    • Comprehensive review, final project development
  • Practice Problems:
    • Provide practice problems and exercises to assess students' understanding and reinforce key concepts