CSSE 221 - Fundamentals of Software Development Honors
General Information and Policies

  1. Rose-Hulman Institute of Technology
  2. Computer Science & Software Engineering

Also known as the "Syllabus"

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

Instructors, meeting times and places

Lisa Kaczmarczyk

Section 1 meets 7th and 8th periods on Monday, Wednesday, and Thursday in Olin 167

Section 2 meets 3rd and 4th periods on Monday, Tuesday, and Thursday in Olin 157

Assistant Professor of Computer Science and Software Engineering
Email: kaczmarc@rose-hulman.edu
Office phone: (812) 877-8620
Office address: Moench F-222
Home page: http://www.rose-hulman.edu/~kaczmarc
Office hours: feel free to stop by whenever I'm in the office

Matt Boutell

Section 3 meets 1st and 2nd periods on Monday, Tuesday, and Thursday in Olin 157

Assistant Professor of Computer Science and Software Engineering
Email: boutell@rose-hulman.edu
Office phone: (812) 877-8534
Office address: Moench F-203
Home page: http://www.rose-hulman.edu/~boutell
Office hours: feel free to stop by whenever I'm in the office

Texts and software

Required text
Absolute Java, Second Edition, by Walter Savitch.
Required software
  1. Eclipse, a tool for software development.
  2. Tortoise SVN: A Windows client for version control
  3. Subclipse: an Eclipse plug-in for version-controlled code.

You will receive instructions for installing these free tools via email.

Recommended resource
The online Java Tutorials on the Sun web site.

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, which could include the development of graphical user interfaces, interaction among objects, networking, database applications, recursion, abstract data types and encapsulation. Students complete some projects individually, some in pairs, and two in challenging multi-week team projects. The use of a disciplined design process is emphasized in each of the projects, including design, good programming style, and thorough testing.

Course outcomes

Students are expected to be proficient at the following topics and skills: Students who successfully complete this course should also be able to communicate effectively about software development to a technical audience, in the following ways:

As a student in this course, you are expected to...

Attend class and participate actively in the learning experiences

Each week will normally include:

Assist classmates with their learning

Do things that will enhance your (and everyone's) learning, for example:

Try to avoid things that will detract from your learning or that of people around you, for example:

Take responsibility for your own learning

Jones, Valdez, Nowakowski, and Rasmussen (1995) describe indicators of engaged learning:
"In engaged learning settings, students are responsible for their own learning; they take charge and are self-regulated. They define learning goals and problems that are meaningful to them; have a big picture of how specific activities relate to those goals; develop standards of excellence; and evaluate how well they have achieved their goals. They have alternative routes or strategies for attaining goals--and some strategies for correcting errors and redirecting themselves when their plans do not work. They know their own strengths and weaknesses and know how to deal with them productively and constructively. Engaged learners are also able to shape and manage change."

Grading:

Some class info will only be distributed via email. You are responsible for checking for class email daily on Angel. (Hint: it is easy to have Angel forward your email to another account.)

Your grade will be based on your demonstration of the learning objectives, as measured by:

  1. Weekly programming projects (10%)
  2. Weekly written assignments (10%)
  3. Student presentations, or "capsules" (25%)
  4. Exams (25%)
  5. The mini-project (10%)
  6. The capstone project (15%)
  7. Class participation (5%)

The in-class time in this course constitutes an important learning experience. After two absences, you should discuss continuation of the course with your instructor. Subsequent unexcused absences may result in automatic failure of the course, at the instructor's discretion.

All assignments and exams must be turned in on time if you want credit for them. Of course, if serious circumstances keep you from finishing a program on time, please see your instructor in advance.

Who to ask for help

    Your best sources of help, by far, are the instructors and the CSSE 221 assistants.

    Don't hesitate to contact them, in person or via email.

    There are no dumb questions. It is better to ask, than to assume - assumptions can get you in trouble!

Collaboration and academic integrity

For this class, collaboration is encouraged, and sometimes required, on assignments. When you collaborate, you must: Failure to properly acknowledge collaboration can be considered cheating.

Recall the Institute policy on academic misconduct:

"Rose-Hulman expects its students to be responsible adults and to behave at all times with honor and integrity."
The departmental statement on academic honesty has more detailed advice.

Dishonesty on homeworks, software development projects, quizzes or exams may result in a lowered course grade or a grade of an F in the course. More important, such dishonesty steals your own self-esteem. So don't cheat.

If you have any questions, please ask.