Syllabus

CSSE-221: Fundamentals of Computing, Honors
Rose-Hulman Institute of Technology
Department of Computer Science and Software Engineering
Fall term, 2004-2005

Catalog Course Description

This course is intended for students who have sufficient programming experience to warrant placement in an accelerated course covering the topics from CSSE 120 and CSSE 220. This course will satisfy the prerequisite requirements for courses that have CSSE 220 as a prerequisite. Students who receive a penalty grade in CSSE 221 may grade replace it with CSSE 220.
Students with a score of 4 or 5 on the Computer Science A or AB Advanced Placement exam may enroll in CSSE 221. Upon successful completion of CSSE 221 students will also be awarded 4 credits for CSSE 120. Furthermore, students with a score of 4 or 5 on the Computer Science AB Advanced Placement exam who complete CSSE 221 with a grade of C or better will be awarded a further 4 credits for CSSE 230.

Prerequisites

A score of 4 or 5 on either CS AP exam or permission of instructor. Permission of instructor is typically given when a student has at least two years of high-school programming experience or equivalent and working knowledge of objects and object oriented programming.
More importantly, you need to bring a willingness to learn on your own and from others. Furthermore, we expect you to further the learning of others.
Finally, I hope you bring enthusiasm, curiosity, perseverance, and a "can do" attitude towards the course.
If you have a solid background in another object-oriented language (e.g., C++), you should be able to easily and quickly gain the necessary background in Java.

Instructors

Course Objectives

This course develops problem solving skills and introduces both fundamental concepts of computer science and current practices of object-oriented software development. Students complete a series of projects requiring the choice of appropriate algorithms and the use of procedural abstraction, control constructs, and elementary data structures. The projects explore current practices of object-oriented software development, such as multi-threaded event-driven programming, the development of graphical user interfaces, interaction among objects, networking, database applications, recursion as an example of functional programming, abstract data types and encapsulation to enable software reuse and assist in software maintenance. Students complete some projects individually, some in small groups, and one in a challenging multi-week team project. The use of a disciplined design process is emphasized in each of the projects, including design, good programming style, thorough testing, and space/time efficiency analysis.

Course Outcomes

Students are expected to be proficient at the following topics and skills.

Textbooks

Both books are also being used in CSSE 230.

More to come