Next: Course-Number Changes
Up: St. Olaf Computer Science
Previous: Requirements for the
Note:
Course numbers
here refer to the 1994/95
St. Olaf College Catalog.

172
- Principles of Computer Science, I
Basic concepts of computer science, introduced using an interactive
functional style of programming (Scheme language).
Problem solving and algorithm
development, data abstraction, programming style and documentation,
elementary algorithm analysis, searching and sorting, loop
invariants.
Emphasis on the use of recursion and abstraction.
Physics
232
- Introduction to Digital Electronics and
Microcomputers
Digital logic, digital electronics, and their applications in
microcomputers. Includes assembly-language programming and the basics
of computer interfacing. Weekly laboratory exercises are an integral
part of the course. Recommended for students in the natural sciences
who expect to use computer instrumentation in their careers.
Prerequisite: high-school physics and elementary programming
experience.
Physics
251
- Computer Interfacing
A cross-disciplinary aspect of computing, emphasizing communication
between the computer and the outside world. Both software
(programming) and hardware (electronic) principles are developed,
though the emphasis is on the latter. Exercises give general
experience with data collection and processing, computer control of
apparatus, graphics, and electronic generation of sound. Students use
a microcomputer to design, construct, and implement a project from an
area of their special interest. Prerequisite: Physics 232, or
permission of the instructor. Offered only in the January Interim.

272
- Principles of Computer Science, II
Introduction to software design and development, and application of
principles from Computer Science 172 in an imperative object-oriented
programming language, e.g., C++. Software design concepts, including
the software lifecycle and modularization;
elementary analysis of algorithms; introduction and analysis of
common data structures; survey of contemporary software systems; computing ethics.
Prerequisite: Computer Science 172.

274
- Computer Organization
An introduction ot the low-level operation of computers for students
having high-level programming experience. Introduction to digital logic,
machine organization, operating system interface, low-level structure
of software systems, computer networks, comparison of computer
architectures. Laboratory experiences with hardware and assembly
language programming. Prerequisite: Computer Science 172 or
permission of the instructor.

294
- Internship
Intermediate-level version of Computer Science 394.

298
- Independent Study

372
- Data Structures
Arrays, stacks, queues, linked lists, trees, graphs, etc.; algorithms
used to form and manipulate data structures. Computer implementation
of various structures, storage allocation, sorting, searching;
applications. Prerequisite: Computer Science 272 or permission of
the instructor.

376
- Programming Languages
Design and implementation principles of high-level programming languages.
Comparison of languages and language paradigms, syntactic structures
(grammars), semantic structures, run-time representations,
interpreters for implementing languages. Prerequisites: Computer
Science 272 and 274, or permission of the instructor.

378
- Seminar in Computer Science
Recent topics have been computer graphics, principles of operating
systems, artificial intelligence, logic programming, compiler design.
Prerequisites: Computer Science 272 and additional prerequisites
depending on the topic, or permission of instructor.

394
- Internship
Projects have included implementation of solid modeling (NURBS),
documentation, automated theorem proving, team programming, and
multiprocessor tools.

398
- Independent Research
Recent projects have been in the areas of graphics interface
programming, real-time computing, logic programming and intelligent
tutoring systems, relational data bases, computer networks, and
operating systems.
Next: Course-Number Changes
Up: St. Olaf Computer Science
Previous: Requirements for the
Disclaimer