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 Java
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 Java example: Married-couple names
Module 3: Variables and Expressions
3.1 Variables and assignments (general)
3.2 Variables (int)
3.3 Identifiers
3.4 Arithmetic expressions (general)
3.5 Arithmetic expressions (int)
3.6 Example: Health data
3.7 Floating-point numbers (double)
3.8 Scientific notation for floating-point literals
3.9 Constant variables
3.10 Using math functions
3.11 Integer division and modulo
3.12 Type conversions
3.13 Binary
3.14 Characters
3.15 Strings
3.16 Integer overflow
3.17 Numeric data types
3.18 Random numbers
3.19 Reading API documentation
3.20 Debugging
3.21 Style guidelines
3.22 Java example: Salary calculation
3.23 Java example: Salary calculation with variables
3.24 Java 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 Java example: Salary calculation with branches
4.19 Java example: Search for name using branches
Module 7: User-Defined Methods
7.1 User-defined function basics
7.2 Return
7.3 Reasons for defining functions
7.4 Methods with branches/loops
7.5 Unit testing (methods)
7.6 How methods work
7.7 Methods: Common errors
7.8 Array parameters
7.9 Scope of variable/method definitions
7.10 Method name overloading
7.11 Parameter error checking
7.12 Using Scanner in methods
7.13 Perfect size arrays
7.14 Oversize arrays
7.15 Methods with oversize arrays
7.16 Comparing perfect size and oversize arrays
7.17 Using references in methods
7.18 Returning arrays from methods
7.19 Common errors: Methods and arrays
7.20 Java documentation for methods
7.21 Java example: Salary calculation with methods
7.22 Java example: Domain name validation with methods
Module 6: Arrays
6.1 Array concept (general)
6.2 Arrays
6.3 Array iteration drill
6.4 Iterating through arrays
6.5 Multiple arrays
6.6 Swapping two variables (General)
6.7 Loop-modifying or copying/comparing arrays
6.8 Debugging example: Reversing an array
6.9 Two-dimensional arrays
6.10 Enhanced for loop: Arrays
6.11 C example: Annual salary tax rate calculation with arrays
6.12 C example: Domain name validation with arrays
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 Java example: Salary calculation with loops
5.13 Java example: Domain name validation with loops
Module 11: Inheritance
11.1 Derived classes
11.2 Access by members of derived classes
11.3 Overriding member methods
11.4 The Object class
11.5 Polymorphism
11.6 ArrayLists of Objects
11.7 Abstract classes: Introduction (generic)
11.8 Abstract classes
11.9 Is-a versus has-a relationships
11.10 UML
11.11 Interfaces
11.12 Java example: Employees and instantiating from an abstract class
11.13 Java example: Employees and overriding class methods
Module 10: Input / Output
10.1 Output and input streams
10.2 Output formatting
10.3 Streams using Strings
10.4 File input
10.5 File output
Module 9: Memory Management
9.1 Introduction to memory management
9.2 A first linked list
9.3 Memory regions: Heap/Stack
9.4 Basic garbage collection
9.5 Garbage collection and variable scope
9.6 Java example: Employee list using ArrayLists
Module 8: Objects and Classes
8.1 Objects: Introduction
8.2 Using a class
8.3 Defining a class
8.4 Mutators, accessors and private helpers
8.5 Initialisation and constructors
8.6 Choosing classes to create
8.7 Defining main() in a programmer-defined class
8.8 Unit testing (classes)
8.9 Constructor overloading
8.10 Objects and references
8.11 The 'this' implicit parameter
8.12 Primitive and reference types
8.13 Wrapper class conversions
8.14 ArrayList
8.15 Classes and ArrayLists
8.16 ArrayList ADT
8.17 Java documentation for classes
8.18 Parameters of reference types
8.19 Static fields and methods
8.20 Using packages
8.21 Java example: Salary calculation with classes
8.22 Java example: Domain name availability with classes
Module 13: Exceptions
13.1 Exception basics
13.2 Exceptions with methods
13.3 Multiple handlers
13.4 Exception handling in file input/output
13.5 Java example: Generate number format exception
Module 12: Recursion
12.1 Recursion: Introduction
12.2 Recursive methods
12.3 Recursive algorithm: Search
12.4 Adding output statements for debugging
12.5 Creating a recursive methods
12.6 Recursive math methods
12.7 Recursive exploration of all possibilities
12.8 Stack overflow
12.9 C example: Recursively output permutations
Module 17: JavaFX
17.1 Introduction to graphical user interfaces with JavaFX
17.2 Positioning GUI components using a GridPane
17.3 Input and event handlers
17.4 Basic graphics with JavaFX
Module 16: GUI
16.1 Basic graphics
16.2 Introduction to graphical user interfaces
16.3 Positioning GUI components using a GridBagLayout
16.4 GUI input and ActionListeners
16.5 GUI input with formatted text fields
16.6 GUI input with JSpinners
16.7 Displaying multi-line text in a JTextArea
16.8 Using tables in GUIs
16.9 Using sliders in GUIs
16.10 GUI tables, fields, and buttons: A seat reservation example
16.11 Reading files with a GUI
Module 15: Collections
15.1 Enhanced for loop
15.2 List: LinkedList
15.3 Map: HashMap
15.4 Set: HashSet
15.5 Queue interface
15.6 Deque interface
Module 14: Generics
14.1 Comparable Interface: Sorting an ArrayList
14.2 Generic methods
14.3 Class generics
14.4 Java example: Map values using a generic method
Module 18: Searching and Sorting Algorithms
18.1 Searching and algorithms
18.2 Binary search
18.3 O notation
18.4 Algorithm analysis
18.5 Sorting: Introduction
18.6 Selection sort
18.7 Insertion sort
18.8 Quicksort
18.9 Merge sort
Module 19: Additional Material
19.1 Do-while loops
19.2 Engineering examples
19.3 Engineering examples using methods
19.4 Command-line arguments
19.5 Command-line arguments and files
19.6 Additional practice: Output art
19.7 Additional practice: Grade calculation
19.8 Additional practice: Tweet decoder
19.9 Additional practice: Dice statistics
19.10 zyBooks built-in programming window
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 input integers
3.2 Caffeine levels
3.3 Driving costs
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 casting
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 Methods
7.1 Miles to track laps
7.2 Step counter
7.3 A jiffy
7.4 Driving costs - methods
7.5 Swapping variables
7.6 Max magnitude
7.7 Flip a coin
7.8 Count characters - methods
7.9 Remove spaces - methods
7.10 Convert to binary - methods
7.11 Max and min numbers
7.12 Acronyms
7.13 Leap year - methods
7.14 Exact change - methods
7.15 Even/odd values in an array
7.16 Contact list
7.17 Sort an array
7.18 Output values below an amount - methods
7.19 Adjust list by normalising - methods
7.20 Word frequencies - methods
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: Memory Management
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: Input / Output
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 (derived classes)
11.3 Course information (derived classes)
11.4 Book information (overriding member methods)
11.5 Plant information (ArrayList)
Module 20: Coding Practice Problems
20.1 Coding practice problems overview
20.2 Expressions: Simple floating-point expression
20.3 Expressions: Distance formula
20.4 Branches: Complex cost structure
20.5 Branches: Shape display
20.6 Branches: Caption punctuation
20.7 Branches: Guitar tabs
20.8 Branches: 24-hour time
20.9 Branches: Next date
20.10 Branches: Runway headings
20.11 Branches: Listing names
20.12 Branches: Next license plate number
20.13 Loops (for): Output sequence
20.14 Loops (for): Output evens
20.15 Loops (while): Output rocket height
20.16 Loops (while): Compute modified average
20.17 Loops (nested): Sum a given number of integers
20.18 Loops: Output integer's digits
20.19 Loops: Removing leading/trailing whitespace
20.20 Loops: Password requirements
20.21 Loops (nested): HTML table
20.22 Loops: Output integers as comma-separated list
20.23 Loops: Customer lookup
20.24 Loops: Word count
20.25 Loops: Academic index score table
20.26 Loops: TV aspect ratios
20.27 Loops: Biggest difference
20.28 Loops: Check if sorted
20.29 Vectors: Find max
20.30 Vectors: Outputting multiple elements per line
20.31 Vectors: Copying only negative alues
20.32 Vectors: Binary to decimal conversion
20.33 Vectors: Bowling score
20.34 Vectors: Min, max, average
20.35 Vectors: Mode
20.36 Vectors: Grouping into ranges
20.37 Vectors: Longest sequence
20.38 Vectors: Reverse in place
20.39 Functions: Compute max
20.40 Functions: Sort three values
20.41 Functions: Calorie estimator
20.42 Functions: Rideshare pickup time
20.43 Functions: User age
20.44 Functions: Simulating waiting time (fast clerk)
20.45 Functions: Number to words
20.46 Functions: Driving cost estimator
20.47 Functions: Split cents into dollars and cents
20.48 Functions: Rectangles sizes
20.49 Functions: Electric bill
20.50 Functions: Digits to number
20.51 Functions: Commas in integer
20.52 Functions: Next char in string
20.53 Functions: Find next substring
20.54 Functions: Output guitar tabs
20.55 Functions: Rotate three values
Module 18: Searching and Sorting Algorithms
18.1 Descending selection sort with output during execution
18.2 Sorting user IDs
Module 15: Collections
15.1 Grocery shopping list (LinkedList)
15.2 Student grades (HashMap)
15.3 Ticketing service (Queue)
Module 14: Generics
14.1 What order? (generic methods)
14.2 Zip code and population (generic types)
Module 13: Exceptions
13.1 Exception handling to detect input String vs. Integer
Module 12: Recursion
12.1 All permutations of names
12.2 Number pattern