Computer Science 111

Fundamentals of Programming I


General Information

Instructor Dr. Kenneth A. Lambert
Office Parmly Hall 406
Phone 458-8809
email lambertk@wlu.edu
Home page http://home.wlu.edu/~lambertk/
Lecture

M/W/F 8:30 AM-9:30 AM, Parmly 405

Lab

T 8:30-11:30, Parmly 405

Office Hours

M/W/F 9:30-10:30 AM, 1:30-2:30 PM, or by appointment


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 weekly programming projects, weekly quizzes, and a comprehensive final exam.

 


Course Objectives

After taking this course, you should be able to


Readings

The following textbook is required:

Lambert, Fundamentals of Python: First Programs, Second edition (Course Technology, 2019, ISBN-13: 978-1-337-56009-2). Fundamentals of Python: First Programs

 

 



Grading

The written work for the course will consist of

Programs turnin in with syntax errors will receive no credit. A failing grade on the final exam will entail a failing grade for the course.


Attendance and Classroom Etiquette


Final Exam Policy

The final exam for this course will be given during the final exam week. You can take this exam during any of the regularly scheduled exam periods that week. You must supply an exam envelope to the instructor or the department administrative assistant no later than noon on the last day of class. You must specify a provisional day and time on the envelope, which you are free to change on the clipboard provided outside the door of Parmly 407 any time that week. Email or phone requests to reschedule will not be accepted.

The exam will be given in Parmly 405, and you should arrive promptly before the appointed time. If you are more than 15 minutes late, you will have to reschedule your exam. If you are more than 15 minutes late to the last exam period on Friday morning, you will receive a grade of 0 on your exam.

Students who have approved academic accommodations must make arrangements to use those accommodations directly with the instructor no later than the last day of class. Students approved for extra time will receive that time at the tail end of the morning exam period or before the beginning of the afternoon exam period (for example, ending at 1:30 PM for a morning exam or beginning at 12:30 PM for an afternoon exam). Students approved for a low-distraction testing location should reserve that space during the last week of classes (following instructions distributed by Director of Disability Resources Lauren Kozak.


Academic Integrity

The quizzes and the final exam should be written individually and pledged.

Although you may discuss programming problems among yourselves, your programs should be your own work, unless otherwise specified (as when you do pair programming). You MAY use code from the PowerPoint slides or from the textbook for the course. Otherwise, you may NOT use the work of your classmates, former students, friends, or anyone else in writing your programs. By "use" I mean turning in the work of others as your own, or even casting your eyes upon the work of others with a view to incorporating their solutions into your own. Deliberate concealment of sources constitutes plagiarism and will result in a failing grade for the course and a report to the EC. Deliberately providing solutions to other students, either verbally or in writing, via hardcopy or electronic transmission, will result in a failing grade for the course and a report to the EC. In particular, you may not share your work until the deadline to hand in material has passed. Please familiarize yourself with W&L’s policy on plagiarism.


Accommodations

Washington and Lee University makes reasonable academic accommodations for qualified students with disabilities. All undergraduate accommodations must be approved through the Title IX Coordinator and Director of Disability Resources, Elrod Commons 212, (540) 458-4055. Students requesting accommodations for this course should present an official accommodation letter within the first two weeks of the 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 must be arranged with the professor at least a week before the date of the test or exam, including finals.


Tentative Schedule

Monday

Tuesday

Wednesday

Friday

Sept 3
Week 0
 

 

 

Introduction

Chapter 1

Sept 10
Week 1

Overview of the programming process

Chapter 1

Lab 1

First programs

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

Chapter 2  

The software development lifecycle

Sept 17
Week 2

Control: definite iteration

Chapter 3

Lab 2

Simple loops

Control: if statements and selection

Chapter 3

Control: conditional iteration

Chapter 3

Sept 24 Week 3

Strings

Chapter 4

Lab 3

Conditional loops

Number systems

Chapter 4

Working with files

Chapter 4

Oct 1
Week 4

Defining simple functions

Chapter 5

Lab 4

Files

Working with lists

Chapter 5

Case study: a sentence generator program

Chapter 5

Oct 8
Week 5

Working with dictionaries

Chapter 5

Lab 5

Text processing

Case study: the Doctor program

Chapter 5

No lecture:

Reading day

Oct 15
Week 6

Top-down design

Chapter 6

Lab 6

Non-directive psychotherapy

Default and optional parameters

Chapter 6

Recursive functions

Chapter 6

 

Oct 22
Week 7

Higher-order functions

Chapter 6

Lab 7

Functions

Graphics

Chapter 7

No lecture:

Reading day

Oct 29
Week 8

Graphics

 

 

Lab 8

Graphics

Object-based programming

 

Image processing

Chapter 7

Nov 5
Week 9

Image processing

 

 

Lab 9

Images

GUI programming

Chapter 8

breezypythongui

 

GUI programming

 

 

Nov 12
Week 10

GUI programming

 

Lab 10

GUI programming

Defining Classes

Chapter 9

Model/View/Controller Design Pattern

Chapter 9

Nov 26
Week 11

Data persistence

Chapter 9

Lab 11

Defining Classes

Searching

Chapter 11

Networks

Chapter 10

 

Dec 3
Week 12

Networks

Lab 12

Networks

Sorting

Chapter 11

 

Conclusion


Presentations

1-Introduction

2-Overview of Programming

3-Basic Elements: Input, Computations, Output

4-The Software Lifecycle

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

11-Introduction to Programmer-Defined Functions

12-Sequences: Lists

13-Generating Sentences

14-Dictionaries and the Doctor Program

15-Design with Functions

16-Default and Optional Parameters and Higher-Order Functions


Programming Projects

All Projects (Sakai site)


Links of Interest

Coding General Methods

The breezypythongui Site

Downloading Python

Python Documentation

Python Books

Wikipedia's List of Colors

PageTutor's ColorPicker 3.1