Computer Science I
An open CS1 textbook that teaches concepts before syntax — a language-agnostic core, then the same ideas rebuilt in C, Java, and PHP.
Introduction
Problem solving, computing basics, program structure, and pseudocode conventions.
02Basics
Control flow, variables, types, operators, basic I/O, and debugging fundamentals.
03Conditionals
Logical operators, if / if-else / if-else-if statements, and the ternary operator.
04Loops
While, for, do-while, and foreach loops; nesting, infinite loops, and loop equivalency.
05Functions
Defining and using functions; call by value/reference, overloading, variable args, defaults.
06Error Handling
Defensive programming versus exception-based error handling strategies.
07Arrays, Collections & Dynamic Memory
Arrays, static vs dynamic memory, shallow/deep copies, multidimensional arrays, collections.
08Strings
String basic operations, comparisons, and tokenizing.
09File Input/Output
Processing files — paths, error handling, buffering, and binary vs text files.
10Encapsulation & Objects
Objects, data visibility, accessors/mutators, constructors, composition, design principles.
11Recursion
Writing recursive functions, tail recursion, avoiding recursion, and memoization.
12Searching & Sorting
Linear/binary search, selection/insertion/quick/merge sort, comparators, and stability.
The C Programming Language
Part I — CS1 concepts in C, emphasizing pointers, manual memory, structs, and error codes.
Programming LanguageThe Java Programming Language
Part II — CS1 concepts in Java, emphasizing objects, exceptions, equals/hashCode, and lambdas.
Programming LanguageThe PHP Programming Language
Part III — CS1 concepts in PHP, emphasizing type juggling, associative arrays, and web-oriented I/O.