CS106 Introduction to Computer Science I
Spring 2020
Skidmore College
Syllabus

Instructor:
  Dr. Michael Eckmann
  Associate Professor
  Computer Science Dept.
  205-C Harder Hall
  email: meckmann@skidmore.edu
Instructor webpage: https://meckmann.domains.skidmore.edu/

Course webpage: https://meckmann.domains.skidmore.edu/2020Spring/cs106/

=====================================================


Text
(Recommended)

Building Java Programs A Back to Basics Approach, 3rd Edition
by Stuart Reges and Marty Stepp
Publisher: Addison Wesley

Other readings as handouts/links.


=====================================================

Course Overview

This course is an introduction to computer science. The course will
cover object oriented programming using the Java programming language.

=====================================================

Student Learning Goals and Objectives

1. To understand, to some degree, what computer science is.

2. To understand, be able to read and be able to write object oriented programs
using the Java programming language to achieve specific tasks.

3. To gain an appreciation of computer science.

4. To learn and practice good techniques for writing, testing and debugging code.

Goals will be assessed mostly by 3 exams and 4 programming projects. General
assessment of the whole class also takes place weekly during lab sessions and
lectures which engage the students in analysis and discussion of the topics.
=====================================================

Class meetings

LECTURE  
M W F  
9:05 A.M. - 10:00 A.M.  
HAR 201
LAB  
Tu  
9:40 A.M. - 12:30 P.M.  
HARDER 207

=====================================================

Assignments

The course will have approximately 4-5, programming assignments. The
submission procedure will be given when it comes time for you to submit
programs.

One policy that you must follow is: Give proper attribution to any code
you get out of a book or off the web or any code that you yourself did
not write. That is, if you use code (even a small amount) taken from
another source (the text book or lecture notes or elsewhere), you *must*
cite the source in a comment in your program. If you do not, it may be
considered plagiarism. The program source code will be read. Source code
documentation and organization should make your program easy to read,
and convey your understanding of the techniques your program
demonstrates. Poor documentation and programming style will result in a
lower score. (Note: This policy is borrowed from G. Drew Kessler's
(Lehigh University) program policy. See, I gave proper acknowledgment. ;-)

In addition to programming assignments, there will be conceptual
homework assignments.
Assignments and class handouts will be available on the World Wide Web at
URL https://meckmann.domains.skidmore.edu/2020Spring/cs106/
Late assignments will be accepted but will incur late penalty.
Please type all assignments.

=====================================================

Grading Policy

A grade is first calculated by the following scheme:

20% Exam 1 (closed book)
20% Exam 2 (closed book)
30% Final Exam (part closed book, part open book)
25% Programs and Conceptual homework assignments
05% Labs

However, your final grade will be influenced either positively or
negatively by how I, the instructor, evaluate you on the following:
a) class participation
b) good attendance (not just physical)
c) increase of performance throughout the semester,
d) quality/effort of your program/homework submissions (aside from just
   correctness)
e) lateness of your program/homework submissions


Class participation includes answering questions in class, asking
questions in class, visiting me during office hours, or by appointment
and asking questions through email. Class participation is based on my
assessment of the student's voluntary contribution, plus their responses
to questions I ask them.

If assignments are habitually submitted late or one is more than a couple
of days late, then this can negatively effect your overall course grade.

Each program/homework/exam may be graded on a curve (with assignments not
turned in not affecting the curve). Programs and homework assignments will
have point values that reflect their relative weights.

In general each curve will have a mean between B- (2.7) and B (3.0),
depending on my assessment of the overall performance.

=====================================================

Academic Integrity

I list here the policies by which the students of this class are expected to abide.
1. Improper Collaboration Policy.
2. Skidmore Honor Code and Academic Integrity.
3. The Ethics of Scholarship.

Failure to abide by these policies results in a negative learning environment
and you should expect to be held accountable.

=====================================================

Attendance

Please be on time as class will start promptly at 10:10 a.m.

Attendance is mandatory.

Any exams given cannot be made up. Those students who are absent when an exam is given
are given a zero for that exam. This policy is strict.

=====================================================

Workload

I expect students to devote approximately 2 hours per day outside of class on the work for this course.

=====================================================

Disability Accommodations
If you are a student with a disability and believe you will need academic accommodations, you
must formally request accommodation from Meg Hegener, Coordinator for Student Access Services.
You will also need to provide documentation that verifies the existence of a disability and
supports your request. For further information, please call 580-8150, or stop by the office of
Student Academic Services in Starbuck Center.

=====================================================

Title IX Statement
Skidmore College considers sexual and gender-based misconduct to be one
of the most serious violations of the values and standards of the
College. Unwelcome sexual contact of any form is a violation of students'
personal integrity and their right to a safe environment and therefore
violates Skidmore’s values. Sexual and gender-based misconduct is also
prohibited by federal regulations. Skidmore College faculty are committed
to supporting our students and upholding gender equity laws as outlined
by Title IX. If a student chooses to confide in a member of Skidmore's
faculty or staff regarding an issue of sexual or gender-based misconduct,
that faculty or staff member is required to tell Skidmore’s Title IX
Deputy Coordinator. The Title IX Deputy Coordinator will assist the
student in connecting with all possible resources for support and
reporting both on and off campus. Identities and details will be shared
only with those who need to know to support the student and to address
the situation through the college's processes. If the student wishes to
confide in a confidential resource, The Counseling Center Staff, Health
Services, and Victim Advocates are all options available.
More information can be found at https://www.skidmore.edu/sgbm/ or by
contacting the Title IX Deputy Coordinator.

=====================================================

Topics
The order in which we will cover the topics in this course.

Introduction to course & Introduction to Java Applications

Variables, Types

Strings and Characters

Keyboard Input

Control Structures
if's & different looping structures
conditionals/booleans

Methods
arguments, parameters, scope of variables

Recursion

Object-Based Programming
Classes, Objects
Object-Oriented Programming
Inheritance, Interfaces & Polymorphism

Arrays (single & multidimensional)

Searching & Sorting algorithms

Linked Lists

Files and Streams (if time permits)

=====================================================