Creating Solutions (C Language) - Table of Contents

with updates by Jessie Gardner, Shelby Hagemann, & Sara Harris


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Main Directory / Table of Contents

  1. Getting Started
    1. Introduction to This Reference
    2. Introduction to File Management (under construction)
    3. Introduction to Program Development Tools
    4. Installing C in the Linux Environment
    5. Installing C in the Mac Environment
    6. Installing C in the Virtualbox Environment
    7. Installing C in the VMWare Environment
    8. Installing C in the Windows Environment
    9. Source Code File Organization
    10. Basic Program Organization
    11. Advanced Operations - Compiling and Linking
  2. Creating a Program
    1. The concept of Linear Progression, or Sequence
    2. Sequences in a Program
    3. Turning a Sequence into a Program
    4. Making Programs Easier - Making a Square
    5. Making Programs Easier - Making a Triangle
    6. Making Programs (Even More) Easier
    7. Choosing the Right Code
  3. The Four Step Programming Process
    1. Introduction to Structured Programming
    2. Overview of the Four Step Programming Process
    3. Step One
    4. Step Two
    5. Step Three
    6. Step Four
  4. Program Input and Output (I/O)
    1. The Data Stream Concept
    2. Standard I/O in C
    3. Formatted Command-Line I/O
    4. I/O Application - Debugging
  5. Data Abstraction
    1. Using Data in a Program
    2. Keywords in C
    3. Fundamental Data Types
    4. One Extended Data Type
    5. Data Assignment
    6. Using C Constants
  6. Mathematical Operations
    1. Integers - Addition and Subtraction
    2. Integers - Multiplication and Division
    3. Integers - Modulo Arithmetic
    4. Floating Point Arithmetic
    5. Mathematics with Characters
    6. Order of Operations (Precedence)
    7. Mixed-Mode Mathematics
    8. Combining Mathematics and Assignment
    9. Using External Functions
  7. Program Decision Making
    1. Computer Logic and Decision Making
    2. Conditional Operators and Operations
    3. Boolean Combinations and Logical Operators
    4. Applications of the Rules - Sports
    5. Applications of the Rules - Leap Year
    6. Truth Tables
    7. Simple Branching
    8. Selecting from Multiple Options - if
    9. Nesting if Statements
    10. Short Circuit Analysis
    11. Selecting from Multiple Options - switch
    12. Forcing a Default Decision, if Statement
    13. Forcing a Default Decision, switch Statement
    14. Special Case - Comparing C-Style Strings
  8. Functional Abstraction - Subroutines
    1. The Concept of Subroutines
    2. Creating a Function
    3. Functions as Factories
    4. Boolean Functions
    5. Using Functions in Programs
    6. Functions - Calling and Being Called, With Differing Parameters
    7. Programming by Contract - Pre Conditions
    8. Programming by Contract - Post Conditions
    9. Programming by Contract - Errors and Exceptions
    10. The main Function
    11. Using Header Files
  9. The Six Step Programming Process
    1. (Re)Introduction
    2. Step One, Reviewed
    3. Step Two, Reviewed
    4. Step Three - Locating, Identifying, and Designing Functions
    5. Step Four - Implementing the main Function
    6. Step Five - Designing the Supporting Functions
    7. Step Six - Implementing the Supporting Functions
  10. Iteration
    1. The Concept of Looping, or Iteration
    2. Simple Iteration
    3. Repeating a Test
    4. Pre-Test vs Post-Test Loops
    5. Reflecting on Loops
    6. The C while Loop
    7. The C for Loop
    8. The C do..while Loop
    9. Nesting Loops
    10. Good Practice - Using Sentinels and Flags
    11. Bad Practice - Using break and continue
    12. Looping without Loops - Recursion
  11. Data Storage and Retrieval
    1. The File Stream Metaphor, Revisited
    2. Starting Out with Text Files
    3. Simple File Output
    4. File Output with Loops
    5. Simple File Input
    6. File Input with Priming and Sentinels
  12. Homogenous Data Storage using One Dimensional Arrays
    1. One Dimensional Array Concepts
    2. One Dimensional Array Usage, with Bracket Operators
    3. One Dimensional Array Usage, with Pointer Arithmetic
    4. Adding Data to a One Dimensional Array
    5. Removing Data from a One Dimensional Array
    6. Array Operations - The Bubble Sort, Pointers, and References
    7. Array Operations - The Selection Sort
    8. Array Operations - The Insertion Sort and Pointers
    9. Array Operations - The Binary Search
    10. Array Operations - Complexity Analysis (Big O)
    11. Array Operations - Aliasing
    12. Arrays of Arrays: Two-Dimensional Arrays
  13. Advanced Sorting
    1. Merge Sort
    2. Quick Sort
    3. Advanced Sorting - Complexity Analysis (Big O)
    4. Radix Sort (future)
  14. Checking Every Possibility: Recursive Backtracking
    1. Introduction
    2. The Eight Queens Problem
    3. The Sudoku Problem (future)
    4. The Knapsack Problem (future)
  15. Object Oriented Programming (OOP)
    1. OOP - The Concept
    2. OOP as Tool Making
    3. Diving into Records, The C struct
    4. More on Records, Declaring a C++ Class
    5. More on Records, Implementing a C++ Class
    6. Scope Considerations with Classes
    7. C++ Class Inheritance
    8. Generic Class Study
    9. C++ Overloaded Operators
  16. Linked Lists
    1. Introduction
    2. Adding Items To A Linked List (and protecting from ALIASING)
    3. Removing Items From A Linked List
    4. Head Pointer Returns, and Double Pointers
    5. Other Kinds of Linked Lists
  17. Data Structure Applications
    1. Stacks
    2. Queues
  18. Binary Search Trees
    1. Introduction
    2. Inserting Into A Binary Search Tree (BST)
    3. Removing From a Binary Search Tree (BST)
    4. How It Can Go Wrong
  19. Self Balancing Trees
    1. Considering Balanced Trees
    2. The Adelson-Velsky and Landis (AVL) Tree
    3. The Red Black Tree
    4. The Two Three Tree
  20. Heap Data Structures
    1. Introduction to Heaps
    2. The Heap Insertion Operation
    3. The Heap Removal Operation
  21. Hash Tables
    1. The Hashing Strategy
    2. Hash Tables That Probe
    3. Hash Tables With Other Data Structures
  22. Graphs
    1. Introduction To Graphs
    2. Traversing Graphs