Course Title : Introduction to Algorithms and Data Structures

Code 91150
Course Year
Term 2nd term
Class day & Period
Credits 2
Restriction No Restriction
Lecture Form(s)
Instructor Hiroshi G. Okuno, Seiji Umatani, Katsutoshi Itoyama

Course Description

Learn the basic skills of structures and interpretation of computer programs.


Examination 70%
Assingments 30%

Course Goals

To learn the skills of Scheme programming and its philosophy with respect to programming languages.

Course Topics

Theme Class number of times Description
Introduction 2 Goals of the class
History of Computers
How to use JAKLD, a Java-based Scheme
Building Abstractions with Procedures 4 1.1 The Elements of Programming
1.2 Procedures and the Processes They Generate
1.3 Formulating Abstractions with Higher-Order Procedures
Building Abstractions with Data 5 2.1 Introduction to Data Abstraction
2.2 Hierarchical Data and the Closure Property
2.3 Symbolic Data
2.4 Multiple Representations for Abstract Data
2.5 Systems with Generic Operations
Sorting and Searching 3 Sorting -- Internal sorting and external sorting
Insertion sort, Bubble sort, Quick sort, Heap sort, Merge sort
Binary search, Hashing
Examination 1 End-term examination
FInal assignment with Picture Language


"Structure and Interpretation of Computer Programs" (MIT Press)
Online Fulltext (provided by MIT Press)


"Programming Pearls" (ACM Press)
Japanese Translation(Piason Education)


Elementary Computer Techniques
Introduction to Computer Science(91130)

Web Sites

Lecture HP
Prof. Okuno's Lectures
For further study, I recommend the book written by Gerald Jay Sussman et al. "Structure and Interpretation of Classical Mechanics"

Additional Information

Scheme implemented in Java, JAKLD is used for practice. JAKLD is available at the Media Center. It also runs on Android.
An assignment will be given at the end of class every week. The deadline of submission is noon next Tuesday. The report should be composed by LaTeX and submitted as a PDF file.
The contents is subject to change.
Another assignment is to compose a painter by using Picture Language. The pictures created by students of the past classes are available at the Gallery.
Lecture Page .