Difference between revisions of "CSC111 Class Page 2015b"

From dftwiki3
Jump to: navigation, search
( )
( )
 
(200 intermediate revisions by the same user not shown)
Line 27: Line 27:
 
** Syllabus
 
** Syllabus
 
** Expectations
 
** Expectations
** [http://cs.smith.edu/~jfrankli/111s08/pairProgramming2000.pdf Pair Programming] ([https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=video&cd=29&ved=0CEYQtwIwCDgUahUKEwi2yO-f3ODHAhWIyj4KHY5-APM&url=https%3A%2F%2Fcodehire.com%2Fcodrtv%2Fvideos%2Fhabit-1-pair-programming&usg=AFQjCNEEtWUOmKBCeZpYbg7jKupwi6Lo0w&sig2=B2ABNk1KINm_Zb8m2MmPTA video to watch on your own])
+
** [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 44: Line 44:
 
* [[CSC111 Lab 1 2015b | Lab 1]]
 
* [[CSC111 Lab 1 2015b | Lab 1]]
 
* [[CSC111 Homework 1 2015b | Homework 1 ]]
 
* [[CSC111 Homework 1 2015b | Homework 1 ]]
 +
* <font color="magenta">Solution programs can be found at the end of the lab and homework pages</font>
 
|
 
|
 
* Read Chapter 1 in Zelle (textbook)
 
* Read Chapter 1 in Zelle (textbook)
Line 64: Line 65:
 
::{| 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''':  
+
|width="60%"| '''Topics''': Chapter 2: variables, definite loops, input
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
 
|-valign="top"
 
|-valign="top"
 
|
 
|
* '''Monday''':
+
* '''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'''
 
* '''Wednesday'''
 +
** Review & Prep for Lab 2
 +
** Exercises
 +
** [http://cs.smith.edu/dftwiki/media/CSC111_2015b_Week2Notes.pdf  Lecture Notes]
 +
** [[CSC111 Python Programs Fall 2015 | Programs developed in class]]
 
----
 
----
 
* '''Friday'''
 
* '''Friday'''
 +
:* Numbers of the day:
 +
::* [http://www.wired.com/2015/09/google-2-billion-lines-codeand-one-place/ 2,000,000,000]
 +
::* [http://www.informationisbeautiful.net/visualizations/million-lines-of-code/ 10 - 20,000,000]
 +
:* Printing, and the idea of ''emptiness'': "" and []
 +
:* Programming exercises from the [http://cs.smith.edu/dftwiki/media/CSC111_2015b_Week2Notes.pdf  Lecture Notes]
 +
:* [[CSC111 Python Programs Fall 2015 | Programs developed in class]]
 
|
 
|
 
* [[CSC111 Lab 2 2015b | Lab 2 ]]
 
* [[CSC111 Lab 2 2015b | Lab 2 ]]
* <!--[[CSC111 Homework 2 2015b | Homework 2]]-->
+
* [[CSC111 Homework 2 2015b | Homework 2]]
 +
* <font color="magenta">Solution programs can be found at the end of the lab and homework pages</font>
 +
 
 
|
 
|
*  
+
* Read Chapter 2 in Zelle.
 
|}
 
|}
  
Line 94: Line 113:
 
|}
 
|}
 
<br />
 
<br />
::{| class="mw-collapsible mw-collapsed" style="width:100%" border="1"
+
::{| class="mw-collapsible" style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|- style="background:#dddddd;"
|width="60%"| '''Topics''':  
+
|width="60%"| '''Topics''': Arithmetic operators, math functions, main().
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
Line 102: Line 121:
 
|
 
|
 
* '''Monday''':
 
* '''Monday''':
 +
:* Finish the grade program from Friday ([[CSC111 Python Programs Fall 2015 | Programs developed in class]])
 +
:* 4 minutes from Grier's video: When computers were human.  Start at time=28m12s.
 +
<br />
 +
<videoflash>YwqltwvPnkw</videoflash>
 +
<br />
 +
[[Image:WomenCalculatingWWII.jpg|400px]]<br />
 +
Women at work tabulating during World War II (Shorpy)
 +
<br />
 +
:* Operators: * / + - ** // % abs()
 +
:* The <tt>type()</tt> function
 +
:* [[CSC111 Teller Machine Program | tellerMachine.py]] example.
 +
:* Formatting numbers (see Section 5.8.2 in Zelle), and [[CSC111 Formatting String Example | example program]]
 +
:* [http://cs.smith.edu/dftwiki/media/CSC111_2015b_Week3Notes.pdf  Lecture Notes]
 +
:* [[CSC111_Python_Programs_Fall_2015| Programs developed in class]]
 
----
 
----
 
* '''Wednesday'''
 
* '''Wednesday'''
 +
:* Review the  [[CSC111 Teller Machine Program | 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:<font color="magenta"> '''from now on''', we will be using a <tt>main()</tt> function</font>.
 +
:* int(), round(), float(), abs() ==&gt; the idea of ''robustness''
 +
:* <font color="magenta">Rule for all programs: add a blank line between input section and output section</font>.
 +
:* '''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: "**--**--**"
 +
:* [[CSC111_Python_Programs_Fall_2015| Programs developed in class]]
 
----
 
----
 
* '''Friday'''
 
* '''Friday'''
 +
:* Monday's class will be on video... stay tuned to Piazza
 +
:* [[CSC111_Midterm_Exam_Preparation_2015 | 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: [[CSC111 Debugging a Loop| debugging a loop]]
 +
:* Debugging the program printing [[CSC111_Python_Programs_Fall_2015#Accumulating_Strings |alternating patterns]]
 +
:* Review [[CSC111_Lab_3_2015b#Challenge_.237:_.28Challenging.21.29| Challenge #7]] from  [[CSC111 Lab 3 2015b | Lab 3]]
 +
:* [[CSC111_Python_Programs_Fall_2015| Programs developed in class]]
 +
:* [http://cs.smith.edu/dftwiki/media/CSC111_2015b_Week3Notes.pdf  Lecture Notes] &amp; [http://cs.smith.edu/dftwiki/media/CSC111_2015b_Week3bNotes.pdf  (exta)]
 +
 +
 
|
 
|
* Lab
+
* [[CSC111 Lab 3 2015b | Lab 3]]
* Homework
+
* [[CSC111 Homework 3 2015b | Homework 3]]
 +
* <font color="magenta">Solution programs can be found at the end of the lab and homework pages</font>
 
|
 
|
*  
+
* Read Chapter 3 in Zelle.
 +
 
|}
 
|}
  
Line 125: Line 178:
 
|}
 
|}
 
<br />
 
<br />
::{| class="mw-collapsible mw-collapsed" style="width:100%" border="1"
+
::{| class="mw-collapsible " style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|- style="background:#dddddd;"
 
|width="60%"| '''Topics''':  
 
|width="60%"| '''Topics''':  
Line 133: Line 186:
 
|
 
|
 
* '''Monday''':
 
* '''Monday''':
 +
:* Video class today.  The class is covered in 3 different videos.  Click on the video icons below, from left to right, please!
 +
:::[[Image:videoLogo.png| 50px | link=https://youtu.be/CehZVud8AsU]] &nbsp; [[Image:videoLogo.png| 50px | link=https://youtu.be/TCsrT1Jo5d0]] &nbsp;  [[Image:videoLogo.png| 50px | link=https://www.youtube.com/watch?v=dR9eOApji84]]
 +
:*  [http://cs.smith.edu/dftwiki/media/CSC111_2015b_Week4Notes.pdf  Lecture Notes]
 +
<br />
 
----
 
----
 
* '''Wednesday'''
 
* '''Wednesday'''
 +
:* Review & Q&A
 +
:* Strings are immutable
 +
:* String methods
 +
:* On-line documentation: [https://docs.python.org/3.1/library/stdtypes.html?highlight=capitalize#string-methods docs.python.orgs]
 +
:* Exercises
 +
:* [[CSC111 Python Programs Fall 2015 | Programs developed in class]]
 +
:*  [http://cs.smith.edu/dftwiki/media/CSC111_2015b_Week4Notes.pdf  Lecture Notes]
 +
 
----
 
----
 
* '''Friday'''
 
* '''Friday'''
 +
:* Split()
 +
:* Functions
 +
:*  [http://cs.smith.edu/dftwiki/media/CSC111_2015b_Week4Notes.pdf  Lecture Notes]
 +
:* A video with some words about real numbers and why they behave strangely: [[Image:videoLogo.png| 50px  |link=https://www.youtube.com/watch?v=kfArgvgUmp4]]
 +
:* [[CSC111 Python Programs Fall 2015 | Programs developed in class]]
 +
:*  [http://cs.smith.edu/dftwiki/media/CSC111_2015b_Week4Notes.pdf  Lecture Notes]
 
|
 
|
* Lab
+
* [[CSC111 Lab 4 2015b| Lab 4]]
* Homework
+
* [[CSC111 Homework 4 2015b | Homework 4]]
 +
* <font color="magenta">Solution programs can be found at the end of the lab and homework pages</font>
 +
 
 
|
 
|
*  
+
* Read Chapter 6 in Zelle
 
|}
 
|}
  
Line 156: Line 229:
 
|}
 
|}
 
<br />
 
<br />
::{| class="mw-collapsible mw-collapsed" style="width:100%" border="1"
+
::{| class="mw-collapsible " style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|- style="background:#dddddd;"
|width="60%"| '''Topics''':  
+
|width="60%"| '''Topics''': Functions, Files.
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
Line 164: Line 237:
 
|
 
|
 
* '''Monday''':
 
* '''Monday''':
 +
:* Functions, review
 +
:* Functions returning values
 +
:* Exercises
 +
:* Writing robust programs: they don't crash!
 +
:*  [http://cs.smith.edu/dftwiki/media/CSC111_2015b_Week5bNotes.pdf  Lecture Notes]
 +
:* [[CSC111 Python Programs Fall 2015 | Programs developed in class]]
 
----
 
----
 
* '''Wednesday'''
 
* '''Wednesday'''
 +
:* Mountain Day?
 
----
 
----
 
* '''Friday'''
 
* '''Friday'''
 +
:* Review: Functions, parameters, returned values
 +
:* Exercises
 +
:* [[CSC111 Python Programs Fall 2015 | Programs developed in class]]
 +
:*  [http://cs.smith.edu/dftwiki/media/CSC111_2015b_Week5bNotes.pdf  Lecture Notes]
 
|
 
|
* Lab
+
[[Image:videoLogo.png| 50px | link=https://www.youtube.com/watch?v=tDhhDKjatLI]]
* Homework
+
* [[CSC111 Lab 5 2015b| Lab 5]] <!-- and
 +
[[CSC111 Lab 5 2015b Part 2 | Lab 5 Part 2]] -->
 +
* [[CSC111 Homework 5 2015b| Homework 5]]
 
|
 
|
*  
+
* We are still working with material from Chapter 6.
 
|}
 
|}
  
Line 187: Line 273:
 
|}
 
|}
 
<br />
 
<br />
::{| class="mw-collapsible mw-collapsed" style="width:100%" border="1"
+
::{| class="mw-collapsible " style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|- style="background:#dddddd;"
 
|width="60%"| '''Topics''':  
 
|width="60%"| '''Topics''':  
Line 197: Line 283:
 
----
 
----
 
* '''Wednesday'''
 
* '''Wednesday'''
 +
:* Files: reading and writing text files
 +
:* Processing text information (playing with [http://cs.smith.edu/dftwiki/media/SherlockHolmes.txt Sherlock])
 +
:* [http://cs.smith.edu/dftwiki/media/CSC111_2015b_Week6Notes.pdf  Lecture Notes]
 +
:* [[CSC111 Python Programs Fall 2015 | Programs developed in class]]
 
----
 
----
* '''Friday'''
+
* '''Friday''': <font color="magenta">Midterm Exam</font>
 +
:* [[CSC111_Midterm_Exam_Preparation_2015 | Example of Midterm Exam]] <!-- and [[CSC111 Midterm Solution 2015b|solutions]] -->
 +
 
 
|
 
|
* Lab
+
* [[CSC111 Lab 6 2015b| Lab 6]]
* Homework
+
* No homework this week
 
|
 
|
 
*  
 
*  
Line 218: Line 310:
 
|}
 
|}
 
<br />
 
<br />
::{| class="mw-collapsible mw-collapsed" style="width:100%" border="1"
+
::{| class="mw-collapsible " style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|- style="background:#dddddd;"
|width="60%"| '''Topics''':  
+
|width="60%"| '''Topics''': Processing Files
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
Line 226: Line 318:
 
|
 
|
 
* '''Monday''':
 
* '''Monday''':
 +
:* Finish Dynamic Web Page example
 +
:* The IF statement
 +
::* Boolean values: '''True''' and '''False'''
 +
:* [http://cs.smith.edu/dftwiki/media/CSC111_2015b_Week7bNotes.pdf  Lecture Notes]
 +
:* [[CSC111 Python Programs Fall 2015 | Programs developed in class]]
 
----
 
----
 
* '''Wednesday'''
 
* '''Wednesday'''
 +
:* Boolean operators: '''and''', '''or''', and '''not'''
 +
:* Graphics
 +
::* [http://cs.smith.edu/dftwiki/index.php/Zelle%27s_Graphics.py_for_Python_3 Graphics library]
 +
::* Simple graphic programs
 
----
 
----
 
* '''Friday'''
 
* '''Friday'''
 +
:* Graphic objects: everything is an object!
 +
:* Measuring distances between points on the graphic window.
 +
:* Something fun: [[Turing_Test_and_Eliza#Introduction_to_the_Turing_Test| Eliza]]
 
|
 
|
* Lab
+
* [[CSC111 Lab 7 2015b| Lab 7]]
* Homework
+
* [[CSC111 Homework 7 2015b| Homework 7]]<br />
 +
[[Image:videoLogo.png| 50px | link=https://www.youtube.com/watch?v=1uA-pLITer0]]
 
|
 
|
*  
+
* Chapter 7 in Zelle
 +
* [http://mcsp.wartburg.edu/zelle/python/graphics/graphics.pdf Documentation for the graphics.py library]
 
|}
 
|}
  
Line 249: Line 355:
 
|}
 
|}
 
<br />
 
<br />
::{| class="mw-collapsible mw-collapsed" style="width:100%" border="1"
+
::{| class="mw-collapsible " style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|- style="background:#dddddd;"
 
|width="60%"| '''Topics''':  
 
|width="60%"| '''Topics''':  
Line 256: Line 362:
 
|-valign="top"
 
|-valign="top"
 
|
 
|
 +
[[Image:POMFall2015.png|right|200px]]
 
* '''Monday''':
 
* '''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 [[Turing_Test_and_Eliza | Eliza]]
 +
:* [http://cs.smith.edu/dftwiki/media/CSC111_2015b_Week8bNotes.pdf  Lecture Notes]
 +
 +
<br />
 +
<br />
 
----
 
----
 
* '''Wednesday'''
 
* '''Wednesday'''
 +
:* Exact and Inexact Matching Algorithms
 +
:* Break and Continue
 +
:* [http://cs.smith.edu/dftwiki/media/CSC111_2015b_Week8bNotes.pdf  Lecture Notes]
 +
 
----
 
----
 
* '''Friday'''
 
* '''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)
 +
:* [http://cs.smith.edu/dftwiki/media/CSC111_2015b_Week8bNotes.pdf  Lecture Notes]
 
|
 
|
* Lab
+
* [[CSC111 Lab 8 2015b| Lab 8]]
* Homework
+
* [[CSC111 Homework 8 2015b|Homework 8]]
 +
[[Image:videoLogo.png| 50px | link=https://www.youtube.com/watch?v=yN2K3tQjZ6c]]
 
|
 
|
*  
+
* Indefinite loops are covered in Chapter 8 in Zelle.
 
|}
 
|}
  
Line 280: Line 407:
 
|}
 
|}
 
<br />
 
<br />
::{| class="mw-collapsible mw-collapsed" style="width:100%" border="1"
+
::{| class="mw-collapsible " style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|- style="background:#dddddd;"
|width="60%"| '''Topics''':  
+
|width="60%"| '''Topics''': Exceptions, Classes, and Objects
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
Line 288: Line 415:
 
|
 
|
 
* '''Monday''':
 
* '''Monday''':
 +
:* Exceptions
 +
:* Classes and Objects
 +
:* [[CSC111_Python_Programs_Fall_2015 | Programs developed in class]]
 +
:*  [http://cs.smith.edu/dftwiki/media/CSC111_2015b_Week9bNotes.pdf Lecture notes]
 
----
 
----
* '''Wednesday'''
+
* '''Wednesday'''  
 +
[[File:Cats.jpg|150px|right]]
 +
:* 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
 +
:* [[CSC111_Python_Programs_Fall_2015 | Programs developed in class]]
 +
<br />
 +
<br />
 
----
 
----
 
* '''Friday'''
 
* '''Friday'''
 +
[[Image:carDimensions.jpg|right|200px]]
 +
[[File:TaxiCabCSC111.png|right|200px]]
 +
:* 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.
 +
<br />
 +
<videoflash>4GxPrESfdnM</videoflash>
 +
<br />
 +
:* 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).
 +
<videoflash>3wjCwtc_-hk</videoflash>
 +
<br />
 +
:* [[CSC111_Python_Programs_Fall_2015 | Programs developed in class]]
 +
:*  [http://cs.smith.edu/dftwiki/media/CSC111_2015b_Week9bNotes.pdf Lecture notes]
 +
:* (You can go to  [http://www.printfreegraphpaper.com/ this site] to print graph paper)
 
|
 
|
* Lab
+
* [[CSC111 Lab 9 2015b | Lab #9]]
* Homework
+
* [[CSC111_Homework_9_2015b | Homework 9]]
 
|
 
|
*  
+
* [http://cs.smith.edu/dftwiki/images/1/17/ZelleGraphicsDescription.pdf Description of Graphics Library objects]
 +
* Section 7.4 in Zelle, on Exceptions
 +
* Chapter 10: Defining Classes
 
|}
 
|}
  
Line 311: Line 472:
 
|}
 
|}
 
<br />
 
<br />
::{| class="mw-collapsible mw-collapsed" style="width:100%" border="1"
+
::{| class="mw-collapsible " style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|- style="background:#dddddd;"
|width="60%"| '''Topics''':  
+
|width="60%"| '''Topics''': Image Processing
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
Line 319: Line 480:
 
|
 
|
 
* '''Monday''':
 
* '''Monday''':
 +
[[Image:catGlasses.gif|140px|right]]
 +
:* 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
 +
:* [http://cs.smith.edu/dftwiki/media/CSC111_2015b_Week10bNotes.pdf  Lecture Notes]
 +
:* [[CSC111_Python_Programs_Fall_2015 | Programs developed in class]]
 
----
 
----
 
* '''Wednesday'''
 
* '''Wednesday'''
 +
[[File:Piece.gif|right|50px]]
 +
[[File:Piece2.gif|right|50px]]
 +
:* Mirroring
 +
:* Displaying a chessboard
 +
:* Creating the graphics for a game of checkers
 +
:* [http://cs.smith.edu/dftwiki/media/CSC111_2015b_Week10bNotes.pdf  Lecture Notes]
 +
:* [[CSC111_Python_Programs_Fall_2015 | Programs developed in class]]
 
----
 
----
 
* '''Friday'''
 
* '''Friday'''
 +
:* No class today (conference in Seattle), but there is a video lecture to watch on your own... Stay tuned!
 +
 +
[[Image:videoLogo.png| 50px |right | link=https://youtu.be/071ebkc_8A8]]
 +
:* [http://cs.smith.edu/dftwiki/media/CSC111_2015b_WeekLAMNotes.pdf Slides for Video Presentation]
 +
:* DT's video presentation
 +
<videoflash>071ebkc_8A8</videoflash>
 +
:* [[Historical_Maps_LAM | Page with Prof. Helene Visentin's presentation]]
 +
:* Quiz: go to Moodle, and look for the '''Week 10 LAM''' section.
 +
 
|
 
|
* Lab
+
* [[CSC111 Lab 10 2015b | Lab 10]]
* Homework
+
* [[CSC111 Homework 10 2015b | Homework 10]]
 
|
 
|
 
*  
 
*  
Line 342: Line 529:
 
|}
 
|}
 
<br />
 
<br />
::{| class="mw-collapsible mw-collapsed" style="width:100%" border="1"
+
::{| class="mw-collapsible " style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|- style="background:#dddddd;"
|width="60%"| '''Topics''':  
+
|width="60%"| '''Topics''': LAM, User Interface, Widgets, Button, digitizing and rendering a Map
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
Line 350: Line 537:
 
|
 
|
 
* '''Monday''':
 
* '''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
 +
:* [http://cs.smith.edu/dftwiki/media/CSC111_2015b_Week11bNotes.pdf  Lecture Notes]
 +
:* [[CSC111_Python_Programs_Fall_2015 | Programs developed in class]]
 
----
 
----
 
* '''Wednesday'''
 
* '''Wednesday'''
 +
:* Crowd-Sourcing: assignment for the day: defining the format in the CSV flle.
 +
:* Sharing the CSV file
 +
:* Animation loop with win.checkMouse() ==> animation
 +
:* [http://cs.smith.edu/dftwiki/media/CSC111_2015b_Week11bNotes.pdf  Lecture Notes]
 +
:* [[CSC111_Python_Programs_Fall_2015 | Programs developed in class]]
 
----
 
----
 
* '''Friday'''
 
* '''Friday'''
 +
[[Image:aquariumWithFish.png|right|150px]]
 +
:* Review Lab 11
 +
:* Edit [https://docs.google.com/document/d/19fregdyl0jgCCEKJhc__9faUZqGyB_lQRAJXkb-FeEE/edit shared csv file] with proper names
 +
:* Merging file information
 +
:* Color-coding by date
 +
:* Application: [[Fish_for_an_Aquarium| Fish in an aquarium]]
 +
:* [http://cs.smith.edu/dftwiki/media/CSC111_2015b_Week11bNotes.pdf  Lecture Notes]
 +
:* [[CSC111_Python_Programs_Fall_2015 | Programs developed in class]]
 
|
 
|
* Lab
+
* [[CSC111_Lab_11_2015b | Lab 11]]
* Homework
+
* [[CSC111_Homework_11_2015b | Homework 11]]
 
|
 
|
 
*  
 
*  
Line 373: Line 580:
 
|}
 
|}
 
<br />
 
<br />
::{| class="mw-collapsible mw-collapsed" style="width:100%" border="1"
+
::{| class="mw-collapsible " style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|- style="background:#dddddd;"
 
|width="60%"| '''Topics''':  
 
|width="60%"| '''Topics''':  
Line 381: Line 588:
 
|
 
|
 
* '''Monday''':
 
* '''Monday''':
 +
[[File:GuidoVanRossun.jpg|right]]
 +
:* [http://cs.smith.edu/dftwiki/index.php/CSC111_Crowd-Sourced_Map_Elements_2015b The new CSV File for Homework 11]
 +
:* A few words about [[CSC111 Filtering a CSV File|filtering a CSV file]]
 +
:* Something different[[CSC111_And_now,_something_completely_different#Python-Related_Videos| And now for something completely different...]]
 +
:* [http://cs.smith.edu/dftwiki/media/CSC111_2015b_Week12bNotes.pdf  Lecture Notes]
 +
:* [[CSC111_Python_Programs_Fall_2015 | Programs developed in class]]
 +
 
----
 
----
 
* '''Wednesday''':  <font color="magenta">'''Thankgiving Break'''</font>
 
* '''Wednesday''':  <font color="magenta">'''Thankgiving Break'''</font>
Line 386: Line 600:
 
* '''Friday''':  <font color="magenta">'''Thankgiving Break'''</font>
 
* '''Friday''':  <font color="magenta">'''Thankgiving Break'''</font>
 
|
 
|
* Lab
+
* No Lab
* Homework
+
* No Homework.  Just the continuation of Homework 11.
 
|
 
|
*  
+
* Zelle, Section 11.6 on Dictionaries.
 
|}
 
|}
  
Line 404: Line 618:
 
|}
 
|}
 
<br />
 
<br />
::{| class="mw-collapsible mw-collapsed" style="width:100%" border="1"
+
::{| class="mw-collapsible" style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|- style="background:#dddddd;"
|width="60%"| '''Topics''':  
+
|width="60%"| '''Topics''': Lists of lists, Inheritance
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
Line 412: Line 626:
 
|
 
|
 
* '''Monday''':
 
* '''Monday''':
 +
:* Filtering and cleaning up text information.
 +
:* The data files for today can be found [[CSC111_Python_Programs_Fall_2015#Nov._30.2C_2015| here]].
 +
:* 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]
 
----
 
----
 +
[[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]
 +
 
|
 
|
* Lab
+
* [[CSC111 Lab 12 2015b | Lab #12]]
* Homework
+
* [[CSC111 Homework 12 2015b| Homework 12]]
 
|
 
|
*  
+
* Chapter 11 on Lists of lists
 +
* Chapter 12 in Zelle, on Objects and Inheritance
 
|}
 
|}
  
Line 435: Line 667:
 
|}
 
|}
 
<br />
 
<br />
::{| class="mw-collapsible mw-collapsed" style="width:100%" border="1"
+
::{| class="mw-collapsible" style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|- style="background:#dddddd;"
|width="60%"| '''Topics''':  
+
|width="60%"| '''Topics''': Recursion
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
 
|-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]]
* Homework
 
 
|
 
|
*  
+
* Read Chapter 13 in Zelle.
 
|}
 
|}
  
Line 466: Line 724:
 
|}
 
|}
 
<br />
 
<br />
::{| class="mw-collapsible mw-collapsed" style="width:100%" border="1"
+
::{| class="mw-collapsible" style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|- style="background:#dddddd;"
 
|width="60%"| '''Topics''':  
 
|width="60%"| '''Topics''':  
Line 473: Line 731:
 
|-valign="top"
 
|-valign="top"
 
|
 
|
* '''Monday''': <font color="magenta">Last Class</font>
+
* '''Monday''': <font color="magenta">Last Class</font>: Presentation of the take-home final exam, which will be due at 4:00 p.m. on the last day of exams.
  
 
|
 
|
* Final Exam
+
* [[CSC111 Final Exam 2015b|Final Exam]]
 
|
 
|
*
+
 
|}
 
|}
  
Line 509: Line 767:
 
==Misc==
 
==Misc==
 
<br />
 
<br />
* If you decide to work in pairs for the lab, you need to follow the protocol for 'pair programming' as discussed in [http://maven.smith.edu/~jfrankli/111s08/pairProgramming2000.pdf this article].  
+
* When you work in pairs during the labs, or on homework assignments, you need to follow the protocol for 'pair programming' as discussed in [http://maven.smith.edu/~jfrankli/111s08/pairProgramming2000.pdf this article].  
  
 
* Video talks on Python:  
 
* Video talks on Python:  
Line 515: Line 773:
  
 
<br />
 
<br />
 +
==Maps of Smith College==
 +
<br />
 +
This section contains various maps to be used in the Liberal Arts Module (LAM).  <font color="magenta">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.</font>
 +
<br />
 +
=Original Map from GIS Center, Smith College=
 +
<br />
 +
This map was generated by Emily Kim.
 +
<br />
 +
The original of the image below can be found [https://w0wm0m.files.wordpress.com/2015/06/map1.jpg here].  It is huge, be careful!
 +
<br />
 +
[[Image:GISSmithCollegeMapResized.jpg|700px]]
 +
<br />
 +
 +
=Edited Full Map, Smith College, PNG format=
 +
<br />
 +
[[Image:GISMapSmithCollege.png|700px]]
 +
<br />
 +
 +
=Edited, Cropped Map, Smith College, <font color="magenta">GIF</font> format=
 
<br />
 
<br />
 +
This image is 750 × 730 pixels.
 
<br />
 
<br />
 +
[[File:SmithMap0.gif ]]
 
<br />
 
<br />
 +
=Additional Maps from the Smith GIS lab=
 
<br />
 
<br />
 +
Thanks to Jon Caris, of the GIS Lab, for sending these maps.
 
<br />
 
<br />
 +
[[File:SmithMapBuildings.jpg|center|500px]]
 
<br />
 
<br />
 +
[[File:SmithMapBuildingsTrees.jpg|center|500px]]
 
<br />
 
<br />
 +
[[File:SmithMapTrees.jpg|center|500px]]
 
<br />
 
<br />
 +
(The darker trees are conifers)
 
<br />
 
<br />
 
<br />
 
<br />
 
[[Category:CSC111]]
 
[[Category:CSC111]]

Latest revision as of 19:06, 24 January 2018

--D. Thiebaut (talk) 11:12, 24 August 2015 (EDT)



Main Page | Syllabus | Weekly Schedule | Links & Resources |Piazza





 


Week 1 Sept 7    


Topics: Introduction, Python, Idle, Piazza, Moodle submission Lab/Hw Reading

  • Friday
    • Review of the lab
    • Variables
    • assignment,
    • variable names
    • camelCase notation
    • Exercises
    • Lecture Notes




 


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


  • Friday
  • Numbers of the day:
  • Read Chapter 2 in Zelle.




 


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.



WomenCalculatingWWII.jpg
Women at work tabulating during World War II (Shorpy)


  • 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


  • 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!
VideoLogo.png   VideoLogo.png   VideoLogo.png



  • Wednesday

  • Friday
  • 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:

  • Wednesday
  • Mountain Day?

  • Friday

VideoLogo.png

  • We are still working with material from Chapter 6.




 


Week 6 Oct. 12    


Topics: Lab/Hw Reading
  • Monday: Fall Break

  • Wednesday

  • Friday: Midterm Exam




 


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

  • Friday
  • Graphic objects: everything is an object!
  • Measuring distances between points on the graphic window.
  • Something fun: Eliza

VideoLogo.png




 


Week 8 Oct. 26    


Topics: Lab/Hw Reading
POMFall2015.png
  • Monday:
  • Review if statements and Boolean variables
  • Exercises on boolean variables and boolean functions
  1. is there a negative number in a list of numbers?
  2. count the number of negative numbers in a list of numbers




  • 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)

VideoLogo.png

  • Indefinite loops are covered in Chapter 8 in Zelle.




 


Week 9 Nov. 2    


Topics: Exceptions, Classes, and Objects Lab/Hw Reading
  • Monday:

  • Wednesday
Cats.jpg
  • 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
CarDimensions.jpg
TaxiCabCSC111.png
  • 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).





 


Week 10 Nov 9    


Topics: Image Processing Lab/Hw Reading
  • Monday:
CatGlasses.gif
  • 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
Piece.gif
Piece2.gif

  • Friday
  • No class today (conference in Seattle), but there is a video lecture to watch on your own... Stay tuned!
VideoLogo.png




 


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

  • Friday
AquariumWithFish.png




 


Week 12 Nov 23    


Topics: Lab/Hw Reading
  • Monday:
GuidoVanRossun.jpg

  • 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:

CardDimensions2.jpg
  • Wednesday





  • Friday
  • Chapter 11 on Lists of lists
  • Chapter 12 in Zelle, on Objects and Inheritance




 


Week 14 Dec 7    


Topics: Recursion Lab/Hw Reading
MinionBanana.jpg
  • Monday:







AnimatedTowersOfHanoi.gif
  • Wednesday



  • Friday






  • 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.


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!
GISSmithCollegeMapResized.jpg

Edited Full Map, Smith College, PNG format


GISMapSmithCollege.png

Edited, Cropped Map, Smith College, GIF format


This image is 750 × 730 pixels.
SmithMap0.gif

Additional Maps from the Smith GIS lab


Thanks to Jon Caris, of the GIS Lab, for sending these maps.

SmithMapBuildings.jpg


SmithMapBuildingsTrees.jpg


SmithMapTrees.jpg


(The darker trees are conifers)