Indiana University - Bloomington
Computer Science Department


CSCI H212

Introduction to Software Systems, Honors

Spring 1998

Relation to other courses
Materials 
Schedule
Grading
Administrivia
Course evaluation
All material is subject to change.
Changes will be reflected in the web as soon as possible.

Writing Java is like realizing your imagination.
--Donghui Yuan, Quest for Java contest 2nd place winner

General information

The Class
Projects
Facade
FreeSpace
Instructor
Christopher Haynes (Chris), phone 855-3376, office LH230F, email chaynes@indiana.edu
Associate Instructors

        Leena Unnikrishnan (Leena), email lunnikri@indiana.edu
 
Credit Hours
4
Lecture
Section 8240 11:15A-12:30P in LH115
Laboratory
Section 8241 10:10A-11:00A in LH115
Office Hours
Class Web Site
www.cs.indiana.edu/classes/h212 This page is the root of this web. Check here often for updates.
Class Newsgroup
ac.csci.h212.8240 Check here frequently for class announcements and useful information. Email this address to post messages to this newsgroup.
Class FTP directory
ftp.cs.indiana.edu:pub/chaynes/h212

Catalog Description
P: H211 or C211 with a grade of A- or better. Honors version of C212. Credit not given for both H212 and C212. H212 corresponds to old S212. (See C212.)
C212 Introduction to Software Systems (4 cr.) NMMC P: C211. Design of computer software systems and introduction to programming in the environment of a contemporary operating system. Topics include the C++ [sic] systems programming language and its data structure facilities; building and maintaining large projects; and understanding the operating system interface, including shell tools and system calls. Introduction to object-oriented programming. Credit not given for both C212 and H212, or A592; credit not given for both C212 and A306, A502 (discontinued), or A512. Lecture and laboratory.
 
Further Course Description
 
The Java programming language will be used throughout, not C++ as stated in the catalog. There will also be a heavy emphasis on object-oriented programming and design principles. A graphic programming environment, suitable for programming games and other moving-object simulations, will be developed in detail as an extended case study. Clarity of program design and presentation will be emphasized throughout.

Topics include operators, control structures, actors, encapsulation, scope, inheritance, subtyping, method invocation, object creation, design patterns, exception handling, graphic user interfaces, multithreading and synchronization, common data structures and associated algorithms, remote procedure calls, distributed computation, and client-server protocols.


Relation to other courses

This course is the honors version of C212, the second course for prospective computer science majors. You do not need to be an "honors" student in any other way to take this course, though you should expect to be challenged somewhat more than you would be in C212. The "with a grade of A- or better" clause of the catalog description is not enforced strictly, though there remains the expectation that honors courses are for students of above average achievement.  If you have not had C211 or H211, see the instructor: this prerequisite is fairly firm. Please do not hesitate to see the instructor if you are in doubt about whether you belong in this course for any reason.


Materials


Schedule

A detailed schedule of lecture topics, reading assignments, and programming projects will appear here as the course proceeds. For collaborative learning to succeed in class, it is vital that assigned reading and exercises be done, or at least diligently attempted, before class on the indicated date.
 


Grading

Grades will be based on programming projects, due every one to three weeks (about 50%) and midterm and final examinations.  Examinations will be open notes, reference materials, and computer system (but no outside help). If conditions warrant, the percentage based on examination may be decreased substantially. More details will appear here as they are determined.

Assignments may be done with the help or collaboration of others, providing the nature of all collaboration and help (other than from the instructor or associate instructor) is credited by names at the top of the project listing. Code by others may not be directly incorporated into a project unless from a co-collaborator.  The general nature work sharing in a collaboration should be stated.

There are three opportunitites each week to turn in assignments: at the beginning of each class and discussion section (leave them on Leena's table on the way in). The late penalty is 5 points for each missed opportunity on or after the due date. Assignments will not be accepted more than a week after the due date.


Administrivia


Course Evaluation

Before the end of the course, please complete the electronic course evaluation forms for Chris Haynes and your laboratory section AI.  Stay tuned to this point on the web for further information.


Chris Haynes / chaynes@indiana.edu