CSC111 Class Page 2015
--D. Thiebaut (talk) 15:00, 13 January 2015 (EST)
Week 1 Jan 26 |
Topics: Introduction, Python, Idle, Piazza, Moodle submission Lab/Hw Reading - Monday
- Syllabus
- Introduction to CSC111
- Lecture notes
- Wednesday
- Introduction to Idle, the integrated development environment (IDE) for the class
- Playing with our programming language, Python. The idea this week is to use intuition to put some Python code together and make it generate different outputs
- We will use these concepts, that will be covered in details starting next week.
- variables
- strings of characters
- loops
- Introduction to the Lab (Wednesday and Thursday afternoon)
- Lecture notes
- Friday
- Review of Lab 1
- Introduction to Homework 1, Q&A
- Go over a few problems, and understand how the def statement works.
- Variables
- Rules for labeling a variable
- CamelCase for regular variables, uppercase for constants
- Thinking of a variable as a box, or drawer.
- Variables can switch contents
- Lecture notes
- Lab #1 Prep.
- Lab #1
- Homework #1, due 2/3/15 at 11:55 p.m.
- Lecture notes
- Read Chapter 1 in Zelle (textbook)
- Monday
Week 2 Feb 2 |
Topics: Chapter 2: variables, definite loops, input Lab/Hw Reading - Monday: snow day!
- Wednesday
- Variables: simultaneous assignment
- Where do variables live?
- Programming: from problem to solution: an iterative process
- definite loops:
- looping through items in a list
- the range() function: allows iteration through various lists of numbers
- Input: getting information from the user (keyboard)
- Lecture notes
- Friday
- Julia Edwards and Marina Cheng, on Smithies in CS. Their presentation is available here.
- eval(input( "Enter number" ) ) vs input(eval( "Enter number" ))
- Programming Examples (see lecture notes)
- Lecture notes
- Lab #2
- Homework #2, due 2/10 at 11:55 p.m.
- Read Chapter 2 in Zelle.
Week 3 Feb 9 |
Topics: Arithmetic operators, math functions, main(). Lab/Hw Reading - Monday 2/9
- 4 minutes from Grier's video: When computers were human. Start at time=28m12s.
Women at work tabulating during World War II (Shorpy)
- Program organization: from now on, we will be using a main() function.
- Operators: * / + - ** // % abs()
- The type() function
- tellerMachine.py example.
- Formatting numbers (see Section 5.8.2 in Zelle), and example program
- Wednesday 2/11
- Accumulating results: summing up numbers, computing the factorial of a number.
- Programs developed in class
- Friday 2/13
- Review of Lab 3
- Introduction to Homework 3
- What are bits?
- Chapter 3 in Zelle.
- Lecture notes
- Additional lecture notes (Friday)
This section is only visible to computers located at Smith College
Week 4 Feb 16 |
Topics: Lists, Strings, Mutable vs. Immutable lists. File Processing. Lab/Hw Reading - Monday
- Introduction to indexing in strings and lists.
- Introduction to slicing strings (and list)
- Lecture notes
- Wednesday: Rally Day, no class, no labs.
- Thursday: no labs.
- Friday
- Strings an Lists, continued
- Strings are immutable. Lists are not.
- Introduction to the concept of objects and methods: String methods
- Lecture notes
- Homework #4
- No Labs this week (because of Rally Day), but there is a Preparation page for the Homework (think of it as a lab to do on your own, and solution programs will be available).
- Chapter 5 in Zelle.
- Monday
Week 5 Feb 23 |
Topics: Lab/Hw Reading - Monday: 2/23
- Files (End of Chapter 5)
- Functions (Chapter 6)
- Passing parameters to functions
- An example of a Python Utility with Functions
- Lecture notes
- Wednesday:2/25
- Passing parameters to functions
- Functions returning values
- Programs developed in class
- Friday: 2/27
- Functions that return values
- Writing a program that generates "personalized" poems (quotes?) for everybody in the class. (This program is available on Moodle, as it contains private information)
- Lecture notes
- Lab #5, due 2/27 at 11:00 a.m.
- Homework #5, due 3/3 at 11:55 p.m.
- Chapter 6 in Zelle: Functions
Week 6 Mar 2 |
Topics: Lab/Hw Reading - Monday 3/2
- Boolean operators: < <= > >= != ==
- The if statement
- if / if else
- Making decisions in Python
- Teller machine program ready for if-statements
- Exercises
- Lecture notes
- Wednesday 3/4
- Practicing with functions
- Continuation of if-statements
- Lecture notes
- Programs developed in class
- Friday 3/6
- Continuation of if-statements: Boolean Operators
- On the Turing Test and Eliza
- Lecture notes and addition.
- Homework #6
- Lab #6 will be given out in class, and is a series of review questions to prepare for the midterm. You can find it on this page.
- Finish reading Chapter 6 (functions) in Zelle.
- Read Chapter 7 (If statements) in Zelle.
Week 7 Mar 9 |
Topics: Lab/Hw Reading - Monday 3/9
- While Loops
- Graphics
- Wednesday 3/11
- In Class Midterm (closed books, closed computers)
- Friday 3/13
- Loops and more...
- Lab #7
- No Homework 7 this week.
- Indefinite loops are covered in Chapter 8.
- Graphics is covered in Chapter 4.
Week 8 Mar 16 |
Topics: Lab/Hw Reading - SPRING BREAK
Week 9 Mar 23 |
Topics: Lab/Hw Reading - Homework
- Lab
Week 10 Mar 30 |
Topics: Lab/Hw Reading - Homework
- Lab
Week 11 Apr 6 |
Topics: Lab/Hw Reading - Homework
- Lab
Week 12 Apr 13 |
Topics: Lab/Hw Reading - Homework
- Lab
Week 13 Apr 20 |
Topics: Lab/Hw Reading - Homework
- Lab
Week 14 Apr 27 |
Topics: Lab/Hw Reading - Homework
- Lab
Links and Resources
Zelle's Graphics Library
- The library can be found here
On-Line Python books
- disocovermagazine.com blog. Check out the answers posted by many readers. They contain some interesting links that you may find useful!
Python keywords
- The list of all the reserved words of the Python language
- and del for is raise assert elif from lambda return break else global not try class except if or while continue exec import pass yield def finally in print.
Python Programs in Textbook
- All the programs of Zelle's Python textbook
Misc
- If you decide to work in pairs for the homework assignments, you need to follow the protocol for 'pair programming' as discussed in this article.
- Video talks on Python:
- a video of digital horses: what we can do with lists of objects!