[ Home | Syllabus | Code from lecture | Assignments | Exams ]



  1. General Information
  2. Course Description
  3. Lecture Topics
  4. Materials
  5. Grading
  6. Policies

1. General Information

2. Course Description

H211 Introduction to Computer Science, Honors (4 cr.)
Prerequisites: two years of high school algebra or Mathematics M014.
A first course in computer science for those intending to take advanced computer science courses. Introduction to programming and to algorithm design and analysis. Using the Scheme programming language, the course covers several programming paradigms.

The only prerequisite for this course is high school algebra. If you did not like algebra, relax. We will not use algebra much, if at all, in this course. This course will, however, draw upon the same analytical thinking and formal reasoning skills that are cultivated in the study of algebra.

For example, in algebra, we learned to solve problems by: (1) identifying and formally expressing the relations between known and unknown quantities, and (2) solving the resulting systems of equations or inequalities to find the unknowns. To solve equations, we manipulated symbols (numbers, variables, relations like ``='', and operators like ``+'') according to various rules (usually in the form of laws or theorems).

In this course, we begin our study of computation. We will realize computations on machines that manipulate symbols according to fixed rules. While much of our time will be spent learning to program, we will also spend time thinking about our solutions: are they correct? are they efficient?

We use the Scheme programming language in this course because Scheme is highly expressive, yet easy to learn. Because it is highly expressive, we can explore different programming paradigms all within the same langauge. Since Scheme is easy to learn, we can spend more time using the language to solve problems.


This is not a course based on rote memorization. While certain patterns and principles do reappear, we often apply them in novel situations in order to solve new problems. Developing skill in problem solving takes practice. Homework assignments will provide ample opportunity to refine these skills.


These are ambitious goals. In fact, many of these goals are the subject of entire courses in the Computer Science curriculum. Naturally, we cannot hope to do justice to this list in an introductory course. We will, however, attempt to develop skills and gain experience that will be useful as you continue to study Computer Science.

3. Lecture Topics

We will start pretty much following the outline of C211 but at a faster pace. This will give us time to explore more topics like object-oriented programming, types, etc.

4. Materials



Computer Accounts

If you do not yet have a Network ID, create one by visiting any UITS student computer cluster and asking for a ``Starter Kit.'' The instructions tell you how to run the Starter Kit, which generates a Network ID that is functional immediately. You will need to know your registration pin number.

If already have a Network ID, but you have forgotten your password, go to IMU M084 to have the password reset. You will need to show a picture ID.

If you have not already done so, create an account on the ``IUB-NT Domain''. Accounts are created at http://account.ucs.indiana.edu. For more information about computing and accounts available from UITS, visit http://www.indiana.edu/~stiu.

Scheme Implementations

Two implementations of the Scheme programming language are available on most of the computers on campus. Both may be freely downloaded by students wishing to work at home. Homework will be evaluated using Chez Scheme, but either should be fine.

5. Grading


Grades are provided as diagnostic tools. Do not view grades as ends in themselves. Instead, use homework and exam grades to gauge your understanding of the material and to identify areas that need more work. Test scores from past semesters suggest that the material becomes more challenging as the course progresses. Come see us in office hours at the first sign of trouble.

Remember that you are here for an education, not a grade. Concentrate on understanding the material and the grades should fall into place.

Electronic Gradebook

You can access your grades electronically via the BEST Post'em Service. An announcement will be posted as soon as the gradebook is ready for access.

Course Grades

Course grades will be determined as follows:
25%Exam 1
30%Exam 2
35%Final Exam
It may appear that the homework contributes only 10% to your final grade. Do not be misled. Completing the homework is the best way to prepare for the exams. In particular, material introduced in the homework is fair game for exams even if this material is not explicitly covered in lecture.

6. Policies

Read the Statement on Academic Integrity to be sure you understand the rules that govern all courses offered by the Computer Science Department.
[ Home | Syllabus | Code from lecture | Assignments | Exams ]