Catalog Description - CS 1323 Honors
Introduction to basic programming techniques: expressions, functions,
conditionals, iteration, data abstraction.
Practice in the use of high-level
programming languages. Emphasizes principles of software engineering and
illustrates with examples from central areas of computer science.
Goals for CS 1323 Honors - Fall 1996
The honors section of CS 1323 will show how principles of
mathematical reasoning apply to the
construction of software through a programming method based on
formulas and equations rather than the step-by-step recipes of
conventional methods. The
programming language for this portion of the course,
Haskell, features a system of
types that ensures proper usage of all program entities
and a form of component specification that permits controlling
access to those entities.
The type-system
helps programmers avoid frustrating errors that can consume their time
without leading to better products or enhanced skills, and access
control facilitates assembling software from abstract components.
Experience with these ideas will provide a foundation for more advanced
study, and understanding their
formulation in Haskell
will be a unique experience for most students.
The last third of the course will introduce
conventional programming methods, using the programming language C.
The work will focus on
the seminal ideas, principles, and practices
of computer science and is aimed at
serious students of the subject who expect, eventually,
to contribute to the profession.
Accordingly studies and projects will
emphasize assembling programs from components that supply
operators and data expressed in terms of abstract entities
that are made concrete at their points of usage, a fundamental
concept in software construction.
Other central ideas of computer science introduced in the course include
a few of the elementary notions in the fields of text processing,
information representation, computer graphics, sorting,
and artificial intelligence.
Features of Haskell covered include definitions, sequences, functions,
types, classes, intrinsic operators, libraries, higher-order functions,
polymorphism, structures, recursive data types, recursive functions,
file input/output, and interactive input/output.
Features of C covered include variables, ifs, loops, interactive
input/output, file input/output, functions, and arrays,
but not structures.
Students successfully completing the course will
be able to understand Haskell software of substantial complexity
and build programs equivalent to several hundred
lines of code in a conventional programming language, such as C.
Students will also be able to build and understand C programs
as long as a few hundred lines.
Plan of Study
Coursework will require study from two texts, the construction of
about ten equational programs and
five conventional programs.
There will be two
midterm examinations and a final examination.
Teams of five to six students will be organized at the beginning
of the course, and about a third of the coursework will be completed
in the form of team projects and examinations.
Because the work
involves practice with computing systems, students should anticipate
investing substantially more time than they would customarily expect
to spend on a three-credit course.
The amount of work outside of class necessary for
success will, for most students, average more than
10 hours per week and will, for
many students, exceed 20 hours per week.
CS 1323 Honors - Fundamentals of Computer Programming - Fall 1996
Contact Point: Rex Page
Up to: CS 1323 Honors ~~~
Up to: University of Oklahoma ~~~
Go to:
Next Semester
Last Modified: Tuesday, 29-Oct-1996 11:38:46 CST