SPRING QUARTER 2017
Instructor: Dr. John Dalbey | Office: 14-228 |
Voicemail / SMS: (805) 776-3543 | Email: |
CSc Dept: 756-2824 | Office Hours: MWF 1400 |
REQUIRED TEXTBOOKS
Horstmann, Cay. Object-Oriented Design &
Patterns. (2nd edition.)
Any Java reference book such as "Big
Java". Your CSc 102 text is probably adequate.
Bloch, Joshua. Effective Java.
(2nd edition.)
REFERENCES (online)
Eckel, Bruce Thinking in Java (3rd edition) (online book).
Cooper, James. The Design Patterns Java
Companion (online book).
COURSE DESCRIPTION
COURSE OVERVIEW
The course is a design and implementation course with a workload
equivalent to other programming courses. I hope the project work
will be challenging but not overwhelming. (Around 300 LOC/week).
The project work will be reasonably well-structured, not
open-ended.
REQUIRED COURSEWORK
READINGS
We will read most of the Horstmann text as well as a few short
articles. The class calendar will be updated regularly with due
dates for readings and homework assignments. The readings and
homework are DUE on the day shown on the schedule.
HOMEWORK AND QUIZZES
There will be regular homework assignments about the readings.
There are two kinds of homework questions.
A) Odd numbered chapter exercises or problems posted with
solutions. The solutions are online, so you don't need to
submit your solution. However you may be called on to
present a solution in class, or the questions may appear on a
quiz.
B) Even numbered chapter exercises, or other instructor created
problems. Your work must be typewritten unless otherwise
noted (refer to these guidelines).
Some of the homeworks will receive a numeric score and the rest
will be graded credit/no credit. The average numeric score will be
assigned to the ones that received credit.
There will be a small number of quizzes about the reading
assignments, lecture topics, and java programming skills. Some
will be announced in advance, and some will be unannounced
("surprise"). A quiz counts the same as a homework.
WRITTEN EXAMINATIONS
There will be written midterm and final examination. In general
the exams will assess your understanding of the principles and
concepts from the lecture as well as your ability to comprehend,
critique, modify, or write software designs. If your
cumulative score in the course before the final exam is so low
that earning 100% on the final would not enable you to pass, you
are not eligible to take the final.
LAB EXAMS
There will be practical midterm and final exams that will be
conducted in the lab. There will be hands-on problems to solve
on the workstations during the exam period. The lab exam score
counts for ten percent of the total exam score.
PROGRAMMING PROJECTS
The major work of the class will be to complete several individual
design and programming projects (~2 KLOC). The instructor
will provide all the requirements. Some of these assignments will
be "Must-complete"; regardless of the score earned by the due
date, you must complete the assignment before the last day of
class or you will receive a failing grade in the course.
GRADING
Course Grade Computation
Percent | Course Component |
10 |
Homework and Quizzes |
10 |
Lab Activities |
10 |
Midterm exam |
30 |
Final exam |
40 |
Programming Projects |
100 | TOTAL |
Letter grades are assigned on a straight percentage
basis:
A 85% -
100%, B 75%-84%,
C
65%-74%, D
55%-64%, F 54% and
below.
(The instructor may scale these ranges as appropriate). Borderline
scores may receive a Plus/Minus grade.
ALTERNATE GRADING SCHEMES
If you feel the above grading scheme will not provide the best
assessment of your learning in the course, you may negotiate with
the instructor for an alternate scheme. You must agree to an
alternate scheme before the end of the second week of classes.
Similarly students who desire special accommodations for their
learning needs must make arrangements before the end of the second
week of classes.
Instructor Notes:
ADMINISTRATIVE POLICIES
ATTENDANCE
Missed lectures and labs can not be "made up." If you miss lecture, you get a zero for any quiz administered during that time. If you miss a lab, you get a zero for the lab. If you arrive more than five minutes late to lab, you get a zero for the lab.You may obtain permission to be excused from class for valid
academic or medical reasons, but it is your responsibility to
secure permission from the instructor BEFORE the day you will be
absent. The instructor may request appropriate documentation of
your excuse. (Note that job interviews are unexcused absences).
The midterm and final examinations may only be taken during the scheduled exam period.
WRITING REQUIREMENTS and GRADING SYMBOLS
Follow these guidelines
for written work.
DEADLINES
Due dates for all
coursework are shown on the course calendar. Written work is due
at the exact class start time on the table at the front of the
classroom. Most labs and projects will be submitted electronically
through Web-CAT or PolyLearn. Your work will be time stamped
automatically when you submit it. Work which is received late,
even by one second, receives no credit. Do NOT submit your
assignments via e-mail.
If you anticipate some unexpected circumstances will prevent you
from submitting your assignment before the deadline, you may
request an extension. Send an email message to the instructor
before the due time asking for an extension of the due
date. (Use a subject line of "Extension request".) You don't
need to provide a reason or justification. Limit: 2
extensions (1 project). The default extension is until the
next class meeting.
The absolute deadline for submitting any course assignments, extra credit, etc. is 5pm of Friday of the last week of classes.
FOLLOWING DIRECTIONS
The skill of following verbal and written directions is essential
for programmers. Computers are very precise, literal
machines, and any deviation from the required operating directions
usually results in failure. Also, programmers need to follow
directions provided by customers and other stakeholders regarding
the required project specifications. The instructor regards
the directions for assignments as a kind of "specification" and
expects students to follow them with the same precision and rigor
as they would when communicating with a computer. Failure to
follow any directions provided in the course (including this
syllabus) may result in penalties imposed at the discretion of the
instructor, up to and include no credit for the
assignment.
ACADEMIC INTEGRITY
This course involves both individual work and collaborative work. It is your responsibility to understand the guidelines that apply to each kind of work, and to be clear about which assignments are individual assignments and which are collaborative.
Individual Assignments
The programming projects in this course are
considered to be individual work. Individual work is to be carried
out entirely and solely by an individual. You may not "work
together" on individual assignments. The content of the assignment
is not to be discussed or shared in any way with other students.
There is to be no conversation about individual assignments except
with the instructor. This policy will be rigorously enforced.
Programs will be checked for plagiarism using both computer and
human similarity checkers. Take extreme precautions that your
individual work is not viewed by other students. This includes
deleting all your computer files from public workstations when you
are finished, retaining private permissions on your Unix files,
destroying printouts of source code, and not letting other
students use your personal computer where you store your
coursework. You will be asked to sign a non-collaboration
agreement.
In addition, the work you submit must be entirely your original
creation. Using solutions from any other source is forbidden; in
particular, using solutions (either instructors' or other
students') from previous offerings of this or other courses is not
allowed. Using solutions found on the Internet or getting help
from online forums is not allowed.
Assignments which appear to be the result of a "group effort", or which appear to have been copied from another student, will be considered plagiarized. Similarly, you must explain your homework solutions using your own words, not copying the answers from the textbook. Violations of this policy may result in being failed from the course. See the campus statement on Academic Dishonesty: Cheating and Plagiarism (C.A.M. 684)
Collaborative Assignments
You may assume the laboratory activities are collaborative,
unless the directions specify otherwise. Students will work in
pairs to complete the structured lab activities. The solution
should include the names of both contributors. Each student
will submit a copy of the work; it is acceptable for a submission
to be identical to that of their partner.
You may consult with other students about homework assignments,
however you must submit your own work.
PRINTED OUTPUT REQUIREMENTS
Don't use smaller than 12 point font without permission. Source
code printouts may be 10 point font but must be monospaced.
PRIVACY POLICY
All files in computer accounts belonging to the instructor and students in this class should be considered private (regardless of the state of the unix file permissions). You may access only those files to which the instructor or account owner has specifically given you verbal or written authorization.
COMPUTER FACILITIES
A number of important class documents will be made available in electronic form (e.g. assignments, due dates). They can be accessed via a WWW browser through the 305 link from the instructor's home page. These files should be considered as evolving documents, as they will be refined and updated as the course proceeds. You may access documents on the course web site only via hyperlinks. You are not authorized to view other documents that may exist but have no hyperlink to them.
Computer Science majors are expected to be proficient with tools of their trade such as e-mail and backups. Excuses such as "my email account was down" or "my hard drive crashed" are not likely to gain much sympathy.
The instructor will not read email whose "Sender" field is not an actual student name. Don't use nicknames in mail you send to the instructor or it will be returned to you unread.
Students are expected to learn and abide by the principles of ethical use of computers as determined by the ACM (Assoc. for Computing Machinery) Code of Ethics and Professional Conduct, the Campus computing and Communication Policies, Calif. state laws (see Penal Code Section 502), and federal laws.
UNIX accounts
Campus computing policies (as well as state and federal laws) prohibit you from reading files in other user's accounts, regardless of whether the file permissions allow such actions, unless you have been given specific authorization to do so.
GETTING ASSISTANCEOffice hours:
One of the great benefits of attending Cal Poly, as opposed to a
University of California, is the opportunity to interact directly
with your instructors. You are invited to take advantage of this
opportunity by visiting the instructor during office hours, even
if you are not having difficulties with the course. Of course if
you are having difficulties, you should see the instructor as soon
as possible. If schedule office hours are not convenient for you,
other times can be reserved by arrangement.
Email:
The instructor will read his email daily (except weekends) and
email is a good vehicle for certain kinds of communications. Use
e-mail to report errors on the class web site, to report problems
in your electronic submission, to clarify assignment requirements,
to reserve an appointment, to ask concise technical questions, or
to ask short questions that can be responded to with a short
answer (a sentence or two). Complex questions or abstract
questions are best dealt with in person. Many programming
problems, including debugging, are best handled during office
hours. It is probably not the best use of email to send your
entire program and say "I can't figure out what's wrong."
CLASSROOM CLIMATE
It is a core value of academic discourse to be tolerant of views
different than our own and to treat others with respect.
In addition, an atmosphere conducive to learning can be fostered
by minimizing distractions for others who are trying to
concentrate. Common courtesies include:
HOW TO ADDRESS THE INSTRUCTOR
DROP/WITHDRAWAL POLICY
You may use PASS to drop this course any time during the first two weeks of class. Please carefully evaluate your schedule and determine if you will remain in the class before the end of the add/drop period. After the drop date, the only way out of the course is called "withdrawing" from the course; this requires a "serious and compelling" reason, such as a medical emergency. You may not withdraw simply because you are earning a bad grade or you forgot to drop through PASS. Withdrawal requires you to document that some desperate situation has arisen after the drop day that you could not have reasonably anticipated.
Document History
Date | Author | Change |
---|---|---|
4/2/17 |
JD |
Revised for Spr '17 |
3/27/16 |
JD |
Revised for Spr '16 |
9/21/15 |
JD |
Revised for Fall '15 |
9/22/14 |
JD |
Revised for Fall '14 |
1/5/14 |
JD |
Revised for Wtr Qtr |
1/5/08 | JD | Document Released |