Course outline and labs
Introduction
Expressions
Elementary algorithms
Defining your own functions
Defining functions by cases
Extending what you can do with equations using recursion
Characters, strings and types
Expressing algorithms using commands
Defining functions using commands
Loops
More on Loops
Full programs
More on functions and recursion
Interlude
Introduction to Java
Functions in Java
Objects
Complete programs
Handling errors: throwing and catching exceptions, null object references
Input from the user and working with files
Arrays and for loops
Searching and sorting arrays