This course gives students experience designing, implementing, testing, and debugging large programs. Students will also get advanced Java programming experience; covering topics such as inheritance, multi-threading, networking, database programming, and web development.
Mondays, Wednesdays, Fridays • 3:30pm to 4:35pm
Lo Schiavo, Room G12
Wednesdays • 5:00pm to 6:30pm
Thursdays • 1:00pm to 2:30pm
and by appointment
Mondays, Wednesdays • 1:00pm to 2:30pm
Mondays, Thursdays, Fridays • 5:00pm to 6:30pm
Harney Science Center, Room 530/535 (CS Labs)
Tuesdays • 1:00pm to 2:30pm
Fridays • 10:00am to 11:30am
You must have completed CS 112 Introduction to Computer Science II with a grade of C or better.
You may not take CS 112 and CS 212 concurrently.
There are no required books for this class. However, it is recommended that students have a Java reference book. Please see the instructor for recommendations.
At the end of this course, students should be able to:
Independently design programs
Produce professional-quality code
Implement large programs with at least 2,000 lines of code
Design and execute tests to identify software bugs
Repair software bugs, redesigning and refactoring code when necessary
Utilize, analyze, and critique code written by others
Assessment of these outcomes will be done by a combination of quizzes, exams, homework, projects, and code review.
This course will be a hybrid flipped classroom, with an emphasis on mastery learning. The majority of the grade will be derived from projects and exams.
This is a 4 credit course. Lectures will be approximately 65 minutes long, and will consist of a mix of traditional slide-based lectures, interactive code walkthroughs, in-class lab exercises, and in-class quizzes. Students should spend approximately 10 to 20 hours per week minimum outside of class.
Think of this class like a part time job. If you do not put in the time, you will not make it to the final project. Many students do not pass due to poor time management!
To receive a non-failing grade for this course, students must meet the following minimum requirements:
Failure to meet 1 or more of the above requirements will result in an F letter grade for this course.
Students that meet the minimum requirements will have the final grade for this course calculated based on a mix of assignments (homework and quizzes), exams (midterm and final), and projects. The specific breakdown is as follows:
Assignments consist of homework exercises and quizzes. Students will often be given class time to work on these assignments, allowing them to get immediate help from the instructor and teacher assistant.
Quizzes will often be given unannounced at the start of class, but students will often be given an opportunity to retake those quizzes during lab time.
There will be two exams. The exams are not comprehensive. Instead of a final exam, you will have a final project.
Finals week will be reserved for interactive project grading. A signup sheet will be posted towards the end of the semester. If you have travel plans during finals week, please confirm your travel dates first with the instructor.
Students must receive a passing letter grade on at least one exam to pass this course.
Project assignments place an emphasis on code quality—it is not enough to achieve correct results. Each project will undergo a rigorous code review checking for specific criteria, such as proper encapsulation and generalization, efficiency, and maintainability. We use a mastery learning approach with projects: students may not move on to the next project until (a) the project produces correct output, and (b) the project passes the code review process.
As such, the project grade will depend on the number of projects completed by each student. The exact grade for each project depends on the submission process. Each student receives one opportunity per project to fix and resubmit the project. Additional resubmissions may result in a point deduction.
Additional details on each project and the project submission process will be posted on the course website.
Students must pass the functionality tests for at least 2 projects by the withdraw deadline, and must pass the code review process for at least 3 projects by the end of the semester to pass this class.
The final letter grade will be assigned according to the following scale:
For example, you will receive a C letter grade if your grade is greater than or equal to 70% 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.
The following are the policies specific to this course. The policies for this class are strict, but students concerned about their grades are welcome to inquire about extra credit opportunities.
Students are expected to be on-time to all classes. Attendance is mandatory for all exams, quizzes, and in-class exercises. Exam dates will be posted on the course calendar.
All deadlines and exam dates are firm. It the responsibility of the student to turn in assignments before (not at or after) the deadline provided. Late submissions will not be accepted.
All projects, except the final project, may be submitted (or resubmitted) for code review up to the last day of class. The final project will be graded interactively during finals week.
Exceptions to this policy are made only in the case of verifiable medical or family emergency. Extensions must be arranged prior to the original deadline unless in case of extreme emergency (such as an emergency room visit).
All students are expected to know and adhere to the Academic Honor Code of the University of San Francisco. See the "University Policies" section in this syllabus for more information.
You must never represent another person's work as your own. Examples of violations include (but are not limited to): copying and pasting code without attribution from the web, copying from another student, and having anyone other than yourself complete your work. It also includes sharing your solutions with others, or working too closely with another student. Unauthorized collaboration or discussion that results in the same or very similar code indicates that you have not placed enough independent work into your submission 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 Academic Integrity Committee (AIC), 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.
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 Academic Honor Code. Visit myusf.usfca.edu/academic-integrity for the full text of the honor code.
The policy includes standards of "honesty and integrity" that cover cheating, plagiarism, and academic fraud. This includes the use of unauthorized materials, participating in unauthorized collaboration, copying without attribution work from the web or elsewhere, sharing your work without authorization on the web or elsewhere, and in any way representing the work of others as one's own.
Visit myusf.usfca.edu/academic-integrity for more details. The course-specific penalties for violating the academic honor code are described in the "Course Policies" section of this syllabus.
Open discussion and disagreement is encouraged when done respectfully and in the spirit of academic discourse. There are also a variety of behaviors that, while not against a specific University policy, may create disruption in this course. Students whose behavior is disruptive or who fail to comply with the instructor may be dismissed from the class for the remainder of the class period and may need to meet with the instructor or Dean prior to returning to the next class period. If necessary, referrals may also be made to the Student Conduct Process for violations of the Student Conduct Code.
Please visit the Office of Student Conduct, Rights, and Responsibilities (OSCRR) at myusf.usfca.edu/student-conduct or the Student Handbook at myusf.usfca.edu/fogcutter for more information.
As an instructor, one of my responsibilities is to help create a safe learning environment on our campus. I also have a mandatory reporting responsibility related to my role as a faculty member. I am required to share information regarding sexual misconduct or information about a crime that may have occurred to a USF student with the University. Here are other resources:
Students may visit Anna Bartkowski (UC 5th floor) or visit myusf.usfca.edu/student-health-safety/safer to report any sexual misconduct.
Students may contact Counseling and Psychological Services (CAPS) at 415-422-6352 to speak to someone confidentially, or report a sexual assault confidentially.
Visit myusf.usfca.edu/student-health-safety/safer for more information.
Students who wish to have the tuition charges reversed on their student account should withdraw from the course(s) by the end of the business day on the last day to withdraw with tuition credit (census date) for the applicable course(s) in which the student is enrolled.
Please note that the last day to withdraw with tuition credit may vary by course. The last day to withdraw with tuition credit (census date) listed in the Academic Calendar is applicable only to courses which meet for the standard 15-week semester. To find what the last day to withdraw with tuition credit is for a specific course, please visit the Online Class Schedule.
Visit myusf.usfca.edu/onestop or call (415) 422-2020 for more information.
The following are general resources available to students at the University of San Francisco. For more information, please contact the relevant office.
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, or immediately upon onset of disability, to speak with a disability specialist. If you are determined eligible for reasonable accommodations, please meet with your disability specialist so they can arrange to have your accommodation letter sent to the instructor.
Visit myusf.usfca.edu/sds or call (415) 422-2613 for more information.
The Learning and Writing Center (LWC) provides assistance to all students in pursuit of academic success. Peer tutors provide regular review and practice of course materials in the subjects of Math, Science, Business, Economics, Nursing and Languages. Other content areas can be made available by student request. Log-on to TutorTrac at tutortrac.usfca.edu to schedule an appointment. Students may also take advantage of writing support provided by Rhetoric and Language Department instructors and academic study skills support provided by Learning Center professional staff.
Visit myusf.usfca.edu/lwc or call (415) 422-6713 for more information.
The diverse staff at Counseling and Psychological Services (CAPS) offers brief individual, couple, and group counseling to student members of our community. CAPS services are confidential and free of charge. Call (415) 422-6352 for an initial consultation appointment. Having a crisis at 3am? CAPS is still there for you. Telephone consultation through CAPS After Hours is available between the hours of 5:00pm to 8:30am; call the above number and press 2.
Visit myusf.usfca.edu/caps or call (415) 422-6352 for more information.