wlu.pngCS 112, Fundamentals of Programming II

Fall 2009

Dr. Joshua Stough , Parmly 408

MWF 10:10-11:05, T 9:05-12:10
Office Hours: M 4-5, T 4-5, F 1-3
stoughj@wlu.edu, x8811 or (919) 357-0604 (txt welcm)
Parmly 413/404
www.cs.wlu.edu/~stough/teaching/CS112F09/CS112F09.html

 

Sakai login page.

Course Schedule  
 

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, ISBN: 1-4239-0218-8, available through amazon.

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.