||CS 112 - Introduction to Computer Science II
In Introduction to Computer Science I, one learns the basic building blocks
for problem-solving using the Java programming language. Introduction
to Computer Science II continues problem-solving development with group work,
deeper coverage of object-oriented programming topics, exception handling,
graphical user interfaces, the Java event model, file I/O, and other advanced
programming topics. We also begin coverage of basic data structures (e.g. collections, linked lists)
and algorithms (e.g. sorting, searching). Thus we
transition to the Data Structures course where one learns a collection of
common, important tools for problem solving that find application in many diverse
problems computer scientists solve.
- Refresh and reinforce Computer Science I problem solving skills.
- Grow group work skills through pair programming.
- Experientially learn more advanced programming topics.
- Prepare for future Data Structures study through a final design
project that requires the development of a data structure.
Section A Lecture: MWF 2:10-3:00PM, Glatfelter 112
Office: Glatfelter 209
Mo 3-4PM, Tu 2:30-5PM, We 3-5PM, Th 2:30-3:45PM, Fr 3-5PM or by appointment. (I finish teaching
each day just before office hours, so
office hours will start when I arrive back at my office.) Note: Generally,
feel free to drop in if my office door is open (i.e., most of the time
A Video Explainer about Office Hours for Students
- Hoang Just, office hours: TBA, 7-9PM, Glatfetler
- Ryan Smolik (every other Friday), office hours: TBA, 7-9PM, Glatfetler
- Kayl Murdough, office hours: TBA, 7-9PM, Glatfetler
15% Fourth Hour Project
15% Quizzes & Exams
5% Colloquium Attendance
5% Class Attendance / Participation
You are responsible to know the material
from each lecture and reading assignment before the start of the next class.
Homework is due at the beginning of lecture on the due date. Source code that does not
compile may not receive partial credit. (It need not be free from logic
errors.) You are required to attend 3 colloquia or approved departmental
events over the course of the semester.
Late Assignment Policy
Since graders will look in the submission system for on-time work only, it is
your responsibility to notify graders of your submission of late work.
Late work will receive a flat 10% penalty (e.g. what would have received 95%
would receive 85% credit, not 85.5%). Late work will only be accepted
until approximately half-way between the due date and the last day of classes:
||Due at the beginning of class:
||Last accepted late at the beginning of class:
||42 (no lateness permitted)
||floor((3*n + 42)/2)
Class attendance and participation is required. If you attend all
classes and are willing to participate, you'll get 100% for this part of your
grade. Even if you know enough to give a particular lecture, please consider
the value of helping your peers during in-class exercises.
Woody Allen is quoted as saying
"80% of success is
just showing up." While our class attendance/participation grade
is not 80% of the final grade, it is critical that late arrivals and unexcused
absences are not excessive. Missing more than half of class unexcused is
considered being absent. An unexcused late arrival is counted as a half
absence. If the total number of absences counted this way exceeds
20% of class meetings, i.e. 8.5 absences or more, the student will have failed
Honesty, Integrity, Honor. These are more important than anything
we will teach in this class. Students can and are encouraged to help
each other understand course concepts, but all graded work must be done
independently unless otherwise specified (e.g. group work). Submitted work
should be created by those submitting it. Submission
of plagiarized code or design work is a violation of the Honor Code, which I
strictly enforce. For
detailed information about the Honor Code, see
What is permitted:
- Discussing algorithms, syntax, and problem specifications with other
- Seeking assistance (as needed) from CS professors, students assistants,
and approved tutors
- Use of "starter code" supplied by your professor, or code you have
What is not permitted:
- Sharing code: Verbal dictation of code, transference of code (e.g.
e-mail, file transfer, entry of printed output, etc.). An important
component of this experiential learning process is developing the ability to
independently devise algorithms and express them in program code.
- Viewing and/or using unauthorized code (e.g. solutions found online,
downloads from code repositories, etc.)
- Submitting work that implicitly takes credit for work that should be
credited to others
- Efforts to obscure the source of unauthorized work
- Outsourcing work
Put simply, students may discuss assignments at an abstract level (e.g.
specifications, algorithm pseudocode), but must actually implement solutions
independently or in permitted groups. Credit should be given where credit
is due. Let your conscience be your guide. Do not merely focus on
the result; learn from the process.