Table of Contents
1. Introduction
1.1 Programming (general)
1.2 Programming basics
1.3 Comments and whitespace
1.4 Brief history
1.5 Computers all around us
1.6 Representing information as bits
1.7 Problem solving
1.8 Why programming
1.9 Why whitespace matters
1.10 Code and pseudocode
2. Variables / Assignments
2.1 Variables and assignments (general)
2.2 Variables (integer)
2.3 Identifiers
2.4 Arithmetic expressions (general)
2.5 Arithmetic expressions (integer)
2.6 Example: Health data
2.7 Floating-point numbers (float)
2.8 Using math functions
2.9 Random numbers
2.10 Integer division
2.11 Type conversions
2.12 Modulo operator
2.13 Data types
2.14 Constants
2.15 Code: Variables and assignments
3. Branches
3.1 Branches
3.2 More branches
3.3 Equality and relational operators
3.4 Detecting ranges using branches
3.5 Logical operators
3.6 Order of evaluation
3.7 Example: Toll calculation
3.8 Floating-point comparison
3.9 Code: Branches
3.10 Code: More branches
4. Loops
4.1 Loops (general)
4.2 Loop basics
4.3 More loop examples
4.4 Looping N times
4.5 Loop examples iterating N times
4.6 While and for loops
4.7 Nested loops
4.8 Code: While loops
4.9 Code: For loops
5. Arrays
5.1 Array concept (general)
5.2 Arrays
5.3 Array iteration drill
5.4 Iterating through arrays
5.5 Swapping two variables (general)
5.6 Code: Arrays
6. User-Defined Functions
6. User-Defined Functions
6.1 User-defined function basics
6.2 Return
6.3 Reasons for defining functions
6.4 Functions with branches/loops
6.5 Code: Functions
6.6 Code: Functions with array parameters
7. Software Topics
7.1 Algorithms
7.2 Language survey
7.3 Libraries
8. Troubleshooting Process
8.1 Troubleshooting: Hypotheses and tests
8.2 Logic of troubleshooting
8.3 Creating hypotheses
8.4 Ex: Dog whimpering
8.5 Troubleshooting game
8.6 Knowledge
8.7 Ex: iPhone headset
8.8 Ex: USB car charger
8.9 Ex: Gmail username
8.10 Hierarchical hypotheses
9. Program Debugging
9.1 Basic debugging
9.2 Ex: Calculation error
9.3 Ex: Logic error
9.4 Ex: Loop error
9.5 Ex: Function error
9.6 Programming knowledge
10. Algorithms
10.1 Introduction to algorithms
10.2 Algorithm efficiency
10.3 Searching and algorithms
10.4 Binary search
10.5 Sorting: Introduction
10.6 Heuristics
Introduce essential programming concepts to students with little or no coding experience
Fundamental Programming Concepts in Coral teaches the key principles of programming using Coral, a language developed by zyBooks specifically to instruct students with no coding background.
- Simplified syntax makes it easy to read and write code, helping beginners avoid common programming pitfalls
- Highly visual, relying on flowcharting-to-code snippets, giving students insights at each stage of the coding process
- Covers basic programming concepts, including variables, data types, assignment statements, arithmetic operations, decisions, loops, arrays, and functions
- Auto-graded test bank, over 30 labs, and a web-native simulator all integrated into the zyBook
- Adopters have access to a test bank with over 200 questions
What is Coral?
Coral is a programming language exclusive to zyBooks that is designed to be easy for beginners to learn and use. It features a simplified syntax that focuses on the essentials of programming, making it ideal for introductory courses.
Key features:
- Simplicity Coral only has constructs needed for basic programming concepts, and each construct is simple
- Code/flowchart unity Instructors can start with flowcharts that lead to code, or with start with code and visualize with flowcharts
- Visualizing simulator Built-in, web-based Coral simulator shows step-by-step execution, variable values, inputs being consumed, and outputs; students just program and execute
- Flowchart layout The simulator generates a flowchart from code, with the flowchart’s top-down and indentation layout matching the code, so learners can visualize code execution via flowcharts
What is a zyBook?
Fundamental Programming Concepts in Coral is a web-native, interactive zyBook that helps students visualize concepts to learn faster and more effectively than with a traditional textbook. (Check out our research.)
Since 2012, over 1,700 academic institutions have adopted digital zyBooks to transform their STEM education.
Authors
Roman Lysecky
Professor Emeritus of Electrical and Computer Engineering, Univ. of Arizona
Frank Vahid
Computer Science PhD, Univ. of California, Irvine / zyBooks Co-Founder