The George Washington University
School of Engineering and Applied Science
Department of Electrical Engineering and Computer Science

CSci 51 -- Introduction to Computing -- Fall 1996

Lecture Times: Tuesday/Thursday, 9:30-10:45 AM
Lab/Recitation Times: 50 minutes, various times

Prof. Michael B. Feldman
Academic Center, Rm T-642
Phone: 202-994-5919
Electronic Mail:
World Wide Web:
Office hours: Tue 2-5 PM; Thu 4-6 PM

Required Textbook:

Feldman and Koffman, Ada 95: Problem Solving and Program Design (2nd edition). Addison Wesley, 1996.
ISBN 0-201-87009-6 (textbook alone);
ISBN 0-201-30485-6 (textbook bundled with Aonix ObjectAda Special Edition CD-ROM).

Read each chapter during the week it is assigned. The book discusses much more than I can cover in class, and I will cover things not in the book. You will get much more out of the class if you are well-prepared.

Course Outline:


Week 1 Chapter 1 Introduction


Week 2 Chapter 2 Introduction to Programming with Ada 95


Week 3 Chapter 3 Introduction to Design; Enumeration Types; the Spider


Week 4 Chapter 3 Using Packages


Week 5 Chapter 4 Decision Statements


Week 6 Chapter 4 Writing Functions and Packages


Week 7 --------- Review for Midterm Exam


------ --------- MIDTERM EXAM - covers Chapters 1-4


Week 8 Chapter 5 Counting Loops; Introduction to External Files


Week 9 Chapter 6 General Loops; Exception Handling


Week 10 Chapter 6 Writing Procedures; Parameter Modes; Robust Input


Week 11 Chapter 7 Case Statements; Math Library; Random Numbers


Week 12 Chapter 8 Composite Types: Records


Week 13 Chapter 8 Composite Types: Arrays


Week 14 Chapter 9 A Systematic View of Strings and Files


Week 15 Chapter 9 Strings and Files, continued


------- --------- Review for Final Exam


------- --------- FINAL EXAM - covers Chapters 1-9


Attendance is required in both lecture and lab, and important work will be done in both. If you have an unavoidable need to be absent, you do not need special permission, but you are responsible for the work covered even if you are not in class.

Office hours:

You do not need an appointment to come to office hours; just show up and take your turn. Office hours, both the lecturer's and the lab instructor's, are an important way for you to get help or to discuss anything you have on your mind. We are there to help you; that is an important part of our job. Please make good use of these hours; you are cheating yourself if you do not.

Electronic mail (e-mail):

Part of your first-week assignment is to learn to write and send e-mail. Both the lecturer and the lab instructor read e-mail at least once a day; you are sure to get a quick response if you make good use of this system. If you have never used e-mail before, you are in for a treat--it is fun!

Programming Projects:

I will assign a project every week, which will be due the following week. Each project will build on the work done in previous projects, so it is in your interest to keep up with the project work. There will be about 10 projects.

Each project will be graded on a 0-20 point basis. An incomplete submission is better than none; you will get credit where credit is due. I will accept late projects, subject to a "late fee" of 4 points per week of lateness. Each project is due at the start of the class on the due date; projects submitted after the lecture has begun will be counted as one week late.


There will be a one-hour midterm and a two-hour final exam, both strictly timed. These will be open-book, open-notes exams. If you are coming to class regularly, and keeping up with the reading and the projects, the exams should not be difficult for you. Exams will require a mixture of reading and interpreting short program segments, writing short program segments, and short "essay" questions.


There may be one or more unnanounced quizzes during the lecture period. The best way to avoid unannounced quizzes is to come to class regularly, participate actively, and keep up with the reading.


Your semester grade will be calculated as follows:

I will eliminate the lowest project grade for each student. That is, only your best 9 projects will count in the final grade.However, I will not give a semester grade that is more than one grade higher than the project average. That is, if your project average is a "C", you will not be able to get a semester grade higher than "B". Quizzes, if any, will be counted in according to how many there are.

I keep grade records strictly "by the numbers"; any conversion to letter grades, and any "curving" of the final grade results, is done only at the very end, when I have all the semester data.