CS 111 - Introduction to Computer Science I
Course Information

Course Overview

On the surface it appears that Computer Science is a very dynamic discipline. However, there are certain principles that are basic to Computer Science. These are the fundamentals that enable us to solve problems within the context of a hardware environment. For that reason this course has a heavy emphasis on the methodology of problem solving with the use of computing equipment, algorithms, and the implementation of those algorithms in a specific programming language.  Because of the importance of the Internet, this course will be taught using the Java programming language.  Exercises will introduce the student to basic computing concepts, data types, classes and methods, decisions, iteration, testing and debugging, arrays and vectors, and other selected topics.  The goal of these exercises is to illustrate good programming principles, an understanding of object oriented programming, programming and elementary data structures, as well as some basic software engineering principles. Students will have weekly homework exercises throughout the term that will provide a solid foundation of experience for future problem-solving.

Learning Objectives

Text


Introduction to Java Programming and Data Structures, Comprehensive Version Plus MyLab Programming with Pearson eText -- Access Card Package (11th Edition)
by Y. Daniel Liang

Text Home Page (author), (Pearson)
ISBN-13: 978-0-13-469451-1 
ISBN-10: 0-13-469451-1
© 2017
 
(Note: 10th edition is acceptable, but MyProgrammingLab access is required for CS111 and can be purchased separately.)

2019 textbook warning:  Pearson has made the bundling and packaging of this product very confusing.  Here is what to expect (with linked images): The textbook/MyProgrammingLab bundle is currently packaged as a shrink-wrapped text with a correct ISBN # sticker over the back-cover ISBN # of the underlying text (image of shrink-wrap ISBN, image of shrink-wrap ISBN with different back-cover ISBN of text underneath).  Within the front cover of the text book, there is a scratch-off area concealing a code for electronic supplemental resources only.  Beneath the scratch-off area, there is a warning "IMPORTANT: This prepaid subscription does not include access to MyProgrammingLab, which is available at www.myprogramminglab.com for purchase.".  However, tucked inside the back page(s) of the text, there is a green, folded, card-stock insert (back) that provides a separate code for access to MyProgrammingLab with yet another ISBN #.  There is no indication to the buyer that they can expect this surprise in the back of the text.  The packaging really should mention/itemize the bundle contents and highlight the need to go searching for that card.  I have contacted my Pearson representative to point out the need for clearer packaging.  Remember: The inside front cover code provides access to electronic bonus chapters, practice exercise answers, etc.  The hidden green insert (generally towards the back) has a separate code that provides access to MyProgrammingLab.

Instructor

Section A - via Zoom M,W,F 11:00-11:50AM:
Section B - via Zoom M,W,F 12:00-12:50PM:
Todd Neller
Office hours are listed with a Zoom link on our COVID-19 page.
A Video Explainer about Office Hours for Students
E-mail: 

Student Assistants

In-class Assistants:
    Section A: Hoang Just (TA office hours Sunday 7-9PM, via Zoom)
    Section B: Distanta Ojha (TA office hours Thursday 7-9PM, via Zoom)

Grading Assistants: Aaron Dorsey (TA office hours Wednesday 7-9PM, via Zoom) and Tristan Hochman (TA office hours Tuesday 7-9PM, via Zoom)

Note: Students serving in office hours are able to serve students beyond their own assigned classes, so there should be at least one student who can assist you every Sunday through Thursday evening 7-9PM.

Grading

60% Assignments
20% MyProgrammingLab Activities (4th Hour Requirement)
10% 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.  You are required to attend 2 colloquia or approved departmental events over the course of the semester.  The submission system should not be viewed as a testing system.  You should thoroughly test each line and case of your code.  That said, we allow homework resubmission.  No more than the 10th submission will be graded.  (The system will still allow more than 10, but the graders need not consider submissions beyond the 10th.)

Late Assignment Policy

It is your responsibility to notify me of your submission of late work.  Late homework (HW1-HW14) will receive a flat 10% penalty (e.g. what would have received 95% would receive 85% credit, not 85.5%).  Late homework will only be accepted until either 9 classes later or half-way between the due date and the last day of classes (rounded down), whichever comes first.  For example, homework due at the beginning of class 4 would be accepted late until class 13, but homework due at the beginning of class 39 would be last accepted late at the beginning of class floor((39 + 42)/2) = floor(40.5) = 40.

MyProgrammingLab (MPL) work has no permitted late policy.  Each week's assigned MPL work will be graded and recorded once during the following week.

Attendance

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 the course.

Work Expectations

You are expected to work an average of 9 hours per week beyond class time Gettysburg College policy, in accordance with federal and state standards, equates 1 credit unit with an average of 12 hours of work per week with 50 minute classes counting as 1 full hour of work.  During these remaining 9 hours beyond class, a student is expected to learn from assigned readings, complete exercises related to such readings, attend required colloquia, and complete assignments.

Think of your college studies as a more-than-full-time job, and engage in it with passion.  After all, you get out of it what you put into it, and it is my hope that you'll gain much from your investment in this course.  If you'd like to learn more about how to better track tasks and manage time as a student, consider watching my short tutorial on getting things done.

Honor Code

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 http://www.gettysburg.edu/about/offices/provost/advising/honor_code/index.dot.

What is permitted:

What is not permitted:

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.