Computer Science 112: Introduction to Computer Science II

Spring 2012 Syllabus         Class # 0203-112-02

Time: MWF 4:45 - 6:25
Location: HR 235
Professor: David Galles
Office: HR 542
Office Hours:   MW 2:00 - 3:00
                 T 10-11:30 or by appointment

                        Though these are my stated office hours, I am in my office most of the day.
                        If my door is open (and it usually is), I am happy to talk with students.
Phone: 422-5951

TA: Kevin Moran, ksmoran AT cs DOT usfca DOT edu

Lewis and Loftus, Java Software Solutions: Foundations of Program Design 7th Edition, Addison Wesley

Computer Science 110, Introduction to Computer Science I, with C or better

Finals and Midterms:
Both midterms and the final will be closed notes.

Exam Date
Midterm #1 2/22/2012
Midterm #2 3/28/2012
Final:  5/16/2010 5:30 pm (Wednesday)

If there are any problems with the above midterm dates, if you let me know about them in the first week of school then the timing can be flexible.  The earlier we know about problems, the easier it will be to resolve them to everyone's satisfaction.

Late Policy:
Late projects will be accepted up to 24 past the deadline for up to 50% credit. Projects will not be accepted later than 24 hours after the deadline.

Grades will be based on 3 exams, 5 projects, weekly lab assignments, and occasional quizzes, with the following percentages:
Exams: 35%
Projects: 45%
Labs and Quizzes: 20%

Academic Honesty:

Students are required to follow the University's Honor Code: "As a Jesuit institution committed to cura personalis- the care and education of the whole person- USF has an obligation to embody and foster the values of honesty and integrity. USF upholds the standards of honesty and integrity from all members of the academic community. All students are expected to know and adhere to the University’s Honor Code. You can find the full text of the code online at"

This includes but is not limited to the following:

ALL assignments are to be completed individually unless specified, in writing, on the assignment. Academic dishonesty will NOT be tolerated. This is your warning! Students are encouraged to meet with me if they have questions regarding assignments or this policy. Students caught cheating will face severe penalty.

Students may:
  • receive help from the professor and the TA.
  • discuss the requirements of the assignments, the meaning of programs, or high-level algorithms with other students or outside sources. If you have any doubt with respect to what is acceptable to discuss, speak with the professor first.
Students may NOT:
  • look at another student's code.
  • look at another student's solutions to homework problems.
  • receive unapproved help from an outside source including a tutor or a family member.
  • submit code which has, in whole or in part, been copied from any other source (including another student, a web page, or another text).
  • submit solutions to problems which have, in whole or in part, been copied from any other source (including another student, a web page, or another text).
  • Any help from a source other than the professor, the lab assistant, or a TA must acknowledged. Example sources that must be cited are a parent, a family friend, and an outside tutor.
  • If you wish to get a tutor in the course, speak with the professor.
  • Any code submitted by a student must be completely original. No portion of a student's code may be copied from any other source (including, but not limited to, another student, a web page, or another text).
  • Students caught violating the academic honesty policy will face severe penalty. A first offense will result in a 0 on an assignment and a report to the Dean's office.

Topics to be covered:

Java Syntax
CLasses and Inheritance
Advanced Java Concepts
Linked Lists
Stacks/Queues/Trees, if time

Learning Outcomes:

Students who complete this course will be able to

  1. Write intermediate-level programs in Java
  2. Apply object-oriented desgin concepts to code design
  3. Use intermediate-level programming concepts, including recursion and linked lists