ZYBOOKS
Module 1: How to use a zyBook
1.1 Basics
1.2 Account and platform basics
1.3 Progression challenge activities
1.4 Programming challenge activities
1.5 Feedback
1.6 zyLab basics
Module 2: Introduction to C
2.1 Programming (general)
2.2 Programming basics
2.3 Comments and whitespace
2.4 Errors and warnings
2.5 Computers and programs (general)
2.6 Computer tour
2.7 Language history
2.8 Problem solving
2.9 Why programming
2.10 Why whitespace matters
2.11 C example: Salary calculation
2.12 C example: Married-couple names
Module 3: Variables and Expressions
3.1 Variables and assignments (general)
3.2 Identifiers
3.3 Strings
3.4 Integer overflow
3.5 Arithmetic expressions (general)
3.6 Floating-point numbers (double)
3.7 Scientific notation for floating-point literals
3.8 Constant variables
3.9 Using math functions
3.10 Integer division and modulo
3.11 Type conversions
3.12 Binary
3.13 Characters
3.14 Strings
3.15 Integer overflow
3.16 Numeric data types
3.17 Unsigned
3.18 Random numbers
3.19 Debugging
3.20 Auto (since C++11)
3.21 Style guidelines
3.22 C example: Salary calculation with variables
3.23 C example: Married-couple names with variables
Module 4: Branches
4.1 If-else
4.2 More if-else
4.3 Equality and relational operators
4.4 Detecting ranges (general)
4.5 Detecting ranges with if-else statements
4.6 Logical operators
4.7 Example: Toll calculation
4.8 Order of evaluation
4.9 Switch statements
4.10 Boolean data type
4.11 String comparisons
4.12 String access operations
4.13 Character operations
4.14 More string operations
4.15 Conditional expressions
4.16 Floating-point comparison
4.17 Short circuit evaluation
4.18 C example: Salary calculation with branches
4.19 C example: Search for name using branches
Module 7: User-Defined Functions
7.1 User-defined function basics
7.2 Return
7.3 Reasons for defining functions
7.4 Functions with branches/loops
7.5 Unit testing (functions)
7.6 How functions work
7.7 Functions: Common errors
7.8 Pass by reference
7.9 Functions with string/vector parameters
7.10 Functions with C string parameters
7.11 Scope of variable/function definitions
7.12 Default parameter values
7.13 Function name overloading
7.14 Parameter error checking
7.15 Preprocessor and include
7.16 Separate files
7.17 C example: Salary calculation with functions
7.18 C example: Domain name validation with functions
Module 6: Arrays
6.1 Array/vector concept (general)
6.2 Vectors
6.3 Array/vector iteration drill
6.4 Iterating through vectors
6.5 Multiple vectors
6.6 Vector resize
6.7 Vector push_back
6.8 Loop-modifying or copying/comparing arrays
6.9 Swapping two variables (General)
6.10 Debugging example: Reversing a vector
6.11 Array vs. vectors
6.12 Two-dimensional arrays
6.13 Char arrays / C strings
6.14 String library functions
6.15 Char library functions: ctype
6.16 C example: Annual salary tax rate calculation with vectors
6.17 C example: Domain name validation with vectors
Module 5: Loops
5.1 Loops (general)
5.2 While loops
5.3 More while examples
5.4 For loops
5.5 More for loops examples
5.6 Loops and strings
5.7 Nested loops
5.8 Developing programs incrementally
5.9 Break and continue
5.10 Variable name scope
5.11 Enumerations
5.12 C example: Salary calculation with loops
5.13 C example: Domain name validation with loops
Module 11: Inheritance
11.1 Derived classes
11.2 Access by members of derived classes
11.3 Overriding class functions
11.4 Polymorphism and virtual member functions
11.5 Abstract classes: Introduction (generic)
11.6 Abstract classes
11.7 Is-a versus has-a relationships
11.8 UML
11.9 C++ example: Employees and overriding class functions
11.10 Employees using an abstract class
Module 10: Streams
10.1 Output and input streams
10.2 Output formatting
10.3 Input string stream
10.4 Output string stream
10.5 File input
10.6 C++ example: Parsing and validating input files
10.7 File output
10.8 C++ example: Saving and retrieving program data
10.9 Overloading stream operators
Module 9: Pointers
9.1 Why pointers?
9.2 Pointer basics
9.3 Operators: new, delete and ->
9.4 String functions with pointers
9.5 A first linked list
9.6 Memory regions: Heap/Stack
9.7 Destructors
9.8 Memory leaks
9.9 Copy constructors
9.10 Copy assignment operator
9.11 Rule of three
9.12 C example: Employee list using vectors
Module 8: Objects and Classes
8.1 Objects: Introduction
8.2 Using a class
8.3 Defining a class
8.4 Inline member functions
8.5 Mutators, accessors and private helpers
8.6 Initialisation and constructors
8.7 Classes and vectors/classes
8.8 Separate files for classes
8.9 Choosing classes to create
8.10 Unit testing (classes)
8.11 Constructor overloading
8.12 Constructor initialiser lists
8.13 The 'this' implicit parameter
8.14 Operator overloading
8.15 Overloading comparison operators
8.16 Vector ADT
8.17 Namespaces
8.18 Static data members and functions
8.19 C++ example: Salary calculation with classes
8.20 C++ example: Domain name availability with classes
Module 13: Exceptions
13.1 Exception basics
13.2 Exceptions with functions
13.3 Multiple handlers
13.4 C++ example: Generate number format exception
Module 12: Recursion
12.1 Recursion: Introduction
12.2 Recursive functions
12.3 Recursive algorithm: Search
12.4 Adding output statements for debugging
12.5 Creating a recursive function
12.6 Recursive math functions
12.7 Recursive exploration of all possibilities
12.8 Stack overflow
12.9 C example: Recursively output permutations
Module 17: Additional Material
17.1 Do-while loops
17.2 Arrays
17.3 Iterating through arrays
17.4 Multiple arrays
17.5 Loop-modifying or copying/comparing arrays
17.6 Debugging example: Reversing an array
17.7 Engineering examples
17.8 Functions with array parameters
17.9 Functions with array parameters: Common errors
17.10 Engineering examples using functions
17.11 Grouping data: struct
17.12 Structs and functions
17.13 Structs and vectors
17.14 Structs, vectors, and functions: A seat reservation example
17.15 Command-line arguments
17.16 Command-line arguments and files
17.17 The #define directive
17.18 Modular compilation
17.19 Makefiles
17.20 Additional practice: Output art
17.21 Additional practice: Grade calculation
17.22 Additional practice: Tweet decoder
17.23 Additional practice: Dice statistics
17.24 zyBooks built-in programming window
Module 16: Searching and Sorting Algorithms
16.1 Searching and algorithms
16.2 Binary search
16.3 O notation
16.4 Algorithm analysis
16.5 Sorting: Introduction
16.6 Selection sort
16.7 Insertion sort
16.8 Quicksort
16.9 Merge sort
Module 15: Containers
15.1 Range-based for loop
15.2 List
15.3 Pair
15.4 Map
15.5 Set
15.6 Queue
15.7 Deque
15.8 find() function
15.9 sort() function
Module 14: Templates
14.1 Function templates
14.2 Class templates
14.3 C++ example: Map values using a function template
ZYLABS
Module 2: Introduction to C
2.1 Basics
2.2 Interleaved input / output
2.3 Formatted output: Hello World!
2.4 Formatted output: No parking sign
2.5 Input and formatted output: House real estate summary
2.6 Input and formatted output: Right-facing arrow
2.7 Warm up: Hello world
2.8 Warm up: Basic output with variables
2.9 Program: ASCII art
Module 3: Variables and Expressions
3.1 Divide by x
3.2 Driving costs
3.3 Expression for calories burned during workout
3.4 Expression for calories burned during workout
3.5 Using math functions
3.6 Phone number breakdown
3.7 Simple statistics
3.8 Musical note frequencies
3.9 Input: Welcome message
3.10 Input: Mad Lib
3.11 Warm up: Variables, input, and type conversion
3.12 Program: Painting a wall
Module 4: Branches
4.1 Remove gray from RGB
4.2 Smallest number
4.3 Interstate highway numbers
4.4 Seasons
4.5 Exact change
4.6 Leap year
4.7 Name format
4.8 Warm up: Text message abbreviation decoder
4.9 Program: Text message decoder
4.10 Program: Text message expander
Module 5: Loops
5.1 Convert to binary
5.2 Mad Lib - loops
5.3 Varied amount of input data
5.4 Count characters
5.5 Checker for integer string
5.6 Password modifier
5.7 Remove spaces
5.8 Count input length without spaces, periods, or commas
5.9 Countdown until matching digits
5.10 Output range with increment of 10
5.11 Print string in reverse
5.12 Palindrome
5.13 Brute force equation solver
5.14 Warm up: Drawing a right triangle
5.15 Program: Drawing a half arrow
Module 6: Arrays
6.1 Output numbers in reverse
6.2 Middle item
6.3 Output values below an amount
6.4 Adjust list by normalising
6.5 Word frequencies
6.6 Contains the character
6.7 Elements in a range
6.8 Two smallest numbers
6.9 Warm up: People's weights (Vectors)
6.10 Program: Soccer team roster (Vectors)
Module 7: User-Defined Functions
7.1 Miles to track laps
7.2 Step counter
7.3 A jiffy
7.4 Driving costs - functions
7.5 Swapping variables
7.6 Max magnitude
7.7 Flip a coin
7.8 Count characters - functions
7.9 Remove spaces - functions
7.10 Convert to binary - functions
7.11 Max and min numbers
7.12 Acronyms
7.13 Leap year - functions
7.14 Exact change - functions
7.15 Even/odd values in a vector
7.16 Contact list
7.17 Sort an vector
7.18 Output values below an amount - functions
7.19 Adjust list by normalising - functions
7.20 Word frequencies - functions
7.21 Replacement words
7.22 Warm up: Text analyser and modifier
7.23 Program: Authoring assistant
Module 8: Objects and Classes
8.1 Triangle area comparison (classes)
8.2 Car value (classes)
8.3 Winning team (classes)
8.4 Nutritional information (classes/constructors)
8.5 Artwork label (classes/constructors)
8.6 Warm up: Online shopping cart (Part 1)
8.7 Program: Online shopping cart (Part 2)
Module 9: Pointers
9.1 Library book sorting
9.2 Mileage tracker for a runner
9.3 Inventory (linked lists: insert at the front of a list)
9.4 Playlist (output linked list)
9.5 Grocery shopping list (linked list: inserting at the end of a list)
9.6 Warm up: Contacts
9.7 Program: Playlist
Module 10: Streams
10.1 Parsing dates
10.2 Warm up: Parsing strings
10.3 Program: Data visualisation
Module 11: Inheritance
11.1 Pet information (derived classes)
11.2 Instrument information
11.3 Course information (derived classes)
11.4 Book information (overriding member functions)
11.5 Plant information (vector)
Module 18: Coding Practice Problems
18.1 Coding practice problems overview
18.2 Expressions: Simple floating-point expression
18.3 Expressions: Distance formula
18.4 Branches: Complex cost structure
18.5 Branches: Shape display
18.6 Branches: Caption punctuation
18.7 Branches: Guitar tabs
18.8 Branches: 24-hour time
18.9 Branches: Next date
18.10 Branches: Runway headings
18.11 Branches: Listing names
18.12 Branches: Next license plate number
18.13 Loops (for): Output sequence
18.14 Loops (for): Output evens
18.15 Loops (while): Output rocket height
18.16 Loops (while): Computer modified average
18.17 Loops (nested): Sum a given number of integers
18.18 Loops: Output integer's digits
18.19 Loops: Removing leading/trailing whitespace
18.20 Loops: Password requirements
18.21 Loops (nested): HTML table
18.22 Loops: Output integers as comma-separated list
18.23 Loops: Customer lookup
18.24 Loops: Word count
18.25 Loops: Academic index score table
18.26 Loops: TV aspect ratios
18.27 Loops: Biggest difference
18.28 Loops: Check if sorted
18.29 Vectors: Find max
18.30 Vectors: Outputting multiple elements per line
18.31 Vectors: Copying only negative alues
18.32 Vectors: Binary to decimal conversion
18.33 Vectors: Bowling score
18.34 Vectors: Min, max, average
18.35 Vectors: Mode
18.36 Vectors: Grouping into ranges
18.37 Vectors: Longest sequence
18.38 Vectors: Reverse in place
18.39 Functions: Compute max
18.40 Functions: Sort three values
18.41 Functions: Calorie estimator
18.42 Functions: Rideshare pickup time
18.43 Functions: User age
18.44 Functions: Simulating waiting time (fast clerk)
18.45 Functions: Number to words
18.46 Functions: Driving cost estimator
18.47 Functions: Split cents into dollars and cents
18.48 Functions: Rectangles sizes
18.49 Functions: Electric bill
18.50 Functions: Digits to number
18.51 Functions: Commas in integer
18.52 Functions: Next char in string
18.53 Functions: Find next substring
18.54 Functions: Output guitar tabs
18.55 Functions: Rotate three values
Module 16: Searching and Sorting Algorithms
16.1 Descending selection sort with output during execution
16.2 Sorting user IDs
Module 15: Containers
15.1 Grocery shopping list (list)
15.2 Student grades (map)
15.3 Ticketing service (queue)
Module 14: Templates
14.1 What order? (function templates)
14.2 Zip code and population (class templates)
Module 13: Exceptions
13.1 Exception handling to detect input string vs. int
Module 12: Recursion
12.1 All permutations of names
12.2 Number pattern