Syllabus: CS 2511 Software Analysis and Design
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.
- As instructor I shall make every attempt to treat all students
equally, without regard to race, religion, color, sex, handicap, age,
veteran status, or sexual orientation. To inquire
further about the University's policy on equal opportunity, see the
Office of Equal Opportunity.
-
If you have any disability (either permanent or temporary) that might
affect your ability to perform in this class, please contact the Access Center, and
inform me at the
start of the semester.
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