Principles of Software Development
Fall 2018

Course Information

Class Meets:
Section 01 - Monday and Wednesday 2:45-4:30pm in Harney 148
Section 02 - Monday and Wednesday 6:30-8:15pm in Harney 148

Web Page:

Instructor Information

Name: Sami Rollins

Email: - Slack preferred

Office: Harney Science Center, Room 404

Hours: Monday and Wednesday 2:00-2:30pm, Monday and Wednesday 4:35-5:35pm, Tuesday 1:30-2:30pm and by appointment

TA Information

TA Hours
Gudbrand Schistad Monday 10:30am-12 noon (HR 411) Wednesday 10:30-12 noon (HR 413)
Lovedeep Singh Monday and Friday 9-10:30am (HR 411)
Brian Sung Tuesday 10:30-11:30am (HR 413), Thursday 1-3pm (HR 411)

Course Prerequisites

Experience with an object-oriented programming language.

Course Materials

There is no text you are required to buy for this course

Students may find the book Engineering Software as a Service by Fox and Patterson helpful, though we will not cover all material in this text.

It is recommended that students new to Java have a Java reference book.

Links to online resources, including notes, code samples, and external resources, will be posted on the Schedule page. Make sure to check the schedule early and often.

Course Announcements

Announcements will be posted in the CS 601 Slack team. Use your USF address to join the Slack team by visiting the following URL:

CS 601 Slack

Students are responsible for staying current on all course announcements.

Learning Outcomes

At the end of this course, successful students will be able to do all of the following:

Assessment of these outcomes will be done by a combination of quizzes, exams, labs, projects, and code review.

Course Requirements


You will have six projects. As noted below, they will not be weighted equally. A demonstration and interactive grading session will be required for most projects. Projects will be graded both on functionality (correctness) as well as design. A correct solution may not earn full credit if it is poorly designed or inefficient. A project may only be submitted late in the case of an emergency verified by the dean's office.

Project Resubmission

Up to two out of the six projects may be resubmitted a maximum of one time. Resubmissions that meet the following criteria may earn additional credit for the design requirements:

You are advised to think carefully about which projects you wish to resubmit. If, for example, you choose to resubmit Projects 0 and 1 then you will not be eligible for a resubmission of a later project. You are also advised to manage your time wisely. If you spend significant time revising Project 1 rather than completing Project 2 then you are likely to get behind and do poorly on Project 2.


You will have two exams. You are responsible for being present on the day of the exam. Make-up exams will only be given in the event of an emergency verified by the dean's office.

Labs, Quizzes, In-Class Exercises, Participation

Additional programming labs may be assigned. In many cases you will have class time to work on these labs but they will need to be completed outside of class.

You are expected to attend class, participate in class discussion, and participate in online discussion on Slack. Pop quizzes and in-class exercises/worksheets may be administered any time. If you are not in class on the day of the quiz or exercise you will be assigned a 0.

Code Review

Any student may be asked to come in for code review for any assignment. A student who does not meet with the instructor for a code review in a timely manner will be given a 0 on the assignment in question. A student who is unable to explain his/her code; answer the instructor's questions about his/her code; or reproduce his/her code as expected may receive a deduction of up to 100%, resulting in a 0 on the assignment.

Grade Breakdown

Requirement Percentage of Final Grade
Project 0 - Data Warmup 5%
Project 1 - Data Structures 10%
Project 2 - Concurrency 10%
Project 3 - HTTP/Networking 10%
Project 4 - Web Application 10%
Side Project 5%
Exam 1 - October 10, 2018 20%
Exam 2 - November 28, 2018 20%
Labs, Quizzes, In-Class Exercises, Participation 10%

Letter Grades

Letter grades will be assigned according to the following scale:

A+ ≥97% B+ ≥87% C+ ≥77%
A ≥94% B ≥84% C ≥74%
A- ≥90% B- ≥80% C- ≥70%
F < 70%
For example, you will receive a C letter grade if your grade is greater than or equal to 74% and less than 77%. Please note this scale is subject to change. See the Graduate Student Regulations for more information about letter grades and how they are translated into GPA.

Attendance Policy

Students are expected to be on-time to all classes. Attendance is mandatory for all exams, quizzes, labs, and exercises. Exam dates will be posted on the course schedule.

Late Policy

All deadlines are firm.

Exceptions to this policy are made only in the case of verifiable medical or family emergency. Extensions and makeup exams must be arranged PRIOR to the original deadline unless in case of extreme emergency (such as an emergency room visit).

Academic Honesty

All students are expected to know and adhere to the University of San Francisco's Academic Honor Code. Go to for details.

You must never represent another person’s work as your own.

Copying answers or code from other students or sources during a quiz, exam, or for a project or homework assignment is a violation of the university’s honor code.This includes copying code or other material from the web, and having anyone other than yourself complete your assignments. It also includes working too closely with another student. Collaboration or discussion that results in the same or very similar code indicates that you have not placed enough independent work into your solution and is a violation of the honor code.

Flagrant or repeat violations of the honor code will result in an F in the course, a report to the University Academic Integrity Committee, and a report to the Dean.

At the discretion of the instructor, a less severe penalty may be imposed for minor or first offenses. This is at the sole discretion of the instructor and any violation may result in an F in the course.

Examples of honor code violations include but are not limited to:

Peer Tutoring Services

The Learning and Writing Center (LWC) also provides assistance to students in their academic pursuits. Services are free to students and include individual and group tutoring appointments and consultations to develop specific study strategies and approaches. Please visit for more information.

Student Disability Services

If you are a student with a disability or disabling condition, or if you think you may have a disability, please contact Student Disability Services (SDS) within the first week of class to speak with a disability specialist. If you are determined eligible for reasonable accommodations, your disability specialist will send your accommodation letter to the instructor detailing your needs for the course. For more information, please visit or call (415) 422-2613.