Computer Science 101 Intro to Computing I
Spring 2016

Course Description and Goals

Computers and software are everywhere. Inside your mobile phone, your car, and quite possibly your toaster, hundreds, thousands, or millions of lines of software are running. Programs enable and mediate instant communication, global financial networks, a smoothly running engine, and a perfectly browned slice of sourdough. Writing software to instruct computers to do even simple tasks can be challenging, fun, and creative.

The goal of this course is to introduce students to computer science and problem solving by writing programs. Through lecture, discussion, programming assignments and other activities we will cover topics such as basic programming constructs (variables and types, control flow, conditionals, iteration), input and output, basic data structures, objects, and recursion. No prior experience in computer science or programming is required for this course.

Organization

Course Meeting times

Section Instructor Room Time
A Fourquet E. MCGREG 315 MWF 10:20—11:10
B Stratton J. MCGREG 315 MWF 11:20—12:10

Lab Meeting times

Section Instructor Room Time
L_A Cucura V. MCGREG 328 M 12:35—2:35
L_B Cucura V. MCGREG 328 M   2:45—4:45
L_C Cucura V. MCGREG 328 T    1:20—3:20
L_D Lyboult M. MCGREG 314 T    2:45—4:45
L_E Cucura V. MCGREG 328 W   1:20—3:20

Office Hours

Office hours for each instructor are shown below.

While students can attend the office hours of any course instructor, we encourage you to attend the office hours of your course instructors whenever possible. Homework questions should be asked to course instructors.

Course Instructor Email Office Office Hours
Fourquet E. efourquet MCGREG 309 M 12:20—2:20 & R 2:40—3:40 & F 11:30—12:30
Stratton J. jstratton MCGREG 310  T  2:20—4:20 & W 12:20—2:20

Questions relating to lab work should be asked to the instructor of the laboratory section you are attending.

Lab Instructor Email Office Office Hours
Cucura V. vcucura MCGREG 317 W 11:10—1:10 & R 1:30—3:30
Lyboult M. mlyboult MCGREG 318 M 10:00—12:00 & W 2:00—4:00 & R 10:00—12:00

Open Lab

COSC tutors are available during open lab hours in McGregory 328. Lab tutors provide help hands-on with coursework. Times are Sundays 1:00-4:00pm and Sundays-Thursdays 7:00-10:00pm. Click here to view the detailed schedule of open lab tutors. (TBA).

Materials

Required Textbook
Solving Problems with Python. The text is a modification of the open-source text How to think like a computer scientist by Allen Downey. It has been modified to fit this course better and it is available for free in electronic form: HTML, PDF
Optional Textbook
Nine Algorithms That Changed the Future: The Ingenious Ideas That Drive Today’s Computers, by John MacCormick. Available electronically. Some homework assignments will include optional readings from this book. These readings are not essential to completing the homework but rather offer additional background information.
Websites
Course Webpage http://cs.colgate.edu/cosc101
for course general information: syllabus, textbook, homework descriptions, exam preparation, and links to section pages.

Moodle http://moodle.colgate.edu
for homework submissions and possible course section announcements, discussion and extra materials.

Software

All programming will be done using the Python language. Classroom and lab computers will have python pre-installed. However, you may wish to install Python on your personal computer. If you choose to install Python, be sure to get 2.7 and not Python 3!!!

For basic python, you can download Python 2.7.10 directly from https://www.python.org/downloads/. This installation includes the IDLE program which is a program that you will use to write Python programs. If you are on a Mac, be sure to read the special instructions regarding installation.

Reference
The official Python language website, has loads of useful documentation. Especially useful references include the tutorial and the module index.

Course Work

This course and its associated lab count for a total of 1.25 credits. Therefore, you are expected to spend an average of roughly 12.5 hours/week on this course. A rough indication of how that time should be allocated across the various requirements follows.

Reading
Please do the assigned reading (see schedule) before class. Anything from the required reading, even if not directly discussed in class, is fair game for the homework and exams. (≈ 1 hour/week)
Class
You are expected to come to class and to actively participate, including answering questions and completing other in-class activities. (≈ 3 hours/week)
Lab
To complete this course, you must also sign up for a 2-hour weekly laboratory section. Labs are designed to be completed during the lab period. Please note that lab is a separate course with a separate grade and (for many of you) a different instructor. The policies of lab may differ from the policies of this course. Your lab instructor will provide you with more information about his/her grading policies, etc. on or before the first meeting. (≈ 2 hours/week)
Homework
There are weekly homework assignments, typically due the following week Thursday night. Homework takes the concepts introduce in class and practiced in lab and pushes you to apply them to even more challenging problems. (≈ 6 hours/week, less during exam weeks)
Exams
There will be four cumulative exams evenly spaced throughout the semester (roughly every 4 weeks). These exams are to completed individually; absolutely no collaboration is allowed. All midterms will be held in class. The exam dates are on your section schedule. If you have a conflict with the scheduled exam time, you are expected to notify your instructor as soon as possible, at least one week prior to the exam. (≈ 2 hours per exam week for additional studying beyond completing the homework, which will also help prepare you for the exams)

