CS
112,
Fundamentals
of Programming II
Winter 2011
|
|
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
- Attendance is required.
- Grading breakdown: Exams 40% (2
x
10,
1 x 20), Assignments 40%,
Quizes 10%, Attendance and Participation 10%.
- 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.
- I will defer to
the Counseling Center (see here).
- If you have an athletic event and will not be able to make a
deadline, you should tell me within a day of an assignment being
posted.
- Accomodations for qualified disabilities requires written
notfication in conjunction with Student Academic
Support (see here or call
458-8754).
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.
- Your only sources for this course should be the book, links I
provide to you through the schedule, others in the course with you, and
me.
- Do not use other online materials. It is likely that coded
solutions to many of the homeworks are readily available on the
web. However, this material obviously constitutes implementation
details.
- I encourage you to discuss with each other broad solutions to
problems on assignments. However, when you sit down to code your
solution, it should be your work. Please acknowledge aid received
from other students. It will have no effect on my grading, and it
is the honorable thing to do.
- Do not compare code or implementation details with other
students before you have completed and submitted your work.
Discuss such detailed information only with me--I
am happy to discuss details and look at your code, and I will not count
it against you at all. I have found that in the vast majority of
non-typo cases, the mental exercise of running sample data through your
code illuminates the issue and leads to better understanding on your
part. Ignoring this exercise for convenience will hurt you. I
will help you with this exercise.
- After completing the assignment, feel free to discuss any aspects
of the assignment, including implementation details.