Computer Science 111
Fundamentals of Programming I
General Information
Instructor | Dr. Simon D. Levy |
Office | Parmly Hall 407B |
Phone | 458-8419 |
simon.d.levy@gmail.com | |
Home page | https://simondlevy.academic.wlu.edu/ |
Lecture | MWF 2:45-3:45 PM, Parmly 405 |
Lab | Thurs 1:30-4:30, Parmly 405 |
Office Hours | MWF 10:45-11:45, MW 3:45-4:45, and by appointment. I’m usually in my office outside of class time and lunchtime. |
Brief Overview
This is an introductory course in programming and problem solving. Topics include
- the design and implementation of algorithms for solving problems
- an introduction to syntax, semantics, and pragmatics of the Python programming language
- a survey of various types of programming applications such as numerical computation, text processing, graphics, image processing, and networking
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
- apply your problem solving skills and knowledge of data structures to a wide variety of computational problems
- understand the syntax and semantics of the Python programming language
- describe a program’s functionality in plain English
- detect, diagnose, and fix errors in a program, using systematic testing and debugging techniques
- understand the ethical and historical context of computing
- undertake further study of computer science
Readings
The following textbook is required:
Lambert, Fundamentals of Python: First Programs , 2nd Edition (Course Technology, 2018, ISBN-13: 978-1337560092).
Grading
The written work for the course will consist of
- Programming projects (50% of the grade)
- Three hourly exams (30% of the grade)
- A comprehensive final exam (20% of the grade)
- Programming projects (labs) are due in your Sakai dropbox at 11:59PM Monday. Programs turned in with syntax errors will receive no credit.
The grading scale will be 93-100 A; 90-92 A-; 87-89 B+; 83-86 B; 80-82 B-; 77-79 C+; 73-76 C; 70-72 C-; 67-69 D+; 63-66 D; 60-62 D-; below 60 F.
Attendance and Other Policies
- It is very important that you attend lectures. There will be considerable information given in class that is not available elsewhere.
- Attendance in lab is required.
- Prompt arrival at labs and lectures is expected.
- The use of laptops and mobile computing devices is permitted during class so long as they are being used for the course such as for taking notes and locating information related to the course. These devices are not to be used during class for texting, phone calls, reading email, social networking, completing assignments for other courses, or shopping.
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.
Final Exam
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 Dean Price (sophomores, juniors or seniors) or Director of Disability Resources Lauren Kozak (first-years).
Schedule
Monday | Wednesday | Thursday | Friday | ||
02 Sept Week 0 |
Lab 1 | Introduction
Chapter 1 |
|||
09 Sep Week 1 |
Overview of the programming process
Chapter 1 |
Data types, literals, variables, expressions, and I/O
Chapter 2 |
Lab 2 | The Software Development Lifecycle | |
16 Sep Week 2 |
Control: definite iteration
Chapter 3 |
Control: if statements and selection
Chapter 3 |
Lab 3 | Control: conditional iteration
Chapter 3 |
|
23 Sep Week 3 | Strings
Chapter 4 |
Number systems
Chapter 4 |
Lab 4 | Working with files
Chapter 4 |
|
30 Sep Week 4 |
Defining simple functions
Chapter 5 |
Working with lists
Chapter 5 |
Lab 5 | First hourly exam | |
07 Oct Week 5 |
Lists and functions
Chapter 5 |
Working with dictionaries
Chapter 5 |
Reading day | Reading day | |
14 Oct Week 6 |
Top-down design and recursive functions
Chapter 5 |
Default and optional parameters / higher-order functions Chapter 6 |
Lab 6 | Managing the namespace
Chapter 6
|
|
21 Oct Week 7 |
Graphics
Chapter 6 |
Graphics
Chapter 7 |
Lab 7 | Graphics
Chapter 7 |
|
28 Oct Week 8 |
Object-based programming
Chapter 7
|
Image Processing
Chapter 7 |
Lab 8 | Second hourly exam | |
04 Nov Week 9 |
GUI programming
Chapter 8
|
GUI programming
Chapter 8
|
Lab 9 | Defining classes
Chapter 9
|
|
11 Nov Week 10 |
Defining classes
Chapter 9 |
Defining Classes
Chapter 9 |
Lab 10 | Review for Exam | |
18 Nov Week 11 |
Third hourly exam | Networks and client/server programming
Chapter 10 |
Lab 11 | Persistence | |
02 Dec Week 12 |
Networks | Searching
Chapter 11 |
Lab 12 | Sorting
Chapter 11 |
Presentations
Basic Elements: Input, Computations, Output
The Software Development Lifecycle
Definite Loops: The for Statement
Indefinite Loops: The while Statement
Study to here for Exam #1
Introduction to Programmer-Defined Functions
Default Parameters and Higher-Order Functions
Advanced Turtle Graphics: Recursive Patterns in Art and Nature
Introduction to Object-Based Programming
Study to here for Exam #2
Introduction to Digital Image Processing
Introduction to Graphical User Interfaces
Programmer-defined Classes (part 1)
Programmer-defined Classes (part 2)
Programmer-defined Classes (part 3)