Grading

An outline of the composition of your final grade is as follows. Grading is on an absolute scale (i.e., no curve). Note that the lab grade is separate and will be provided in the lab syllabus.

Coursework Portion of grade
Class participation 5%
Homework 45%
Mid-term exams (3, equally weighted) 30%
Final exam 20%

Final course grades are determined as follows. As a general rule, fractions are rounded down (e.g., an 89.9 is a B+, not an A-). A grade of A+ is awarded when the student demonstrates truly exceptional performance and is not simply determined by having a high final course grade.

Letter Grade Percent Grade
A+ *
A  ≥  93
A- 90 - 92
B+ 87 - 89
B 83 - 86
B- 80 - 82
C+ 77 - 79
C 73 - 76
C- 70 - 72
D+ 67 - 69
D 63 - 66
D- 60 - 62
F  <  60

To pass the course, you must pass the final exam.

Policies

Academic honesty and collaboration
You are expected to abide by Colgate's academic honor code. Collaboration (i.e., discussing the problem and possible solutions) while working on assignments is fine, but the work you submit must be your own. Roughly speaking, it is okay to share ideas but it is not okay to share any artifacts (code, write-up, etc.). Here is a good way to think about it: you and a classmate can get together, discuss ideas, and even write some code. However, you are expected to leave that meeting with nothing – no notes and certainly no code – and write up your own solution. If you do collaborate, please include a note with any submitted work that states clearly with whom you collaborated. Failing to acknowledge your collaborators can be considered a violation of the honor code.
Late homework
The concepts in this course build on one another, so once a student gets behind,it becomes increasingly harder to keep up. For this reason, late homework is penalized severely. Homework submitted within the first 24 hours after the deadline will lose a full letter grade; within 24-48 hours, two letter grades. Homework submitted after 48 hours may receive zero credit. If you find yourself in this situation, contact the instructor to arrange an office hour visit.
Unexpected circumstances
If unexpected circumstances arise that could impact your involvement in the course (inability to attend class, complete the homework on time, etc.), please let me know as soon as possible so that we may design appropriate accommodations. Usually these accommodations will be made in consultation with your administrative dean.

Getting Help

A key to your success at Colgate, and in life in general, is figuring out what resources are available and using them to help you achieve your goals. For any homework problems or other class-related questions that you have, there are several options for getting help. Please take advantage of these opportunities!

  1. See instructor during office hours.
  2. Form a study group with other students in the class and work together on a regular basis (note the collaboration policy above).
  3. See CS student tutors during Open Lab hours.
  4. Post a question on Moodle Forum.

It's worth reading "How to Study CS", written by Prof. Stratton, as you may find that computer science is unlike other disciplines that you've encountered.

In addition, please be aware of the great resources that Colgate provides.

Academic Support and Disabilities Services; Lynn Waldman, Director.
If you feel you may need an accommodation based on the impact of a disability, you should contact your instructor privately to discuss your specific needs. If you have not already done so, please contact Lynn Waldman, Director of Academic Support and Disability Services at 315-228-7375 in the Center for Learning, Teaching, and Research. Ms. Waldman is responsible for determining reasonable and appropriate accommodations for students with disabilities on a case-by-case basis, and more generally, for ensuring that members of the community with disabilities have access to Colgate's programs and services.  She also assists students in identifying and managing the factors that may interfere with learning and in developing strategies to enhance learning.  
Counseling Center
College life can sometimes get bumpy; if you are experiencing emotional or personal difficulties, the Counseling Center offers completely confidential and highly professional services.
NASC Liaison Group
The NASC Liaison Group is a group of natural science and mathematics professors dedicated to providing science-interested students from underrepresented groups with mentorship, motivation, and individualized support. To find out more about the group or to contact a member, visit the NASC division webpage. Prof. Fourquet, one of the COSC 101 instructors, is a member of this group.
SOURCe
Student Operated User Resource Center offers peer support and expertise related to computer and technology. Located in Case-Geyer the team assists with problems concerning email, internet, and public access computers on campus.