CS 119 Foundations of Computer Science
Spring 2016

Dr. Jill Zimmerman
office: JR 11111112
phone: 410 337-6227
email: jill.zimmerman at goucher.edu
http://phoenix.goucher.edu/~jillz

Office Hours:
        12:30 - 1:30 M,Tu,F
         others by appointment or drop in

Class web page: http://phoenix.goucher.edu/~jillz/cs119

Course Description and Goals: We will study major elements of computer science. Topics include recursion, induction, introduction to computational complexity, procedural abstraction and data abstraction and basic data structures.

Course Objectives:

Course Mechanics:

Instead of a traditional lecture approach, you will be presented with questions which will generate class discussions.  We will be using socrative.com (room 44772) where you will each "vote" on an answer.  Prior to the vote you will have a short time to work through the question by yourself, followed by a longer period of time in discussion with a partner.  Try to convince your partner of your answer if you disagree!

I employ active learning in my classroom.  The majority of class time will be spent on ungraded activities and graded lab assignments using pair-programming. You will be assigned various partners throughout the semester for the pairs. The requirements and responsibilities of pair-programming are outlined in this video.  You will be penalized on the points awarded on a lab assignment for not meeting your obligations to your partner and may be forced to work on a lab assignment independently.  If the unexpected should happen and you must miss or be late for a lab session, you must contact me promptly concerning this absence. The labs are where a lot of the learning is happening so you need to be prepared to participate in them fully.  

You and your partner will submit a single lab assignment for the pair. This work will not be accepted late.

Short (10-15 minute) quizzes will be given periodically. The lowest quiz score will be dropped and no make-ups will be given.

Academic Dishonesty:  

Turning in work that was produced from someone outside of you and your programming partner is cheating and will be subject to an Honor code violation.  
 I will give you a lot of opportunity to collaborate with your fellow students and ask me for assistance but if you violate that trust and cheat by submitting work that is not your own you will be hurting yourself and others in the following ways:

  1. You would be failing to engage in the authentic learning and mastery of the academic material and thus harming your own education

  2. You would be reducing the enjoyment of accomplishments earned through genuine effort.

  3. You would be creating an environment of broken trust, which then limits the ability of students and students and faculty to work together meaningfully and collaboratively.

  4. You would be harming your reputation and face serious consequences.

Course Schedule:

Topics Due Date
Expressions, Functions, and the
Substitution Model - Lab 1
Feb 1
Linear Recursion - Lab 2A Feb 8
Quiz 1 Feb 8
Induction - Lab 2B Feb 15
Tail Recursion - Lab 2C Feb 18
Quiz 2 Feb 22
Orders of Growth - Lab 3 Feb 25
Higher Order Functions - Lab 4 Feb 29
Exam 1 Mar 3
Currying and Parial Application - Lab 5 Mar 7
Data Types - Lab 6 Mar 10
Quiz 3 Mar 24
Lists - Lab 7 Mar 28
Trees - Lab 8 Apr 4
Quiz 4 Apr 4
Abstract Data Type : Sets -Lab 9 April 11
Abstract Data Type : Queue and Stack - Lab 10 Apr 14
Abstract Data Type : Bags - Lab 11 Apr 18
Exam 2 Apr 18
Monads - Lab 12 Apr 28
Final TBA

Grading:
Your course grade will be based on the following:
        Quizzes 10%
        2 Exams (20% each)  40%
        Comprehensive Final  20%
        Labs  30%