Table of Contents:
1. A Gentle Introduction
1.1 Introducing Karel
1.2 Teaching Karel to solve problems
1.3 Control statements
1.4 Stepwise refinement
1.5 Algorithms in Karel’s world
Summary
Review questions
Exercises
2. Introducing JavaScript
2.1 Data and types
2.2 Numeric data
2.3 Variables
2.4 Functions
2.5 String data
2.6 Running JavaScript in the browser
2.7 Testing and debugging
2.8 Software maintenance
Summary
Review questions
Exercises
3. Control Statements
3.1 Boolean Data
3.2 The if statement
3.3 The switch statement
3.4 The while statement
3.5 The for statement
3.6 Algorithmic programming
3.7 Avoiding fuzzy standards of truth
Summary
Review questions
Exercises
4. Simple Graphics
4.1 A graphical version of “Hello World”
4.2 Classes, objects, and methods
4.3 Graphical objects
4.4 The graphics window
4.5 Creating graphical applications
Summary
Review questions
Exercises
5. Functions
5.1 A quick review of functions
5.2 Libraries
5.3 A library to support randomness
5.4 The mechanics of function calls
5.5 Recursive functions
Summary
Review questions
Exercises
6. Writing Interactive Programs
6.1 First-class functions
6.2 A simple interactive example
6.3 Controlling properties of objects
6.4 Responding to mouse events
6.5 Timer-based animation
6.6 Expanding the graphics library
Summary
Review questions
Exercises
7. Strings
7.1 Binary representation
7.2 String operations
7.3 Classifying characters
7.4 Common string patterns
7.5 String applications
7.6 Reading from the console
Summary
Review questions
Exercises
8. Arrays
8.1 Introduction to arrays
8.2 Array operations
8.3 Using arrays for tabulation
8.4 Reading text from files
8.5 Multidimensional arrays
8.6 Image processing
Summary
Review questions
Exercises
9. Objects
9.1 Objects in JavaScript
9.2 Using objects as maps
9.3 Representing points
9.4 Rational numbers
9.5 Linking objects together
Summary
Review questions
Exercises
10. Designing Data Structures
10.1 Abstract data types
10.2 Implementing a token scanner
10.3 Efficiency and representation
10.4 Representing real-world data
Summary
Review questions
Exercises
11. Inheritance
11.1 Class hierarchies
11.2 Defining an employee hierarchy
11.3 Extending graphical classes
11.4 Decomposition and inheritance
11.5 Alternatives to inheritance
Summary
Review questions
Exercises
12. JavaScript and the Web
12.1 A simple interactive example
12.2 An expanded look at HTML
12.3 Controlling style using CSS
12.4 Connecting JavaScript and HTML
12.5 Storing data in the index.html file
Summary
Review questions
Exercises