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:
You would be failing to engage in the authentic learning and mastery of the academic material and thus harming your own education
You would be reducing the enjoyment of accomplishments earned through genuine effort.
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.
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%