Syllabus: CS 2511 Software Analysis and Design


Course Web Page

Term Schedule

Course Text: Object-Oriented Design and Patterns

Course Content and Objectives

This course follows and requires the freshman introductory sequence CS 1511-1521. It is intended to provide the background necessary to undertake serious programming projects that the student will later encounter in advanced courses, actual jobs, or research. The course takes up where the freshman year leaves off in the discipline of object-oriented design and coding, and introduces Java as the object-oriented programming language.

Students will acquire skills in the analysis, design, and implementation of medium-scale software development projects. Analysis topics include:

Design topics include: Implementation topics include: Students will also be introduced to the scripting language Javascript.

Grading Basis

Grades will be based on the total points earned on exams, programming assignments, and lab activities. These points are broken down as follows:

item number points each total
Midterm Exam 2 100 200
Final Exam 1 150 150
Individual Programming Assignment 6 30 180
Lab Exercises 14 10 140
Grand Total 670


The final grades will be based on the 670 point total. Generally:

90% guarantees an A
80% guarantees a B
70% guarantees a C
60% guarantees a D

These grade cutoffs will never be raised; but they may be lowered.

Course Organization

We will meet in large lecture on Tuesdays and Thursdays, when new material will be presented. Accompanying readings from the text and web sources will be indicated on the course web page. The midterm exams and final exam will also be given in large lecture. Dates are given on the TERM SCHEDULE.

You will meet in lab on Mondays, at a time depending on which section you are in, where you will be led by a graduate teaching assistant. Here you will perform lab exercises and work on individual assignments. On Fridays you will meet in your discussion section which will also be led by your TA. In these sessions, you will go over lecture material, review for exams, discuss the individual assignments and lab exercises, and learn about the programming tools. Midterm exams will also be returned and gone over during these meetings.

Course Policies

Lectures

You are responsible for all material presented in lecture. Lecture notes are available from the textbook web page (see above).

Discussions and Labs

Discussion and lab attendance is essential for succeeding in this course. Your TA will be a Computer Science Department graduate student. He or she is your primary source of help for completing programming assignments and for understanding lecture material covered by the exams. There also are fourteen 10-point lab exercises. Working on these during your lab hour allows you to take advantage of help from your TA.

Exams

Exams will cover all lecture and reading material. Coverage and topics will be given on the course web page well before the time of the exam. Exams must be taken on the hour they are scheduled. They will not be given early, and can be made up only if documented evidence of medical emergency or death in the family is presented before the time of the exam.

Note: See the Term Schedule for the final exam date. It will not be given early. If you are an international student, do not make travel plans before this date.

Individual Assignments

As indicated, you will be given six individual assignments involving analysis, design, and implementation of Java programs. Each assignment will be thoroughly described on the course web page.

Submission of Assignments and Lab Exercises

All lab exercises and assignments must be submitted electronically, allowing the intructors to both run the code and check for code duplication. For full credit all assignments and lab exercises must be submitted by 8:00 p.m. on the day they are due. Assignment due dates are shown on the Term Schedule. More details will be given in the lab and assignment web pages.

Development Environment

The development environment assumed by labs and assignments will be NetBeans. Although the lab sessions will be held in a PC lab, outside of class you are encouraged to make use of the workstations in the Computer Science Department Software Development Lab in Heller 314.

Collaboration

All lab exercises and assignments in this course are individual, and just like an essay or term paper, any work for them is expected to be your own. You may discuss an assignment and general approaches to a problem with your professor, your lab instructor, lab consultants, or your classmates, but you must analyze, design, and write your programs yourself. You may consult with others to seek help in debugging, but you may not collaborate with anyone on the writing of your code.

There will be no collaboration on the 10-point lab exercises.

There will be no collaboration on exams.

Late Submissions

Lab exercises and assignments must be turned in by 8:00 p.m. the days they are due. Ample time is given to complete these projects, and the only reason for being late will be poor time management. Late submissions are subject to the following penalties: Late submissions will be accepted through Friday of the last day of the regular semester; they will not be accepted during finals week.

Permission to Copy Your Work

As you may know, the Department of Computer Science has an ABET-accredited bachelor's degree in CS. This is an indication of the strength of our program, and it benefits CS majors and even non-majors by allowing us to provide strong course offerings.

In order to retain accreditation, we must periodically collect samples of student work for each of the courses. To that end, I would like your permission to anonymously copy samples of your work in this course. This will be done by eliminating all identification such as names, ID's, etc. before copying the work. This is voluntary. In the past almost all students have agreed to this, which has been a key factor in retaining accreditation.

If you do not want your work copied for this purpose, please send me an email to that effect.

Thank you for helping with this; it is very much appreciated.

Etc.

Last Word

All excellent things are as difficult as they are rare. -- Benedict Spinoza