wlu.pngCS 111 (W '13), Fundamentals of Programming I

Winter 2013

Dr. Joshua Stough , Parmly 408

Lecture: MWF 1:25-2:20
Lab: Tu 2:30-5:35
Office Hours: M 3:30-, F 10-12, or ANYTIME
stoughj@wlu.edu, x8811 or (919) 357-0604 (txt welcm)
Location: Parmly 405
www.eg.bucknell.edu/~jvs008/teaching/CS111W13/CS111W13.html

 

Course Schedule - the most important website for the course

Sakai  


Overview

The two major learning objectives of this course are first, to know how to develop algorithms to solve problems, and second, to know how to program these algorithms efficiently in the Python programming language. An algorithm is a means of solving a problem in a deterministic, reproducible, "thoughtless" fashion.  While coming up with an algorithm is anything but thoughtless, an algorithm's execution takes no more than simple arithmetic, logic, and memory, commodities in great supply in a computer. We will express our algorithms in English, then translate them into the Python programming language. During the course, you will learn how to use loops, conditionals, functions, data structures such as lists and dictionaries, and classes. These are the building blocks which we will use to create increasingly complex programs. This course begins the Computer Science major.

Time Commitment
During the course of CS 111, you will be learning not only a new paradigm for problem solving, but also a language for expressing those solutions. 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 111, you may want to wait and take it in a later term.

Textbook (required)
Ken Lambert, Fundamentals of Python: First Programs.
Available at the bookstore or online.   The book website, including example programs, is here.

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.