CS 301
Object-Oriented
Design
Spring
2020 Syllabus
Lecture *MWF 2:40-4:00pm, Shiley 249
*We will not be
meeting every lecture period—see course schedule.
Corequisite CS
371 Object-Oriented Design Laboratory
Instructor Steven Vegdahl: vegdahl@up.edu,
503-943-7215, Shiley 218
Office hours M 10:45am-12:15pm
T: 1:45-3:15pm
W: 12:00-1:30pm
R 9:15-10:45am
If
these times do not work for you, then I will find a time that does. Please send
email (to vegdahl@up.edu) to schedule an appointment at: http://stevevegdahl.youcanbook.me/.
Website http://teaching.up.edu/cs301. Course schedule, assignments,
references, and assignment turn-in information will be posted here. Please
check it regularly.
Important Dates
Midterm exams: 19 February (Wed.) and 6 April (Mon.)
Term
project due: 8 April (alpha), 20 April (beta), 29 April (final)
Final
project bug validation (final exam slot: attendance
is required):
29
April (Wed.), 10:30am-12:30pm
Course Content
Bulletin Description
Continue to build a computer science foundation. Study of
intermediate programming language constructs: event handling, graphical user
interfaces, threads, and networking. Introduction to the software engineering
process and programming-in-the-large. (Prerequisite: CS 203 with a grade of C- or
better.)
Course Description
This course is a continuation of CS 203 in which we explore larger
issues of software engineering, including program design, testing, and
programming in teams. We also will cover additional aspects of the Java
programming language: interfaces, abstract classes, graphical user interfaces
(GUIs), exceptions, and threads. We will spend a significant amount of time on
program design, and we will introduce UML, an industry-standard, graphical
language for expressing program requirements and design.
Upon successful completion of this course, you should be able to
·
Build graphical user interfaces (GUIs) for the Android using Java.
·
Build event-driven Java programs for the Android.
·
Use Java HashMaps, HashSets,
enumeration classes, Threads, and Sockets.
·
Design and implement a program that uses Java exceptions.
·
Understand the concept of a software framework.
·
Understand and use abstract classes and interfaces.
·
Use UML to design a Java program that uses multiple classes.
·
Work as part of a team to design and implement a relatively
complex computer program.
·
Understand and apply the concepts of software testing.
·
Make effective use of the Java API documentation.
Textbook/Readings
Most readings will be from a combination of
·
A Friendly Introduction
to Software Testing Bill Laboon, ISBN 978-1523477371.
and
online sources. See course schedule for details. When we are discussing
a Java-related topic, I would encourage you to read relevant sections of your
CS 203 textbook.
Additional material will be provided as handouts or web
references.
Course Structure
Assignments in this course will give you practice in designing and
implementing software in the Java programming language, with an emphasis on the
use of more advanced aspects of the language than you saw in CS 203. A large
term project will give you practice in working as part of a team to design and
implement a relatively complex program. Exams will allow you to demonstrate
your in-depth understanding of the course material.
Graded work will consist of:
·
Three programming assignments that you complete individually (25%
total: 5%, 10%
and 10%, respectively)
·
One programming assignment that you complete either individually
or with a partner (10%)
·
A term project that you complete as part of a team of three or
four students (40%)
·
Two midterm exams (25%, 12.5% each)
Course Policies
Course Grading
The nominal percentage-score-to-letter-grade conversion is as
follows:
·
90% or higher is an A
·
80-89.99% is a B
·
70-79.99% is a C
·
60-69.99% is a D
·
below 60% is an F
Grades in the top and bottom 2.5% of grades A-D will receive the
“+” or “-” annotations, respectively, except for A+ (which the University does
not record).
Grade Calculation
Your semester grade will be determined by adding up the points
from your assignments and term project and your exams, except that your final
grade is capped at 116% of the percentage score you earn on exams. For example,
if you earn only 76% of the possible points on the two midterms, then your final
grade will be capped at 88.16% (76%x1.16). Our purpose is to ensure that a good
grade reflects a solid understanding of the course concepts, not just success
in coding or your teammates’ reluctance to report your lack of contribution.
I may adjust your overall score based on our observation of the
effort you put into the course. I will consider such factors as exceptionally
good or poor attendance, chronic tardiness, being prepared for class (or not),
attitude, participation in class activities, willingness to ask or answer
questions (either in class or in office hours), and whether you start
assignments early.
Grading on Team Assignments
Assignments done in teams will be graded on the merits of the
submitted work, according to the rubrics for that assignment. All team members
will evaluate one another (including self), regarding contribution. Your
individual grade may be adjusted up or down based on the peer evaluations and
instructor observation: if you appear to have contributed substantially more or
substantially less than other members of your team, then your grade will be
adjusted up or down accordingly.
Assignment Due Dates, Exam Dates
Assignments turned in late will be penalized 10% for each day or
partial day of lateness for up to seven additional days (including weekends and
holidays). After seven days, assignments will not be accepted unless other
arrangements have been made in advance or unless unusual circumstances warrant
an exception. Partial credit will be given for incomplete assignments, so it is
wise to submit whatever you have finished before penalties kick in, even if you
plan to continue working on the assignment.
·
Extensions on due dates for assignments may be granted in
extraordinary circumstances. I encourage you to discuss the matter with me in
advance of the due date.
·
The midterm exams and software testing sessions will be completed
at the scheduled time unless extraordinary circumstances warrant an exception.
Attendance and Tardiness
Your attendance in class is important to me. If you know that you
will miss class or will be quite late, please let me know beforehand if at all
possible and please give your reason. I would rather hear that you decided to
sleep in than not hear from you at all. Classes missed without notification
will be considered unexcused and may affect your grade for the course.
I often make announcements and give assignments at the beginning
of class. If you miss class or are late, I will do my best to help you get
caught up, but it is your responsibility to find out what you missed.
Feedback Appreciated!
Your
success is important to me. I intend this course to be challenging, but
do-able. If you find that I have drastically underestimated the difficulty of
an assignment, or if you feel that you are not understanding the material and are
not comfortable expressing this in class, or if you are not being sufficiently
challenged, or if you have any other suggestions for improvement, PLEASE talk
to me about it. I welcome your comments and suggestions.
Standards of Conduct and
Academic Integrity
The University of Portland Code of Academic Integrity, available
on the University’s website and in the Bulletin states:
Academic
integrity is openness and honesty in all scholarly endeavors. The University of
Portland is a scholarly community dedicated to the discovery, investigation,
and dissemination of truth, and to the development of the whole person.
Membership in this community is a privilege, requiring each person to practice
academic integrity at its highest level, while expecting and promoting the same
in others. Breaches of academic integrity will not be tolerated and will be
addressed by the community with all due gravity.
In terms of this course, this means:
·
You are expected to conduct yourself in a professional and
courteous manner.
·
As will be discussed in lecture, you are encouraged to find help
from internet resources, professors and other students. However, you should
document any help you receive in such a way that it is clear what portions of
the code is fully written by you, and what is partially (or fully) a result of
help from some other resource. This documentation should be in the form of a
text-file log that documents for each problem encountered in which you used an
outside resource:
o
the date
o
a description of the problem you encountered
o
the person or other resource (e.g., website, textbook) from which
you received the help
o
a description of the solution to the problem
Except for simple assignments, is expected that all students will
need to use outside resources; your grade is likely to suffer (and you may even
be in peril of plagiarism charges) if you do not submit a credible log.
Note that this
is a different policy than in most other CS courses. If you have any questions
about acceptable collaboration in this (or any other) course, ask first.
Accessible Education Services (AES)
The University of Portland endeavors to make its courses and
services fully accessible to all students. Students are encouraged to discuss
with their instructors what might be most helpful in enabling them to meet the
learning goals of the course. Students who experience a disability are also
encouraged to use the services of the Office for Accessible Education Services
(AES), located in the Shepard Academic Resource Center (503-943-8985). If you
have an AES Accommodation Plan, you should make an appointment to meet with
your faculty member to discuss how to implement your plan in this class.
Requests for alternate location for exams and/or extended exam time should,
where possible, be made two weeks in advance of an exam, and must be made at
least one week in advance of an exam. Also, you should meet with your faculty
member to discuss emergency medical information or how best to ensure your safe
evacuation from the building in case of fire or other
emergency.
Assessment Disclosure
Statement
Student
work products for this course may be used by the University for educational
quality assurance purposes.
Mental Health Statement
As a
college student, you may sometimes experience
problems with your mental health that interfere with academic experiences and
negatively impact daily life. If you or someone you know experiences mental
health challenges at UP, please contact the University of Portland Health and
Counseling Center in Orrico Hall (down the hill from
Franz Hall and Mehling Hall) at www.up.edu/healthcenter or at
503-943-7134. Their services are free and confidential, and if necessary they
can provide same day appointments. In addition, after-hours phone counseling is
available if you call 503-943-7134 and press 3 outside of business hours. Also
know that the University of Portland Public Safety Department (503-943-4444)
has personnel trained to respond sensitively to mental health emergencies at
all hours. Remember that getting help is a smart and courageous thing to do –
for yourself, for those you care about, and for those who care about you.
The Learning Commons
Trained
peer tutors and writing assistants in the Learning Commons, located in Buckley
Center 163, work with you to facilitate your active learning and mastery of
skills and knowledge. For questions about the Learning Commons, please send all
correspondence to Jeffrey White, Administrator, at white@up.edu. The Learning Commons is a program of the Shepard
Academic Resource Center (SARC.)
Math Resource Center: Appointment-based tutoring is available through our
online scheduler at www.bit.ly/up_mrc. Walk-in tutoring Sundays through Thursdays evenings. For MTH 141, request appointments at math141@up.edu.
The course-specific schedule can be found at www.up.edu/learningcommons,
or the reception desk in BC 163.
Writing
Assistance: Brainstorming
ideas for your paper, create an outline, work on citations, or review a draft
with a Writing Assistant. Visit www.up.edu/learningcommons to
access our Writing Center schedule.
The
Language Studio:
Contact the language assistance hotlines to schedule a time to meet throughout
the semester at chinesetutor@up.edu, frenchtutor@up.edu, germantutor@up.edu, or spanishtutor@up.edu.
Natural
Sciences Center:
Send your tutoring requests to biotutor@up.edu, chemtutor@up.edu, or physicstutor@up.edu.
Speech
& Presentation Lab:
Improve your presentations by requesting an appointment at speech@up.edu.
Group
Work Lab: Make an
appointment for your group project at groupwork@up.edu.
Nursing
Tutoring: Tutoring
is available for pathophysiology, BIO205, anatomy and physiology, and other
nursing courses on a walk-in or appointment basis. Up-to-date schedule
information is at www.up.edu/learningcommons/nursing.
Economics
and Business Tutoring:
For support in economics, OTM, finance, accounting, and business law courses,
send requests for appointments to your discipline’s tutor email hotline: econtutor@up.edu, otmtutor@up.edu, financetutor@up.edu, accountingtutor@up.edu, or bizlaw@up.edu.
Shiley Sophomore Fellows: Provides
tutoring in several sophomore engineering classes. To make an appointment, send
a request to stepUP@up.edu.
Learning
Assistance Counselor:
Learning assistance counseling is also available in BC 163. The counselor
teaches learning strategies and skills that enable students to become more
successful in their studies and future professions. The counselor provides
strategies to assist students with reading and comprehension, note-taking and
study, time management, test-taking, and learning and remembering. Appointments
can be made in the on-line scheduler available to all students in Moodle or
during posted drop-in hours.
Non-Violence Statement
The
University of Portland is committed to fostering a community free from all
forms of violence in which all members feel safe and respected. Violence of any
kind, and in particular acts of power-based personal violence, are inconsistent
with our mission. Together, we take a stand against violence. Join us in
learning more about campus and community resources, UP’s prevention strategy,
and reporting options on the Green Dot website, www.up.edu/greendot or the Title
IX website, www.up.edu/titleix.
Ethics of
Information
The
University of Portland is a community dedicated to the investigation and
discovery of processes for thinking ethically and encouraging the development
of ethical reasoning in the formation of the whole person. Using information
ethically, as an element in open and honest scholarly endeavors, involves moral
reasoning to determine the right way to access, create, distribute, and employ
information including: considerations of intellectual property rights, fair
use, information bias, censorship, and privacy. More information can be found
in the Clark Library’s guide to the Ethical
Use of Information
at libguides.up.edu/ethicaluse.