Computer Science 111

Fundamentals of Programming I


General Information

Instructor Dr. Simon D. Levy
Office Parmly Hall 407B
Phone 458-8419
email simon.d.levy@gmail.com
Home page http://home.wlu.edu/~levys/
Lecture

M/W/F 9:05 AM-10:00 PM, Science Center G14

Labs

T 9:05-12:10, Parmly 405

T 2:30-5:35, Parmly 405

Office Hours

Daily 11-12, 2:30-3:30 or by appointment. I'm usually in my office outside of classtime and lunchtime.


Brief Overview

This is an introductory course in programming and problem solving. Topics include

Classroom work will consist of lecture, discussion, and lab experimentation. Written work will consist of several programming projects and exams.

 


Course Objectives

After taking this course, you should be able to


Readings

The following textbook is required:

Lambert, Fundamentals of Python: First Programs (Course Technology, 2012, ISBN-13: 978-1-111-82270-5). Fundamentals of Python: First Programs

 

 



Grading

The written work for the course will consist of


Attendance and Other Policies


Academic Integrity

Programming projects, homework exercises, and exams should be written individually. It is extremely simple to tell when someone has copied someone else's program. Deliberate concealment of sources constitutes plagiarism and will result in a failing grade for the course and a report to the EC. You are better off turning in nothing than turning in someone else's work.


Accommodations

Washington and Lee University makes reasonable academic accommodations for qualified students with disabilities. All undergraduate accommodations must be approved through the Office of the Dean of the College. Students requesting accommodations for this course should present an official accommodation letter within the first two weeks of the (fall or winter) term and schedule a meeting outside of class time to discuss accommodations. It is the student's responsibility to present this paperwork in a timely fashion and to follow up about accommodation arrangements. Accommodations for test-taking should be arranged with the professor at least a week before the date of the test or exam.


Tentative Schedule

Monday

Tuesday

Wednesday

Friday

07 Sept
Week 0
     

Introduction

Chapter 1

14 Sep
Week 1

Overview of the programming process

Chapter 1

Lab 1

First programs

circle.py

Data types, literals, variables, expressions, and I/O

Chapter 2  

GUI Programming

breezypythongui

21 Sep
Week 2

Control: definite iteration

Chapter 3

Lab 2

circle project

Simple loops

Control: if statements and selection

Chapter 3

Control: conditional iteration

Chapter 3

28 Sep Week 3

Strings

Chapter 4

Lab 3

game.py

Conditional loops

Number systems

Chapter 4

Working with files

Chapter 4

05 Oct
Week 4

Defining simple functions

Chapter 5

Lab 4

testfile.txt

Files

Working with lists

Chapter 5

First hourly exam

12 Oct
Week 5

Lists and functions

Chapter 5

Lab 5a

Sentence generation

generator.py

Working with dictionaries

Chapter 5

Reading day

19 Oct
Week 6

Case study: the doctor program

Chapter 5

Lab 5b

Non-directive psychotherapy



doctor.py

Top-down design and recursive functions

Chapter 6

Managing the namespace

Default and optional parameters

Chapter 6

 

26 Oct
Week 7

Higher-order functions

Chapter 6

Lab 6

Functions



myfunctions.py

Graphics

Chapter 7

Graphics

Chapter 7

02 Nov
Week 8

Object-based programming

Chapter 7

 

Lab 7

Graphics



project7.zip

Image processing

Chapter 7

Second hourly exam

09 Nov
Week 9

Image processing

Chapter 7

 

Lab 8

Images



project8.zip

Defining classes

Chapter 8

 

Defining classes

Chapter 8

 

16 Nov
Week 10

Defining classes

Chapter 8

Lab 9

Defining classes



project9.zip

Defining Classes

Chapter 8

Graphical User Interfaces

Chapter 9

30 Nov
Week 11

Third hourly exam

Lab 10

project10.zip

Networks and client/server programming

Chapter 10

Networks

07 Dec
Week 12

Networks

Lab 11

Networks

project11.zip

Searching

Chapter 11

Sorting

Chapter 11


Presentations

1-Introduction

2-Overview of Programming

3-Basic Elements: Input, Computations, Output

4-User Interfaces and GUI Programming

5-Definite Loops: The for Statement

6-Making Choices: if Statements

7-Indefinite Loops: The while Statement

8-Introduction to Strings

9-Number Systems

10-Text Files

Study to here for Exam #1


11-Introduction to Programmer-Defined Functions

12-Sequences: Lists

13-Dictionaries

14-The Doctor: An Application of Dictionaries

15-Design with Functions

16-Managing the Namespace

17-Default Parameters and Higher-Order Functions

18-Introduction to Graphics

19-Advanced Turtle Graphics: Recursive Patterns in Art and Nature

20-Introduction to Object-Based Programming

Study to here for Exam #2


21-Introduction to Digital Image Processing

22-More Image Transformations

23-Introduction to Programmer-Defined Classes

24-Common Methods: String Representation, Equality, Operators, and Comparisons

25-Data Modeling and Class Variables

26-Persistent Data and Object Serialization

27-The Model/View/Controller Pattern

Study to here for Exam #3


28-Networks and Client/Server Programming

29-Networks and Concurrency

30-Search Algorithms


Links of Interest

Practice Exam 1

Practice Exam 2

Practice Exam 3

The breezypythongui Site

Getting Started with Python in the Computer Science Lab

Remote Access to Your Computer Science Account

Errata in Fundamentals of Python

Python Information

Wikipedia's List of Colors

PageTutor's ColorPicker 3.1