wlu.pngCS 112, Fundamentals of Programming II

Fall 2010

Dr. Joshua Stough , Parmly 408

MWF 10:10-11:05, Th 9:05-12:10
Office Hours: M 3:30-5, or drop-in
stoughj@wlu.edu, x8811 or (919) 357-0604 (txt welcm)
Parmly 405
www.eg.bucknell.edu/~jvs008/teaching/CS112F10/CS112F10.html

 

Course Schedule  

Sakai Website 
 

Overview
The major objective of this course is to provide you with tools for advanced programming. Abstract data types and efficient data structures, including queues, stacks, and trees. 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. 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 50% (2 x 10, 1 x 30),  Assignments 40%, 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.