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. Major topics include interface types and abstract classes, polymorphism and inheritance, design patterns, frameworks, and multithreading. Students will learn how to build graphical user interfaces, and how to systematically test and debug their code. Along the way, they will be introduced to the basic concepts of software engineering. Click here for a list of course outcomes.

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 3 30 90
Team Project 1 100 100
Lab Exercises 7 10 70
Grand Total 610


The final grades will be based on the 610 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 attached TERM SCHEDULE.

You will meet in lab on Mondays (MWAH 177), 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, demonstrate programs, and work on individual and group projects. On Fridays you will meet in your discussion section (MWAH 175) which will also be led by your TA. In these sessions, you will go over lecture material, review for exams, discuss the programming projects and lab exercises, learn about the programming tools, and meet with your project teams. 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 projects and for understanding lecture material covered by the exams. Programming projects will be discussed in detail during discussion and lab, and your project teams will meet during them. There also are seven 10-point lab exercises. Completing 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.

Programming Assignments

As indicated, you will be given three individual programming assignments and one large team project to write and implement programs using object-oriented design in Java. Each assignment and project will be thoroughly described on the course web page.

Submission of Assignments and Projects

Program code for your labs and assignments will be submitted electronically, allowing the intructors to both run the code and check for code duplication. More details will be given in the project 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 expected to make use of the Sun workstations in the Computer Science Department Software Development Lab in Heller 314.

Project Reports

In this course you will discover that programming is only part of the total discipline of computer science. Your project reports will reflect this, describing the entire process by which you conceived, designed, wrote, and tested a solution to the original problem. Guidelines for producing your reports will be included with project descriptions on the course web page.

Collaboration

The first three assignments in this course are individual, and just like an essay or term paper, these programs are 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 design your program and write the code yourself. You may consult with others about your design or seek help in debugging, but you may not collaborate with anyone on the writing of your code.

The last assignment, however, is a team project, and of course the team will work together to produce working code. A team may not, however, collaborate with another team on a project.

There will be no collaboration on the 10-point lab exercises, even on the later ones when you will be working on the team project.

There will be no collaboration on exams.

Nonparticipation in Team Project

For the team project, each of the persons on the team receives the full value earned, unless it is determined that a team member has done no work on a project, in which case he or she shall receive no credit. For this to be determined, two of the team members must inform the teaching assistant of the nonparticipation of the team member in question. There will be no determination of partial participation; only a team member deemed to have contributed nothing at all to the project design, code, and report will be affected.

Reconfiguration of Teams with Nonparticipating Members

Email is the official communication medium of the U of M. If a team repeatedly attempts to contact one of its members through email, and the member consistently does not reply, teams may be reconfigured, at the discretion of the TAs, so that nonresponsive members are grouped together, and team members who are willing to work are grouped together. If your team is attempting to contact you, you are obligated to reply.

Late Projects

Project reports and working code 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. Therefore, 20% of the total value of an assignment will be deducted for each day it fails to be turned in by 8:00 p.m.

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

Page URL: http://www.d.umn.edu /~tcolburn/cs2511/syllabus.html
Page Author: Tim Colburn
Last Modified: Monday, 24-Aug-2009 08:24:32 CDT
Comments to: tcolburn@d.umn.edu