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

Fall 2013

Dr. Joshua Stough , Parmly 408

Lecture: MWF 11:15-12:10
Lab: Tu 9:05-12:10 or 2:30-5:35
Office Hours: M 3:30-, W 2-3, or ANYTIME
stoughj@wlu.edu, x8811 or (919) 357-0604 (txt welcm)
Location: Parmly 307
www.eg.bucknell.edu/~jvs008/teaching/CS111F13/CS111F13.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.

This term we will be using Piazza for class discussion. The threaded discussion forum is catered to getting you help fast and efficiently from classmates, the TAs, and myself. Rather than emailing questions to me or other students, I encourage you to post your questions on Piazza. Find our class page at: https://piazza.com/wlu/fall2013/csci111/home.

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. An assignment is late if I do not have the submission when I start grading.  A late assignment is worth half the points up to one week after I grade, zero points after that.  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.