Syllabus for COMP SCI
256 Software Design I
(Tentative as of 8/26/08)
Fall 2008, University
of Wisconsin-Green Bay
Final Exam: 8:00~10:00 am, Tuesday, December 16, 2008
!!!
Course
Description
- (From the Catalog) Students will learn a language common
to software design and be introduced to software design techniques. This
includes the problem statement, solution design, program testing,
implementation, debugging, and final documentation. Credit will not be
given to those with credit in Comp Sci 266. P: Comp Sci 161 or 201 with at
least a C grade and Math 104 or Math Placement of Math 202 or greater.
- Expected prerequisite knowledge/skills
- Introductory programming experiences with any languages
using following constructs
- Various data types and variables
- Expressions (arithmetic, relational, and logical)
- Decision structure (If..Then)
- Repetition structure (Do While loop, For..Next loop)
- Procedures and functions
- Arrays
- What you will learn
- Deepen the prerequisite programming skills with Java
language
- Introductory software design methodology using object
orientation with classes
- Single class for service provision
- Multiple classes with different roles
- Arrays of objects
- Java GUI programming
Instructor
- Hosung Song, Office: MAC-C327, Phone: (920)465-2201,
E-mail: songh@uwgb.edu
- E-mail will be checked only normal business hours
(approximately 8~5). For urgent matters outside normal business hours,
please contact me through an Internet messenger as described in http://www.uwgb.edu/songh/remote_help/.
Classes
- Computer Science Lab @MAC 122, TuTh 8:50~10:50 am
- Note the unusual time due to change in scheduling policy.
Office
hours
Course
web site
- Login to your D2L account (go to http://www.uwgb.edu/learntech/d2l/)
and find COMP SCI 256 in ¡°My Green Bay Courses.¡± Check this course web
site frequently (preferably on a daily basis), as important announcements
and informational resources will be posted here.
Text
- (Required) Java Concepts, 5th Ed., by Cay
Horstmann from Wiley.
- Textbook web site: http://www.horstmann.com/bigjava.html.
- Student companion site
- Note the availability of (cheaper) electronic editions of
the book!!! They are with different features and prices, and it can be
very confusing to pick the right one for you.
- WileyPLUS will be used from time to time for in-class
activities. Stay tuned for further instructions.
- This book will also be used in my COMP SCI 257 Software
Design II again.
- Note that Prof. Baulieu (the other COMP SCI 257
instructor) uses a different textbook.
- (Recommended) Head First Java, 2nd Ed.,
by Kathy Sierra and Bert Bates, O¡¯Reilly, February 2005.
- The order for this book was NOT placed with our
bookstore, so if you want this book, you need to order a copy
individually. However, this book is very amusing and easy to read, not
dry or boring. If you find the academic textbook doesn¡¯t work for you,
this book may be better for you. And the price is so low! It¡¯s just around
$30.
- More information is available at http://www.oreilly.com/catalog/hfjava2/,
including two sample chapters.
- Also, I will try to put a copy of this book on reserve at
our library.
Software
- JDK (Java Development Kit, http://java.sun.com),
DrJava (http://www.drjava.org), and Eclipse
(http://www.eclipse.org) are
available to students in any university computer lab.
- For programming work at your home, it is recommended to
visit the above web sites, download JDK (from Sun.com) and ¡°Eclipse IDE
for Java Developers (from Eclipse.org),¡± and install it on individual PCs.
Also, students can bring their own CD and copy UWGB¡¯s Eclipse distribution
from X: drive.
- We will use another programming environment called DrJava
in the beginning. It¡¯s freely available at http://www.drjava.org/.
Classes
- Classes will consist of lectures and labs.
- To successfully pass this course, it is very important to
attend classes, listen to lectures, interact with the instructor, and participate
in in-class labs.
- There¡¯ll be no formal class attendance checks and
associated grade points. However, in-class labs will be graded and
in-class labs may be given at any class time. See the in-class lab
assignments for details.
Homework
Assignments
- There will be roughly bi-weekly programming assignments.
At least one week will be given for each assignment. The total number of
assignments will be between 6 and 8.
- Late submissions will result in 10% deduction per every 12
hours. See the course policy for details.
- Homework assignments should be conducted
individually. See the course policy for violations.
In-class
Lab Assignments
- As stated above, there¡¯ll be in-class lab assignments
frequently (but not necessarily periodically). These in-class lab
assignments will be graded and contribute part of 10% toward your final
total percentage score.
- In-class lab problems are not announced in advance.
However, they are directly related to the lecture materials, so paying
attention to the lectures will be more than enough for solving the
problems.
- In-class lab assignments should be performed as a
group of two students. If you cannot find a group member, the
instructor will assign one. Also, the instructor will occasionally require
swapping of group members, either by new group assignments or self
regrouping.
- Normally, in-class lab assignments should be completed and
submitted in-class. No late submissions of in-class lab assignments will
be accepted.
- To accommodate unexpected/unavoidable class absences, the
lowest 15% of the in-class lab grades will be dropped.
Exams
- There will be two in-class midterm exams. The exact dates
will be announced at least one week in advance.
- Graded final exams will not be returned.
- The final exam (comprehensive with emphasis
on newer topics) time is determined by the registrar. It is 8:00~10:00
am, Tuesday, December 16, 2008 for this course. PLEASE NOTE: This
date/time is known many months in advance and any plans such as work
schedules, vacations, trips, travel, etc. must be planned around this
date.
- In the final exam, there will be some coding
problems using a lab PC and DrJava or Eclipse.
Course
Grade Distribution
Note that each category¡¯s weight may be adjusted up to ¡¾5%.
- In-class labs and other in-class participation: 10%
- Assignments: 30%
- Midterm exams: 35% (17.5% each)
- Final exam: 25%
Final
Letter Grading
- Your grade will be assigned based on the total number of
points you accumulate out of the total number of points possible (i.e.
there is no curve), according to the following cases:
o
If greater than or equal to 92%, then A.
o
Else, if greater than or equal to 88%, then AB.
o
Else, if greater than or equal to 82%, then B.
o
Else, if greater than or equal to 78%, then BC.
o
Else, if greater than or equal to 72%, then C.
o
Else, if greater than or equal to 68%, then CD.
o
Else, if greater than or equal to 60%, then D.
o
Else, F.
- Note that the cut points are usually adjusted and that I
reserve the rights to such adjustments. Be assured that cut points will
never increase. If you have any questions/concerns about your final letter
grades, please do contact the instructor before it¡¯s too late. Good times
would be after each midterm exam but before the final exam.
Programming
Assignment Criteria
All programming assignments are graded using the following
criteria.
- Accuracy: The program must work correctly in all
cases and be consistent with all stated requirements.
- Documentation and Readability: Documentation
involves placing comments into the code that specify what a program and
its various components are designed to do. The requirements for
documentation will evolve as the semester progresses, but a fundamental
requirement is to use clear and concise statements to articulate what is
happening inside the program code. In addition, program statements
themselves must be written according to specified guidelines.
- Logic and structure: As we develop programming
ability, we will see that there are often many ways to do one thing and that
the choice you make has a significant impact on the program¡¯s efficiency
or the ability for another programmer to modify what you have done. The
requirements for logic and structure will evolve as the semester
progresses.
- Interface: All output must be clearly marked and
well organized. Never print data without some qualifying statement
indicating what the data means. The use should never be asked to input
something without clear and explicit instructions as to what should be
entered.
- Design: This is where writing a program differs
from designing software. You design software without the use of the
computer. Find a quiet place and lay out exactly what problem you need to
solve and how you are going to do it. Make an outline clearly indicating
all the necessary components that go into the program and how they work
and interact. When you have determined exactly how you are going to solve
the problem, then you write the program.
Specific weighting of the grading criteria will be
identified for each programming assignment.
Course
Policies
- Classroom policies. The course is taught in
a technology classroom (MAC 122), where every desk has a computer, which
blocks the view of the instructor and the student in both ways. It has
been noted that students get very easily distracted by the temptation of
computers and the Internet. This distraction naturally leads to other
kinds of disturbances such as conversation between students, laughing or
giggling in class. Eventually distracted students will not achieve desired
learning. To avoid all such distractions as much as possible and
concentrate on our learning, the following classroom policies will be
strictly enforced.
- When the instructor is lecturing, computers cannot be
used.
- When the instructor asks students to do in-class lab
assignments, students should try to complete the assignments actively,
and use computers only for those experiments, not for anything else.
- At any instance of either lecturing or lab activities,
students should not distract others or the instructor by any unexpected
behaviors including, but not limited to, chattering, laughing, asking
irrelevant questions, making uncivil remarks or behaviors. Students are
always encouraged to ask the instructor relevant questions at any time.
Computer usage will be strictly
monitored using the central monitoring/controlling software called
SynchronEyes. A student¡¯s first violation of this policy in any single class
will be warned. If there¡¯s another violation from the same student in the same
class, he/she will be asked to leave the classroom.
- Grade privacy policies. You are not
supposed to show your grades or grading results (homework submissions or
exams) to others. There¡¯s no curve, so grading is an individual matter
between the instructor and each student. Any consequence of such
sharing of your grades will be totally your responsibility.
- Incomplete grade policies. Incompletes are
given only in unusual and extreme cases. To receive an incomplete,
you must meet the following criteria.
¡¤
You must not be able to complete work due to unusual
circumstances. (Being ill for a couple of days is miserable, but unfortunately,
not unusual.)
¡¤
You must have completed most of the work with a passing grade.
¡¤
You must notify the instructor within 1 week after any
circumstances that prompt your request for an incomplete.
- Late homework policies. Penalties are
assessed for late assignments at a rate of 10% of the maximum point total
per every 12 hours. No assignments will be accepted after 72 hours from
the regular due time. There will be no exceptions for late due time
and late penalties, so please do not postpone doing your homework and
submitting the deliverables until the last minute.
- Extra-credit problems policies. There will
be occasional extra-credit problems in either assignments or exams. Scores
for extra-credit problems will not be included in the final total
percentage score for determining the final letter grade. However, a student
with a bordering final total percentage score will be given some
consideration if he/she has tried and received extra-credits. Therefore,
you should not try to solve extra-credit problems when you haven¡¯t
completely solved regular-credit problems. Scores for extra-credit
problems will not even show up in the D2L gradebook, but will be kept
separately for the stated purpose only.
- All persons are responsible for the coding of their own
program for homework assignments. (However, in-class lab assignments can
be done as a group of up to 2 students.) Copying is plagiarism and will be
dealt with. See dishonesty policy on the next heading.
- If you miss any exam, you will receive a 0 for that
exam. However, if you have a legitimate conflict with a
scheduled exam, arrangements can be made to take it during the last
week of classes. However, the final exam must be taken when scheduled.
This date is known more than three months in advance and any plans such as
work schedules must be planned around this date.
- When you have difficulty with a homework assignment, try
to figure it out yourself first. It is important to develop independence.
However, there will obviously be times where you don¡¯t know where to turn
(especially at the beginning). Then seek help during office hours (regular
or private). Do not seek help from your peers initially. Doing so
often leads to academic misconduct, which will be dealt with as stated in
the dishonesty policy. When you seek instructor¡¯s help, you are expected
to store your programs and data files in your M: drive or bring a hard
copy of program code and data files.
- If you miss a day of class, it is your responsibility to
obtain the notes for that day.
- This is not an internet/online/remote-learning course.
This course requires class attendance. For online/alternative courses,
please contact our Extended Degree program.
Policy
Statement for Academic Dishonesty in Computer Science
In all computer science classes, each student is expected to
assume full and sole responsibility for writing the code associated with any
assignment not designated as a group project/assignment. Any instance where a
program, submitted by one student, was fully or partially written by another
constitutes Academic Dishonesty and will be dealt with. Published
penalties range from 0s for BOTH people involved to failing and a letter sent
to the Dean of Students. Please note that such letters go into your file and
can have an adverse affect when seeking employment. The minimum penalty
taken for any such incident in our course is the combination of 0 points for
the specific assignment AND a lower grade (e.g. A to B, B to C, C to D, or D to
F) of the course, FOR BOTH PEOPLE INVOLVED. Note that giving
copies of program source code or designs is also an academic
misconduct/dishonesty. For more information on what constitute an
academic misconduct and how one is dealt with, please read Chapter 14 of
University Policies, which can be found at http://www.uwgb.edu/deanofstudents/policies/ch14.htm.
You are required to be aware of these policies and procedures.
Things you CAN do:
¡¤
Talk with others about an assignment. This includes various
design options and general approaches to a problem.
¡¤
Ask and answer questions about a design or syntax of specific
statements.
¡¤
Ask and answer questions regarding interacting with IDE
(Integrated Development Environment such as Visual Studio .NET or Eclipse) but independent
of specific coding that may be required.
Things you CANNOT do:
¡¤
Give or receive copies or partial copies of code or designs.
(Note: The manner in which it is obtained is irrelevant. Thus, for example,
this statement applies to programs left on a table or even discarded in a
trash.)
¡¤
Participate in discussions that involving writing code to
accomplish a particular task.
¡¤
Examine another person¡¯s code for the purpose of working on your
program.
¡¤
Having any individual (including consultants) write any part of
your program or tell you how to do so.
¡¤
Help other students by allowing them to see code that you have
written or designed. This means that if you discard any hard copies of code
make sure that no one else can have access to it. Shred it, burn it, or flush
it.
¡¤
Work together on creating the code for a program, unless the
program is explicitly designed as a group program.
Violation of these rules will result in action taken. Not
only will the person who benefited be held accountable but also the person who
provided the assistance will be penalized. In order to run a class smoothly, a
measure of trust must exist between instructor and student. Violations of these
rules destroy that trust and respect that a student deserves. These things are
hard to recover once they are lost.
COMP SCI 256 Software Design I: Tentative Schedule, Fall
2008
|
Week
|
Dates
|
Topics
|
Remarks
|
|
1
|
09/01~09/05
|
Introduction, Eclipse Java development environment
|
09/02: Semester begins.
|
|
2
|
09/08~09/12
|
Ch. 1: Introduction
Ch. 2: Using Objects
|
|
|
3
|
09/15~09/19
|
Ch. 2
|
09/15: Drop/add deadline
(no DR for drop)
|
|
4
|
09/22~09/26
|
Ch. 3: Implementing Classes
|
|
|
5
|
09/29~10/03
|
Ch. 3
|
|
|
6
|
10/06~10/10
|
Ch. 4: Fundamental Data Types
|
Midterm 1 around 10/7.
|
|
7
|
10/13~10/17
|
Ch. 4
|
10/17: Drop deadline
(with DR)
|
|
8
|
10/20~10/24
|
Ch. 5: Decision
|
|
|
9
|
10/27~10/31
|
Ch. 5
|
|
|
10
|
11/03~11/07
|
Ch. 6: Iteration
|
|
|
11
|
11/10~11/14
|
Ch. 6
|
Midterm 2 around 11/11.
|
|
12
|
11/17~11/21
|
Ch. 7: Arrays
|
11/19: Withdrawal deadline.
|
|
13
(0.5)
|
11/24~11/28
|
Ch. 7
|
11/27,28: Thanksgiving
|
|
14
|
12/01~12/05
|
Ch. 7
Ch. 8: Designing Classes (if time permits)
|
|
|
15
(0.5)
|
12/08~12/10
|
Ch. 8 (if time permits)
Catch-up
|
12/10: Last day of classes
|
|
Final Exam
|
12/16 (Tu) 8:00~10:00
|
|
|
Note: All book
chapters in the above table are reading assignments for the corresponding weeks. There may be pop quizzes about the reading
assignments. Pop quiz scores will be reflected in the ¡°In-class labs¡± grade.