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.