Course Number and Title: CS112 Introduction to Computer Science II
Location: Harney Science Center 235 (Kudlick Classroom)
Schedule: TR 12:45pm-2:30pm

Instructor: EJ Jung, HR 541
Email: ejung (at) cs (dot) usfca (dot) edu - Piazza preferred
Office Hours: Mondays 10am-12pm, Thursdays 2:30-3:30pm, and by appointment

Teaching Assistant: Jovani Kimble
Contact: Use Piazza!
Office Hours: Tuesdays 2:45-4:15pm, Wednesdays 5-6:50pm
You may also visit her offices hours on Mondays 5-6:30pm and Fridays 10-11:30am, but CS112-02 students have priority.

Shared Teaching Assistant: Brian Bushree
Contact: Only in person
Office Hours: MWF 12-2pm, Wednesdays 3:30-5:30pm
Brian shares his hours among all three sections of 112.

Tutoring Center
You may also visit the CS Tutoring Center for help with this course.

Pre-requisites CS110 with a grade of C or better.

Java Software Solutions: Foundations of Program Design, 8/E by John Lewis and William Loftus.

All course-related communications, including announcements and questions about labs and projects, should be posted in Piazza, except for grades. Grades will be posted on Canvas. Students are responsible for staying current on all course announcements.

External Resources
CS tutoring center has an excellent resource page, which includes

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

  • Implement medium-sized Java programs of 500-800 lines of code.
  • Describe, trace programs using, and implement programs using the following intermediate-level programming concepts:
    • arrays
    • file i/o
    • exception handling
    • inheritance and object-oriented design principles
    • built-in data structures and the Collections library
    • recursionsts
    • linked lists
The tentative schedule with the reading list from the textbook is available in the Schedule tab.

Class Structure
After the first class, each class will consist of lecture and hands-on programming experience, with occasional pop quizes. During the class you will have a chance to run programs used as examples in lecture, and the labs will be based on these programs.

Attendance Policy
Attendance is mandatory. Absences are only excused in cases of verified family or medical emergency. Topics that are discussed in class but are not available online will be part of exams and assignments.

Your labs, projects, exams, and quizzes will be graded in 1-2 weeks, and the scores (and comments, if applicable) will be posted in Canvas. An announcement will be posted on Piazza when new scores are available, and any appeal should be made within 1 week from the post. Your final grade will be calculated this way:
Note: The distribution is subject to change in the event that labs and projects need to be removed or added.

  • Labs: 10%
  • Projects: 40%
  • In-class Exams: 20% (10% each)
  • Final exam: 20%
  • Participation and Quizzes: 10%
and will be assigned as follows:

A+ >100% B+ ≥87% C+ ≥77% D+ ≥67%
A ≥94% B ≥84% C ≥74% D ≥64%
A- ≥90% B- ≥80% C- ≥70% D- ≥60%
F < 60%
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 Undergraduate Student Regulations for more information about letter grades and how they are translated into GPA.

Laboratory Assignments
Weekly programming assignments will be due most weeks on Wednesday. You will usually be given class time to work on these assignments, allowing you to get help from the instructor. If you do not finish these assignments in class you will need to complete them on your own time. You may always seek help from the TAs, tutors, and the instructor during their office hours.

The project portion of your grade will be based on five substantial programming projects assigned throughout the semester. In some cases, your project grade will be based on the code you submit as well as an oral explanation and demonstration of the project on the day the project is due. A project assignment submitted on time is eligible for full credit. A project assignment submitted late by 24 hours or less is eligible for a maximum of 50%. A project assignment submitted more than 24 hours late is not eligible for credit. Extensions will be granted only in the case of a medical emergency verified by a doctor's note.

Late Policy
All deadlines and exam dates are firm. No late laboratories or quizzes will be accepted. Projects may be submitted up to 24 hours late but will incur a 50% deduction. 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).

The exam portion of your grade will be based on two exams administered throughout the semester and one exam administered during the final exam period. You are responsible for being in class on the day of the exam. Make-up exams will be given only in the case of a medical emergency verified by a doctor's note.

Exam Policy
If a student earns less than 60% on any two out of the three exams the student will get an automatic F for the class.

Participation and Quizzes
You are expected to attend class, participate in class discussion, and participate in online discussion on Piazza. Pop quizzes may be administered any time. Example solution and explanations will immediately follow. The quizzes are closed-notes and closed-laptops.

Students with Disabilities
If you are a student with a disability or disabling condition, or if you think you may have a disability, please contact USF Student Disability Services (SDS) at (415) 422-2613 within the first week of class, or immediately upon onset of disability, to speak with a disability specialist. If you are determined eligible for reasonable accommodations, please provide me with your SDS Verified Individualized Services and Accommodations (VISA) form, and we will discus your needs for this course. For more information, please visit: or call (415) 422-2613.
I would like to hear from anyone who has a disability which may require seating modifications or testing accommodations or accommodations of other class requirements, so that appropriate arrangements may be made. Please contact me during my office hours or make an appointment.

Code Review
Any student may be asked to come in for code review for any assignment (lab or project). 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 and answer the instructor's questions about his/her code as expected may receive a 0 on the assignment.

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. Any student may be asked to reproduce any of his/her work at any time. Failure to reproduce work in a timely manner will be considered academic dishonesty. 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:

  • Giving your code to another student.
  • Submitting code written by anyone other than yourself as your own.
  • Copying text from the web.
  • Discussing implementation details of a solution with another student.
  • Discussing code-specific details of a solution with another student.
Note: This syllabus is in a draft stage and is subject to change.