wlu.pngCS 112, Fundamentals of Programming II

Winter 2011

Dr. Joshua Stough , Parmly 408

MWF 11:15-12:10, Th 9:05-12:10
Office Hours: tba
stoughj@wlu.edu, x8811 or (919) 357-0604 (txt welcm)
Parmly 405
www.eg.bucknell.edu/~jvs008/teaching/CS112W11/CS112W11.html

 

Course Schedule  

Sakai Website 
 

Overview
In this course we are concerned with the efficient interaction with and manipulation of collections of stuff.  Certain ways of organizing data, and certain ways of interacting with data are somehow inherently better given the circumstances, so that this course will teach you advanced (read: good) programming concepts.  Abstract data types and Object-oriented programming, and efficient data structures, including queues, stacks, trees and maps. Analysis of algorithms, including worst-case, average-case, and amortized analysis. Extensive practice in implementing/manipulating these data structures in Python. This course is a prerequisite for most higher level courses in Computer Science.

Time Commitment
During the course of CS 112, you will implement and utilize advanced data structures. This can be a time-consuming process. Expect to spend 10-15 hours per week outside of class in this course.  There will be two short quizes per week, If you do not have this kind of time available to work on CS 112, you may want to wait and take it in a later term.

Textbook (required)
Ken Lambert, Fundamentals of Python.  In this special circumstance, this book is provided to you FREE.  However, you will not share this text with anyone outside of the course.  You and I shall consider I shall consider it an honor violation to do so.  Each chapter is a password-protected pdf available under Resources on the Sakai website for this course.

Attendance, Grading, Late Assignments
  1. Attendance is required.
  2. Grading breakdown: Exams 40% (2 x 10, 1 x 20),  Assignments 40%, Quizes 10%, Attendance and Participation 10%.
  3. Late Assignments lose 10, 15, 25, 25, 25% for each additional day late (no credit on the fifth day).  This scale may be delayed given the severity of your circumstances and my being informed of them in a timely manner.
Assistance from others, group work, etc.
Computer Science is a difficult subject to learn on your own (like many others).  Talking through problems with mentors and peers can be an exceptional learning tool.  However, this sort of collaboration can also be quite dangerous, as you may be underprepared to be tested on your own.  Thus, here are my guidelines for appropriate collaboration, in order to better help you learn.  Conduct in gross violation of these guidelines will be considered a breach of trust.  In the below, an implementation refers to a detailed explanation (such as code) of the programming structures and object interactions for solving a problem.