# University Computer Science

## Course Description

University Computer Science I is the first course in the
Modern Computer Science track, a sequence of fully interactive, self-contained, online programming courses for high school students. University Computer Science I teaches the programming language Scheme, the language of choice at many of the finest computer science universities around the world because it enables students to focus on advanced concepts that can be easily applied to any programming language. This is a true online course and includes online Scheme interpreter, interactive exercises, and instant feedback with automatic grading of all work.

Characters, Atoms and Lists

Data and Functions

A Visit from Outer Space

Characters and Atoms

Introducing Lists

Lists

Matching Parentheses

Atomic Elements and Data Expressions

Counting Parentheses

Decomposition Trees

Primitive Functions

Black Boxes

The First Machine

Machine Hook-Ups

A New Machine

Functions

List Construction

Predicate Functions

Review for Test 1

Test 1

Generators and If-Switches

Data Expression Generators

If-Switches

Problem Set 1

Functional Expressions

Variables

Functional Expressions

Evaluation

Expressions for Generators and Conditionals

Quote-Expressions

Cond-Expressions

Simplifying Cond-Expressions

Evaluating Cond-Expressions

Review for Test 2

Test 2

Derived Functions

Constructing New Functions

Making New Functions

Names for Derived Functions

Using Derived Functions

The Scheme Evaluator

Problem Set 2

Boolean Functions

Problem Set 3

Programming

Top-Down Programming

Review for Test 3

Test 3

Recursion

Lats

Trace Tables

Recursive Functions

Problem Set 4

Recursive Functions that Output Lists

Problem Set 5

Problem Set 6

Review for Test 4

Test 4

Numbers

The Scheme Library

Preserving your Definitions

Working with Numbers

Introducing Numbers

Problem Set 7

Exponentiation

Review for Test 5

Test 5

Data Structures

Introduction

Introduction to Data Structures

Global Variables

Arrays

Pairing Lists

Arrays

Problem Set 8

Review for Test 6

Test 6

Trees

Taxonomic Trees

Binary Trees

Ordered Binary Trees

Tree Sort

Problem Set 9

Review for Test 7

Test 7

Object-Oriented Programming

Introduction

Introducing Object-Oriented Programming

Sequencing Evaluations

Local Variables

Function-Valued Functions

Functions That Output Functions

Mixed Lambda-Expressions

Classes and Objects

Objects

Classes

Handling the Unexpected

Derivation and Inheritance

Making Objects That Can Change

Changing Bindings

Review for Test 8

Test 8

## Procedures

Each student is assigned a principal IMACS instructor, and is given unlimited access to the curriculum for the registration period.

The principal instructor is available by phone or by email during regular business hours. Additionally, the principal instructor or other IMACS instructors are available via the online Help Desk, monitored seven days a week including evenings.

Students submit assignments and tests online. Scores for assignments and tests are accumulated into the student's online gradebook so that parents, students and instructors can monitor student progress.