Difference between revisions of "CSC111 Class Page 2015b"
(→ ) |
(→ ) |
||
(24 intermediate revisions by the same user not shown) | |||
Line 17: | Line 17: | ||
|} | |} | ||
<br /> | <br /> | ||
− | ::{| class="mw-collapsible | + | ::{| class="mw-collapsible " style="width:100%" border="1" |
|- style="background:#dddddd;" | |- style="background:#dddddd;" | ||
|width="60%"| '''Topics''': Introduction, Python, Idle, Piazza, Moodle submission | |width="60%"| '''Topics''': Introduction, Python, Idle, Piazza, Moodle submission | ||
Line 27: | Line 27: | ||
** Syllabus | ** Syllabus | ||
** Expectations | ** Expectations | ||
− | ** [http://cs.smith.edu/~jfrankli/111s08/pairProgramming2000.pdf Pair Programming] | + | ** [http://cs.smith.edu/~jfrankli/111s08/pairProgramming2000.pdf Pair Programming] \ |
::<center><videoflash>vgkahOzFH2Q</videoflash> | ::<center><videoflash>vgkahOzFH2Q</videoflash> | ||
** A feel for coding in Python | ** A feel for coding in Python | ||
Line 63: | Line 63: | ||
|} | |} | ||
<br /> | <br /> | ||
− | ::{| class="mw-collapsible | + | ::{| class="mw-collapsible" style="width:100%" border="1" |
|- style="background:#dddddd;" | |- style="background:#dddddd;" | ||
|width="60%"| '''Topics''': Chapter 2: variables, definite loops, input | |width="60%"| '''Topics''': Chapter 2: variables, definite loops, input | ||
Line 113: | Line 113: | ||
|} | |} | ||
<br /> | <br /> | ||
− | ::{| class="mw-collapsible | + | ::{| class="mw-collapsible" style="width:100%" border="1" |
|- style="background:#dddddd;" | |- style="background:#dddddd;" | ||
|width="60%"| '''Topics''': Arithmetic operators, math functions, main(). | |width="60%"| '''Topics''': Arithmetic operators, math functions, main(). | ||
Line 178: | Line 178: | ||
|} | |} | ||
<br /> | <br /> | ||
− | ::{| class="mw-collapsible | + | ::{| class="mw-collapsible " style="width:100%" border="1" |
|- style="background:#dddddd;" | |- style="background:#dddddd;" | ||
|width="60%"| '''Topics''': | |width="60%"| '''Topics''': | ||
Line 229: | Line 229: | ||
|} | |} | ||
<br /> | <br /> | ||
− | ::{| class="mw-collapsible | + | ::{| class="mw-collapsible " style="width:100%" border="1" |
|- style="background:#dddddd;" | |- style="background:#dddddd;" | ||
|width="60%"| '''Topics''': Functions, Files. | |width="60%"| '''Topics''': Functions, Files. | ||
Line 273: | Line 273: | ||
|} | |} | ||
<br /> | <br /> | ||
− | ::{| class="mw-collapsible | + | ::{| class="mw-collapsible " style="width:100%" border="1" |
|- style="background:#dddddd;" | |- style="background:#dddddd;" | ||
|width="60%"| '''Topics''': | |width="60%"| '''Topics''': | ||
Line 310: | Line 310: | ||
|} | |} | ||
<br /> | <br /> | ||
− | ::{| class="mw-collapsible | + | ::{| class="mw-collapsible " style="width:100%" border="1" |
|- style="background:#dddddd;" | |- style="background:#dddddd;" | ||
|width="60%"| '''Topics''': Processing Files | |width="60%"| '''Topics''': Processing Files | ||
Line 355: | Line 355: | ||
|} | |} | ||
<br /> | <br /> | ||
− | ::{| class="mw-collapsible | + | ::{| class="mw-collapsible " style="width:100%" border="1" |
|- style="background:#dddddd;" | |- style="background:#dddddd;" | ||
|width="60%"| '''Topics''': | |width="60%"| '''Topics''': | ||
Line 407: | Line 407: | ||
|} | |} | ||
<br /> | <br /> | ||
− | ::{| class="mw-collapsible | + | ::{| class="mw-collapsible " style="width:100%" border="1" |
|- style="background:#dddddd;" | |- style="background:#dddddd;" | ||
|width="60%"| '''Topics''': Exceptions, Classes, and Objects | |width="60%"| '''Topics''': Exceptions, Classes, and Objects | ||
Line 472: | Line 472: | ||
|} | |} | ||
<br /> | <br /> | ||
− | ::{| class="mw-collapsible | + | ::{| class="mw-collapsible " style="width:100%" border="1" |
|- style="background:#dddddd;" | |- style="background:#dddddd;" | ||
|width="60%"| '''Topics''': Image Processing | |width="60%"| '''Topics''': Image Processing | ||
Line 529: | Line 529: | ||
|} | |} | ||
<br /> | <br /> | ||
− | ::{| class="mw-collapsible" style="width:100%" border="1" | + | ::{| class="mw-collapsible " style="width:100%" border="1" |
|- style="background:#dddddd;" | |- style="background:#dddddd;" | ||
|width="60%"| '''Topics''': LAM, User Interface, Widgets, Button, digitizing and rendering a Map | |width="60%"| '''Topics''': LAM, User Interface, Widgets, Button, digitizing and rendering a Map | ||
Line 632: | Line 632: | ||
:* [http://cs.smith.edu/dftwiki/media/CSC111_2015b_Week13bNotes.pdf Lecture Notes] | :* [http://cs.smith.edu/dftwiki/media/CSC111_2015b_Week13bNotes.pdf Lecture Notes] | ||
---- | ---- | ||
+ | [[Image:CardDimensions2.jpg|right|150px]] | ||
* '''Wednesday''' | * '''Wednesday''' | ||
+ | :* Introduction to ''Class Inheritance'' | ||
+ | :* [[CSC111_Python_Programs_Fall_2015#Nov._30.2C_2015| Programs developed in class]] | ||
+ | :* [http://cs.smith.edu/dftwiki/media/CSC111_2015b_Week13bNotes.pdf Lecture Notes] | ||
+ | <br /> | ||
+ | <br /> | ||
+ | <br /> | ||
---- | ---- | ||
* '''Friday''' | * '''Friday''' | ||
+ | :* Continuation of the concept of Class Inheritance | ||
+ | :* Introduction to ''Polymorphism'' | ||
+ | :* [[CSC111_Python_Programs_Fall_2015#Nov._30.2C_2015| Programs developed in class]] | ||
+ | :* [http://cs.smith.edu/dftwiki/media/CSC111_2015b_Week13bNotes.pdf Lecture Notes] | ||
+ | |||
| | | | ||
* [[CSC111 Lab 12 2015b | Lab #12]] | * [[CSC111 Lab 12 2015b | Lab #12]] | ||
− | * Homework | + | * [[CSC111 Homework 12 2015b| Homework 12]] |
| | | | ||
* Chapter 11 on Lists of lists | * Chapter 11 on Lists of lists | ||
Line 662: | Line 674: | ||
|-valign="top" | |-valign="top" | ||
| | | | ||
+ | [[File:MinionBanana.jpg|right|100px]] | ||
* '''Monday''': | * '''Monday''': | ||
+ | :* Introduction to Recursion and Recursive Functions | ||
+ | :* Class exercise with a ''bunch of bananas''. Everbybody's a minion... | ||
+ | :* Finding a banana, recursively | ||
+ | :* [[CSC111_Python_Programs_Fall_2015#Nov._30.2C_2015| Programs developed in class]] | ||
+ | :* [http://cs.smith.edu/dftwiki/media/CSC111_2015b_Week14bNotes.pdf Lecture Notes] | ||
+ | <br /> | ||
+ | <br /> | ||
+ | <br /> | ||
+ | <br /> | ||
+ | <br /> | ||
---- | ---- | ||
+ | [[File:AnimatedTowersOfHanoi.gif|right]] | ||
* '''Wednesday''' | * '''Wednesday''' | ||
+ | :* [[CSC111_Homework_11_Samples_2015|A look at some of the Maps of HW 11.]] | ||
+ | :* Visiting a Maze | ||
+ | :* Fractal Trees | ||
+ | :* Revisiting the Towers of Hanoi problem | ||
+ | :* [[CSC111_Python_Programs_Fall_2015#Mon._12.2F07.2F15| Programs developed in class]] | ||
+ | :* [http://cs.smith.edu/dftwiki/media/CSC111_2015b_Week14bNotes.pdf Lecture Notes] | ||
+ | <br /> | ||
+ | |||
---- | ---- | ||
* '''Friday''' | * '''Friday''' | ||
+ | :* No Class! | ||
+ | :* [[CSC111 Wrapping Paper| A sample of wrapping paper styles...]] | ||
+ | <br /> | ||
+ | <br /> | ||
+ | <br /> | ||
+ | <br /> | ||
+ | <br /> | ||
| | | | ||
− | * Lab | + | * [[CSC111_Lab_13_2015b | Lab 13]] |
− | |||
| | | | ||
− | * | + | * Read Chapter 13 in Zelle. |
|} | |} | ||
Line 696: | Line 734: | ||
| | | | ||
− | * Final Exam | + | * [[CSC111 Final Exam 2015b|Final Exam]] |
| | | | ||
− | + | ||
|} | |} | ||
Latest revision as of 19:06, 24 January 2018
--D. Thiebaut (talk) 11:12, 24 August 2015 (EDT)
Week 1 Sept 7 |
Topics: Introduction, Python, Idle, Piazza, Moodle submission Lab/Hw Reading - Wednesday
- Syllabus
- Expectations
- Pair Programming \
- A feel for coding in Python
- Lecture Notes
- Friday
- Review of the lab
- Variables
- assignment,
- variable names
- camelCase notation
- Exercises
- Lecture Notes
- Preparation for Lab 1: you may want to do this before the first lab.
- Lab 1
- Homework 1
- Solution programs can be found at the end of the lab and homework pages
- Read Chapter 1 in Zelle (textbook)
- Read the article on Pair Programming
- Wednesday
Week 2 Sept. 14 |
Topics: Chapter 2: variables, definite loops, input Lab/Hw Reading - Monday: (Lecture presented by Prof. Joe O'Rourke)
- 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
- Wednesday
- Review & Prep for Lab 2
- Exercises
- Lecture Notes
- Programs developed in class
- Friday
- Numbers of the day:
- Printing, and the idea of emptiness: "" and []
- Programming exercises from the Lecture Notes
- Programs developed in class
- Lab 2
- Homework 2
- Solution programs can be found at the end of the lab and homework pages
- Read Chapter 2 in Zelle.
- Monday: (Lecture presented by Prof. Joe O'Rourke)
Week 3 Sept. 21 |
Topics: Arithmetic operators, math functions, main(). Lab/Hw Reading - Monday:
- Finish the grade program from Friday ( Programs developed in class)
- 4 minutes from Grier's video: When computers were human. Start at time=28m12s.
Women at work tabulating during World War II (Shorpy)
- Operators: * / + - ** // % abs()
- The type() function
- tellerMachine.py example.
- Formatting numbers (see Section 5.8.2 in Zelle), and example program
- Lecture Notes
- Programs developed in class
- Wednesday
- Review the tellerMachine.py program. Review a student's solution using a loop.
- Printing formatted integers and floats with the { } format.
- Review the bar-graph problem and use the { } format to print the box.
- Program organization: from now on, we will be using a main() function.
- int(), round(), float(), abs() ==> the idea of robustness
- Rule for all programs: add a blank line between input section and output section.
- Accumulating results in loops. Example: computing the average age of students in the class.
- Accumulating strings in a loop: Generage a string of 5 groups: "**--**--**"
- Programs developed in class
- Friday
- Monday's class will be on video... stay tuned to Piazza
- Example of Midterm Exam: Warning: some of the questions refer to material that hasn't be covered as of 9/25/15, but will have been covered by the time the test is administered.
- Back to Accumulating results: debugging a loop
- Debugging the program printing alternating patterns
- Review Challenge #7 from Lab 3
- Programs developed in class
- Lecture Notes & (exta)
- Lab 3
- Homework 3
- Solution programs can be found at the end of the lab and homework pages
- Read Chapter 3 in Zelle.
Week 4 Sept. 28 |
Topics: Lab/Hw Reading - Monday:
- Video class today. The class is covered in 3 different videos. Click on the video icons below, from left to right, please!
- Wednesday
- Review & Q&A
- Strings are immutable
- String methods
- On-line documentation: docs.python.orgs
- Exercises
- Programs developed in class
- Lecture Notes
- Friday
- Split()
- Functions
- Lecture Notes
- A video with some words about real numbers and why they behave strangely:
- Programs developed in class
- Lecture Notes
- Lab 4
- Homework 4
- Solution programs can be found at the end of the lab and homework pages
- Read Chapter 6 in Zelle
Week 5 Oct 5 |
Topics: Functions, Files. Lab/Hw Reading - Monday:
- Functions, review
- Functions returning values
- Exercises
- Writing robust programs: they don't crash!
- Lecture Notes
- Programs developed in class
- Wednesday
- Mountain Day?
- Friday
- Review: Functions, parameters, returned values
- Exercises
- Programs developed in class
- Lecture Notes
- We are still working with material from Chapter 6.
Week 6 Oct. 12 |
Topics: Lab/Hw Reading - Monday: Fall Break
- Wednesday
- Files: reading and writing text files
- Processing text information (playing with Sherlock)
- Lecture Notes
- Programs developed in class
- Friday: Midterm Exam
- Lab 6
- No homework this week
Week 7 Oct 19 |
Topics: Processing Files Lab/Hw Reading - Monday:
- Finish Dynamic Web Page example
- The IF statement
- Boolean values: True and False
- Wednesday
- Boolean operators: and, or, and not
- Graphics
- Graphics library
- Simple graphic programs
- Friday
- Graphic objects: everything is an object!
- Measuring distances between points on the graphic window.
- Something fun: Eliza
- Chapter 7 in Zelle
- Documentation for the graphics.py library
Week 8 Oct. 26 |
Topics: Lab/Hw Reading - Monday:
- Review if statements and Boolean variables
- Exercises on boolean variables and boolean functions
- is there a negative number in a list of numbers?
- count the number of negative numbers in a list of numbers
- Back to Eliza
- Lecture Notes
- Wednesday
- Exact and Inexact Matching Algorithms
- Break and Continue
- Lecture Notes
- Friday
- Exercise with While loop
- Programming patterns for looking at text data (review of Lab 8)
- Processing Text
- Man in the Hole (Kurt Vonnegut, Matthew Jokers)
- Memory Project (Tim O'Brien, Wordle)
- Indefinite loops are covered in Chapter 8 in Zelle.
Week 9 Nov. 2 |
Topics: Exceptions, Classes, and Objects Lab/Hw Reading - Monday:
- Exceptions
- Classes and Objects
- Programs developed in class
- Lecture notes
- Wednesday
- Cats, cats, cats
- Creating a Cat class
- Default string representation: __str__()
- A list of cats
- Reading cats from a CSV file
- Searching a list of objects
- Friday
- Object-Oriented Graphics
- Creating a wheel class
- Moving the wheel
- Creating a car class
- Moving the car
- A list of cars...
- Horse objects. In the "Digital Horses" video, you get to see how the animators for the movie The Lord of the Rings create software objects to represent horses. In some parts of the video, below, you see that in some cases, horses are a collection of 3D shapes that are connected to each other, and move together around articulation points. This should remind you of how we built a car class around geometrical 2D objects.
- The video below shows similar examples of 3D objects, and lists of 3D objects where objects have their own behavior (the same way that our car objects have their own speed and direction of movement).
- Programs developed in class
- Lecture notes
- (You can go to this site to print graph paper)
- Description of Graphics Library objects
- Section 7.4 in Zelle, on Exceptions
- Chapter 10: Defining Classes
Week 10 Nov 9 |
Topics: Image Processing Lab/Hw Reading - Monday:
- Image processing
- Displaying gif images
- Sweep through an image: vertical sweep, horizontal sweep
- Changing the color of a pixel
- Changing the color of all the pixels of an image
- Grey scales
- Saturation
- Lecture Notes
- Programs developed in class
- Wednesday
- Mirroring
- Displaying a chessboard
- Creating the graphics for a game of checkers
- Lecture Notes
- Programs developed in class
- Friday
- No class today (conference in Seattle), but there is a video lecture to watch on your own... Stay tuned!
- Slides for Video Presentation
- DT's video presentation
- Page with Prof. Helene Visentin's presentation
- Quiz: go to Moodle, and look for the Week 10 LAM section.
Week 11 Nov 16 |
Topics: LAM, User Interface, Widgets, Button, digitizing and rendering a Map Lab/Hw Reading - Monday:
- Introduction to the LAM project this week
- The problem we will solve this week
- User Interface: widgets and buttons
- Using buttons to control user interaction
- Polygons. Creating polygons, saving polygons to a CSV file
- Lecture Notes
- Programs developed in class
- Wednesday
- Crowd-Sourcing: assignment for the day: defining the format in the CSV flle.
- Sharing the CSV file
- Animation loop with win.checkMouse() ==> animation
- Lecture Notes
- Programs developed in class
- Friday
- Review Lab 11
- Edit shared csv file with proper names
- Merging file information
- Color-coding by date
- Application: Fish in an aquarium
- Lecture Notes
- Programs developed in class
Week 12 Nov 23 |
Topics: Lab/Hw Reading - Monday:
- The new CSV File for Homework 11
- A few words about filtering a CSV file
- Something different And now for something completely different...
- Lecture Notes
- Programs developed in class
- Wednesday: Thankgiving Break
- Friday: Thankgiving Break
- No Lab
- No Homework. Just the continuation of Homework 11.
- Zelle, Section 11.6 on Dictionaries.
Week 13 Nov 30 |
Topics: Lists of lists, Inheritance Lab/Hw Reading - Monday:
- Filtering and cleaning up text information.
- The data files for today can be found here.
- Introduction to Class Inheritance
- Programs developed in class
- Lecture Notes
- Wednesday
- Introduction to Class Inheritance
- Programs developed in class
- Lecture Notes
- Friday
- Continuation of the concept of Class Inheritance
- Introduction to Polymorphism
- Programs developed in class
- Lecture Notes
- Chapter 11 on Lists of lists
- Chapter 12 in Zelle, on Objects and Inheritance
Week 14 Dec 7 |
Topics: Recursion Lab/Hw Reading - Monday:
- Introduction to Recursion and Recursive Functions
- Class exercise with a bunch of bananas. Everbybody's a minion...
- Finding a banana, recursively
- Programs developed in class
- Lecture Notes
- Wednesday
- A look at some of the Maps of HW 11.
- Visiting a Maze
- Fractal Trees
- Revisiting the Towers of Hanoi problem
- Programs developed in class
- Lecture Notes
- Friday
- No Class!
- A sample of wrapping paper styles...
- Read Chapter 13 in Zelle.
Week 15 Dec 14 |
Topics: Lab/Hw Reading - Monday: Last Class: Presentation of the take-home final exam, which will be due at 4:00 p.m. on the last day of exams.
Links and Resources
Graphics
- Zelle's graphic library can be found here
- A page with color names supported by the graphics library.
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
- When you work in pairs during the labs, or on homework assignments, you need to follow the protocol for 'pair programming' as discussed in this article.
- Video talks on Python:
Maps of Smith College
This section contains various maps to be used in the Liberal Arts Module (LAM). If you want to use one of these images, and want the original, click twice on the image, until you get it by itself, full size, in your browser. Then you can either right click or control click on it to save it to your computer.
Original Map from GIS Center, Smith College
This map was generated by Emily Kim.
The original of the image below can be found here. It is huge, be careful!
Edited Full Map, Smith College, PNG format
Edited, Cropped Map, Smith College, GIF format
This image is 750 × 730 pixels.
Additional Maps from the Smith GIS lab
Thanks to Jon Caris, of the GIS Lab, for sending these maps.
(The darker trees are conifers)