Difference between revisions of "CSC111 Class Page 2018"

From dftwiki3
Jump to: navigation, search
(Created page with "~~~~ ---- <br /> __NOTOC__ <center> Main Page | Syllabus | Weekly Schedule | CSC111_Class_Pag...")
 
 
(269 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[User:Thiebaut|D. Thiebaut]] ([[User talk:Thiebaut|talk]]) 11:45, 16 January 2018 (EST)
+
[[User:Thiebaut|D. Thiebaut]] ([[User talk:Thiebaut|talk]]) 12:58, 16 January 2018 (EST)
 
----
 
----
 
<br />
 
<br />
 
__NOTOC__
 
__NOTOC__
<center>[[CSC111 Fall 2018 | Main Page]] | [[CSC111_Syllabus_2018 | Syllabus ]] | [[CSC111_Class_Page_2018 | Weekly Schedule ]] | [[CSC111_Class_Page_2018#Links_and_Resources | Links & Resources ]] |[https://piazza.com/smith/fall2018/csc111/home Piazza]</center>
+
<center>[[CSC111 2018 | Main Page]] | [[CSC111_Syllabus_2018 | Syllabus ]] | [[CSC111_Class_Page_2018 | Weekly Schedule ]] | [[CSC111_Class_Page_2018#Links_and_Resources | Links & Resources ]] |[https://piazza.com/smith/spring2018/csc111/home Piazza] | [http://www.science.smith.edu/classwiki/index.php/Computer_Science_TA_hours TA Hours] </center>
 
<br />
 
<br />
 
----
 
----
 
   
 
   
 +
<br /><br />
 +
<center>
 +
[[CSC111_Final_Exam_2018 | Final Exam]]
 +
</center>
 
<br /><br />
 
<br /><br />
 
====&nbsp;====
 
====&nbsp;====
 
----
 
----
 
{| style="width:100%" border="0"
 
{| style="width:100%" border="0"
|width="45%"|'''Week 1'''  Sept 7
+
|width="45%"|'''Week 0'''  Jan 26
 +
|width="20%"| '''&nbsp;'''
 +
|width="25%"| '''&nbsp;'''
 +
|-
 +
|}
 +
<br />
 +
::{| class="mw-collapsible " style="width:100%" border="1"
 +
|- style="background:#dddddd;"
 +
|width="60%"| '''Topics''': Overview of CSC111
 +
|width="15%"| '''Lab/Hw'''
 +
|width="25%"| '''Reading'''
 +
|-valign="top"
 +
|
 +
* '''Friday'''
 +
::* Introduction
 +
::* Syllabus
 +
::* Expectations
 +
::* [http://cs.smith.edu/~jfrankli/111s08/pairProgramming2000.pdf Pair Programming]
 +
::<center><videoflash>fQ-x-T34z9w</videoflash></center>
 +
::* A feel for coding in Python
 +
::* [[CSC111 Some programs to play with| Some programs to play with]]
 +
::* [[Media:CSC111_2018_Week0.pdf | Slides ]]
 +
|
 +
* No homework assignment this week
 +
|
 +
* For next week, Read Chapter 1 in Zelle (textbook)
 +
* Read the [http://cs.smith.edu/~jfrankli/111s08/pairProgramming2000.pdf article on Pair Programming]
 +
|}
 +
 
 +
<br /><br />
 +
 
 +
====&nbsp;====
 +
----
 +
{| style="width:100%" border="0"
 +
|width="45%"|'''Week 1'''  Jan 29
 
|width="20%"| '''&nbsp;'''  
 
|width="20%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
Line 24: Line 62:
 
|-valign="top"
 
|-valign="top"
 
|
 
|
 +
* '''Monday'''
 +
::* We are getting the "feel" for Python programming... 
 +
::* More examples of Python programs
 +
::* [[CSC111_Preparation_for_Lab_1_2018 | Preparation for Lab #1]]: Install Idle & Python on your laptop
 +
::* [[CSC111_Some_programs_to_play_with | Some programs to play with]] in Idle
 
* '''Wednesday'''
 
* '''Wednesday'''
** Syllabus
+
::* We continue with our exploration of Python.  Getting the intuitive aspect of programming.
** Expectations
+
::* Introduction to [[CSC111_Lab_1_2018 | Lab 1]]
** [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])
+
::* Assignments
::<center><videoflash>vgkahOzFH2Q</videoflash>
+
::* Variables.  Rules, ''camelCase''
** A feel for coding in Python
+
::* [[CSC111 Programs Created in Class 2018| Programs created in class]]
** [http://cs.smith.edu/dftwiki/media/CSC111_2018_Week1Notes.pdf Lecture Notes]  
+
::* [[Media:CSC111_2018_Week1.pdf | slides]]
----
 
 
* '''Friday'''
 
* '''Friday'''
** Review of the lab
+
::* The programming ''process''
** Variables  
+
::* Variables and ''literals''
** assignment,
+
::* Memory: ''what does it look like?''
** variable names
+
::* ''Overloaded'' operators
** camelCase notation
+
::* Using the shell for quick testing
** Exercises
+
::* Definite Loops (<font color="orange">for</font> ... <font color="orange">in</font> sequence: )
** [http://cs.smith.edu/dftwiki/media/CSC111_2018_Week1Notes.pdf Lecture Notes]  
+
::* Python documentation
 +
::* The ''range()'' function
 +
::* [[Media:CSC111_2018_Week1.pdf | slides]]
 +
 
 
|
 
|
* [[CSC111_Preparation_for_Lab_1_2018 | Preparation for Lab 1]]: you may want to do this before the first lab.
+
* [[CSC111_Lab_1_2018 | Lab 1]]
* [[CSC111 Lab 1 2018 | Lab 1]]
+
* [[CSC111_Homework_1_2018 | Homework 1]]
* [[CSC111 Homework 1 2018 | 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 57: Line 100:
 
----
 
----
 
{| style="width:100%" border="0"
 
{| style="width:100%" border="0"
|width="45%"|'''Week 2'''  Sept. 14
+
|width="45%"|'''Week 2'''  Feb 5
 
|width="20%"| '''&nbsp;'''  
 
|width="20%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
Line 63: Line 106:
 
|}
 
|}
 
<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''':  Chapter 2: variables, definite loops, input
+
|width="60%"| '''Topics''':  Chapter 2: variables, definite loops, input, the range function
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
 
|-valign="top"
 
|-valign="top"
 
|
 
|
* '''Monday''': (Lecture presented by Prof. Joe O'Rourke)
+
* '''Monday'''
** Variables: simultaneous assignment
+
::* ''Counted'' loops and the ''range()'' expression
** Where do variables live?
+
::* Getting data from the user using the ''input()'' function
** Programming: from problem to solution: an iterative process
+
::* Using ''eval()'' for numbers obrained from the keyboard
** definite loops:
+
::* Using the on-line [https://docs.python.org/3/ Python documentation]
*** looping through items in a list
+
::* [[Media:CSC111_2018_Week2.pdf | Slides ]]
*** the '''range()''' function: allows iteration through various lists of numbers
+
::* [[CSC111 Programs Created in Class 2018| Programs created in class]]
----
+
* '''Wednesday''': Snow day!
* '''Wednesday'''
+
[[Image:CalvinSnowDay.gif|center|500px]]
** Review & Prep for Lab 2
 
** Exercises
 
** [http://cs.smith.edu/dftwiki/media/CSC111_2018_Week2Notes.pdf Lecture Notes]  
 
** [[CSC111 Python Programs Fall 2018 | Programs developed in class]]
 
----
 
 
* '''Friday'''
 
* '''Friday'''
:* Numbers of the day:
+
::* A word from Faith
::* [http://www.wired.com/2018/09/google-2-billion-lines-codeand-one-place/ 2,000,000,000]
+
::* Understanding eval( input() )
::* [http://www.informationisbeautiful.net/visualizations/million-lines-of-code/ 10 - 20,000,000]
+
::* Exercise 1
:* Printing, and the idea of ''emptiness'': "" and []
+
::* Exercise 2
:* Programming exercises from the [http://cs.smith.edu/dftwiki/media/CSC111_2018_Week2Notes.pdf  Lecture Notes]
+
::* [[CSC111 Programs Created in Class 2018| Programs created in class]]
:* [[CSC111 Python Programs Fall 2018 | Programs developed in class]]
+
::* [[Media:CSC111_2018_Week2.pdf | Slides ]]
 
|
 
|
* [[CSC111 Lab 2 2018 | Lab 2 ]]
+
* [[CSC111 Lab 2 2018| Lab 2]]  
* [[CSC111 Homework 2 2018 | Homework 2]]
+
* [[CSC111 Homework 2 2018 | 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.
 
* Read Chapter 2 in Zelle.
Line 107: Line 143:
 
----
 
----
 
{| style="width:100%" border="0"
 
{| style="width:100%" border="0"
|width="45%"|'''Week 3'''  Sept. 21
+
|width="45%"|'''Week 3'''  Feb. 12
 
|width="20%"| '''&nbsp;'''  
 
|width="20%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
Line 113: Line 149:
 
|}
 
|}
 
<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''': Arithmetic operators, math functions, main().
 
|width="60%"| '''Topics''': Arithmetic operators, math functions, main().
Line 120: Line 156:
 
|-valign="top"
 
|-valign="top"
 
|
 
|
* '''Monday''':
+
* '''Monday'''
:* Finish the grade program from Friday ([[CSC111 Python Programs Fall 2018 | Programs developed in class]])
 
 
:* 4 minutes from Grier's video: When computers were human.  Start at time=28m12s.
 
:* 4 minutes from Grier's video: When computers were human.  Start at time=28m12s.
 
<br />
 
<br />
 
<videoflash>YwqltwvPnkw</videoflash>
 
<videoflash>YwqltwvPnkw</videoflash>
 
<br />
 
<br />
[[Image:WomenCalculatingWWII.jpg|400px]]<br />
+
[[Image:WomenCalculatingWWII.jpg|right|150px]]
Women at work tabulating during World War II (Shorpy)
+
::* Operators: * / + - ** // % abs()
<br />
+
::* The <tt>type()</tt> function
:* Operators: * / + - ** // % abs()
+
::* Writing a cash-machine[[CSC111 Teller Machine Program | program]]
:* The <tt>type()</tt> function
+
::* Formatting numbers (see Section 5.8.2 in Zelle), and [[CSC111 Formatting String Example | example program]]
:* [[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_2018_Week3Notes.pdf  Lecture Notes]
 
:* [[CSC111_Python_Programs_Fall_2018| Programs developed in class]]
 
----
 
 
* '''Wednesday'''
 
* '''Wednesday'''
:* Review the  [[CSC111 Teller Machine Program | tellerMachine.py]] program.  Review a student's solution using a loop.
+
::* Formatting strings, ints and floats
:* Printing formatted integers and floats with the { } format.
+
::* Using a main() function
:* Review the bar-graph problem and use the { } format to print the box.
+
::* Accumulating results
a">'''Fall Break'''</font>
+
::* [[CSC111_Programs_Created_in_Class_2018 | Programs created in class]]
----
+
* '''Friday'''
* '''Wednesday'''
+
::* Logistics
:* Files: reading and writing text files
+
::* Accumulating Results
:* Processing text information (playing with [http://cs.smith.edu/dftwiki/media/SherlockHolmes.txt Sherlock])
+
::* What are bits?
:* [http://cs.smith.edu/dftwiki/media/CSC111_2018_Week6Notes.pdf  Lecture Notes]
+
::* [[Media:CSC111_2018_Week3.pdf | Slides ]]
:* [[CSC111 Python Programs Fall 2018 | Programs developed in class]]
 
----
 
* '''Friday''': <font color="magenta">Midterm Exam</font>
 
:* [[CSC111_Midterm_Exam_Preparation_2018 | Example of Midterm Exam]] <!-- and [[CSC111 Midterm Solution 2018|solutions]] -->
 
 
 
 
|
 
|
* [[CSC111 Lab 6 2018| Lab 6]]
+
* [[CSC111_Lab_3_2018 | Lab 3]]
* No homework this week
+
* [[CSC111_Homework_3_2018 | Homework 3]]
 
|
 
|
*  
+
* Read Chapter 3 in Zelle.
 +
 
|}
 
|}
  
Line 164: Line 190:
 
----
 
----
 
{| style="width:100%" border="0"
 
{| style="width:100%" border="0"
|width="45%"|'''Week 7'''  Oct 19
+
|width="45%"|'''Week 4'''  Feb. 19
 
|width="20%"| '''&nbsp;'''  
 
|width="20%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
Line 172: Line 198:
 
::{| 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''': Processing Files
+
|width="60%"| '''Topics''': Strings, Lists, and Files  
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
 
|-valign="top"
 
|-valign="top"
 
|
 
|
* '''Monday''':
+
* '''Monday'''
:* Finish Dynamic Web Page example
+
::* Strings, indexing
:* The IF statement
+
::* positive and negative indexes
::* Boolean values: '''True''' and '''False'''
+
::* lists, indexing lists
:* [http://cs.smith.edu/dftwiki/media/CSC111_2018_Week7bNotes.pdf  Lecture Notes]
+
::* string sections
:* [[CSC111 Python Programs Fall 2018 | Programs developed in class]]
+
::* Concept of mutability and immutability
----
 
 
* '''Wednesday'''
 
* '''Wednesday'''
:* Boolean operators: '''and''', '''or''', and '''not'''
+
::* We have class on Wednesday, but the afternoon labs are cancelled
:* Graphics
+
::* [[Midterm Prep 2018| Typical midterm exam questions]]
::* [http://cs.smith.edu/dftwiki/index.php/Zelle%27s_Graphics.py_for_Python_3 Graphics library]
+
::* slicing lists and strings
::* Simple graphic programs
+
::* the concepts of mutable and immutable lists/strings
----
+
::* strings as objects
 +
::* [https://docs.python.org/3/library/stdtypes.html?highlight=upper#string-methods  String methods on Python.org]
 +
::* [[media:CSC111_2018_Week4.pdf | slides]]
 
* '''Friday'''
 
* '''Friday'''
:* Graphic objects: everything is an object!
+
::* String methods
:* Measuring distances between points on the graphic window.
+
::* [https://docs.python.org/3/library/stdtypes.html?highlight=upper#string-methods  String methods on Python.org]
:* Something fun: [[Turing_Test_and_Eliza#Introduction_to_the_Turing_Test| Eliza]]
+
::* Working with text files
 +
::* [[media:CSC111_2018_Week4.pdf | slides]]
 +
::* [[CSC111 Programs Created in Class 2018| Programs created in class]]
 
|
 
|
* [[CSC111 Lab 7 2018| Lab 7]]
+
* <font color="magenta">No Labs this week (Rally Day)</font>
* [[CSC111 Homework 7 2018| Homework 7]]<br />
+
* [[CSC111_Prep-Lab_4_2018| ''Optional'' Homework Prep]]
[[Image:videoLogo.png| 50px | link=https://www.youtube.com/watch?v=1uA-pLITer0]]
+
* [[CSC111_Homework_4_2018| Homework 4]]
 
|
 
|
* Chapter 7 in Zelle
+
* Read Chapter 5 in Zelle
* [http://mcsp.wartburg.edu/zelle/python/graphics/graphics.pdf Documentation for the graphics.py library]
 
 
|}
 
|}
  
Line 209: Line 237:
 
----
 
----
 
{| style="width:100%" border="0"
 
{| style="width:100%" border="0"
|width="45%"|'''Week 8'''  Oct. 26
+
|width="45%"|'''Week 5'''  Feb 26
 
|width="20%"| '''&nbsp;'''  
 
|width="20%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
Line 217: Line 245:
 
::{| 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''': Functions, Files.
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
 
|-valign="top"
 
|-valign="top"
 
|
 
|
[[Image:POMFall2018.png|right|200px]]
+
* [[Image:DaveMinion.png|right|100px]] '''Monday'''
* '''Monday''':
+
::* [[CreateTextFile.py | CreateTextFile.py]]: a program to create simple text files
:* Review if statements and Boolean variables
+
::* Functions & minions
:* Exercises on boolean variables and boolean functions
+
::* [[CSC111 Programs Created in Class 2018| Programs created in class]]
:::# is there a negative number in a list of numbers?
+
::* [[media:CSC111_2018_Week5.pdf | slides]]
:::# 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_2018_Week8bNotes.pdf Lecture Notes]  
 
  
<br />
 
<br />
 
----
 
 
* '''Wednesday'''
 
* '''Wednesday'''
:* Exact and Inexact Matching Algorithms
+
::* Review. 
:* Break and Continue
+
::* A note about complex 1-liners versus multi-line statements: use whatever feels comfortable!
:* [http://cs.smith.edu/dftwiki/media/CSC111_2018_Week8bNotes.pdf  Lecture Notes]
+
::* Functions returning values
 +
::* Examples, and exercises
 +
* '''Friday'''
 +
::* Function Boot Camp!
 +
::* [[CSC111 Programs Created in Class 2018| Programs created in class]]
 +
::* [[media:CSC111_2018_Week5.pdf | slides]]
 +
|
 +
* [[CSC111_Lab_5_2018 | Lab 5 ]]
 +
* [[CSC111_Homework_5_2018 | Homework 5]], due the Thursday after spring break.
 +
|
 +
* Chapter 6: Defining Functions
 +
|}
 +
 
 +
 
 +
<br /><br />
  
 +
====&nbsp;====
 
----
 
----
 +
{| style="width:100%" border="0"
 +
|width="45%"|'''Week 6'''  March 5
 +
|width="20%"| '''&nbsp;'''
 +
|width="25%"| '''&nbsp;'''
 +
|-
 +
|}
 +
<br />
 +
::{| class="mw-collapsible" style="width:100%" border="1"
 +
|- style="background:#dddddd;"
 +
|width="60%"| '''Topics''':
 +
|width="15%"| '''Lab/Hw'''
 +
|width="25%"| '''Reading'''
 +
|-valign="top"
 +
|
 +
* '''Monday'''
 +
::* [[CSC111_Mid-Semester_Review_2018 |Review]]
 +
:::* <font color="green">"...{x:y}..."</font>.format( )
 +
:::* indexing in a list
 +
:::* how range() works
 +
:::* functions receiving parameters, &amp; returning values
 +
* '''Wednesday''': <font color="magenta">Midterm Exam</font>, in class, timed, on Moodle, closed notes, closed books, closed Idle.
 
* '''Friday'''
 
* '''Friday'''
:* Exercise with While loop
+
::* The concept of a Python library
:* Programming patterns for looking at text data (review of Lab 8)
+
::* Comparing Python to Java
:* Processing Text
+
::* Understanding the  [http://eightqueen.becher-sundstroem.de/ N-Queens problem]
::* Man in the Hole (Kurt Vonnegut, Matthew Jokers)
+
::* [[NQueens.py | Solving the N-Queens problem in Python]]
::* Memory Project (Tim O'Brien, Wordle)
+
::* [[N-Queens_Problem_in_Java | Solving the N-Queens problem in Java]]
:* [http://cs.smith.edu/dftwiki/media/CSC111_2018_Week8bNotes.pdf Lecture Notes]  
+
::* [[CSC111 Programs Created in Class 2018| Programs created in class]]
 +
::* [[CSC111_And_now,_something_completely_different|And now, for something completely different...]]
 +
::* [[media:CSC111_2018_Week6.pdf | slides]]
 
|
 
|
* [[CSC111 Lab 8 2018| Lab 8]]
+
* [[CSC111_Lab_6_2018| Lab 6]]
* [[CSC111 Homework 8 2018|Homework 8]]
+
* No new homework.  Homework 5 due after the break.
[[Image:videoLogo.png| 50px | link=https://www.youtube.com/watch?v=yN2K3tQjZ6c]]
 
 
|
 
|
* Indefinite loops are covered in Chapter 8 in Zelle.
+
* No new reading assignment this week.
 
|}
 
|}
 +
<br /><br />
 +
<tanbox>
 +
Spring Break
 +
<!--center>[[File:animatedBeach.gif]]</center-->
  
 
+
</tanbox>
 
<br /><br />
 
<br /><br />
  
Line 261: Line 324:
 
----
 
----
 
{| style="width:100%" border="0"
 
{| style="width:100%" border="0"
|width="45%"|'''Week 9'''  Nov. 2
+
|width="45%"|'''Week 7'''  March 19
 
|width="20%"| '''&nbsp;'''  
 
|width="20%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
Line 269: Line 332:
 
::{| 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''': Exceptions, Classes, and Objects
+
|width="60%"| '''Topics''': Processing Files, Graphics, If Statements
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
 
|-valign="top"
 
|-valign="top"
 
|
 
|
* '''Monday''':
+
* '''Monday
:* Exceptions
+
::* Back to reading files
:* Classes and Objects
+
::* Writing text files
:* [[CSC111_Python_Programs_Fall_2018 | Programs developed in class]]
+
::* Graphics
:*  [http://cs.smith.edu/dftwiki/media/CSC111_2018_Week9bNotes.pdf Lecture notes]
+
::* If statements. Relational operators
----
+
* '''Wednesday'''
* '''Wednesday'''  
+
::* More graphics, with points, rectangles, circles, text
[[File:Cats.jpg|150px|right]]
+
::* Basics of animation
:* Cats, cats, cats
+
::* Testing for conditions: the IF statement
::* 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_2018 | Programs developed in class]]
 
<br />
 
<br />
 
----
 
 
* '''Friday'''
 
* '''Friday'''
[[Image:carDimensions.jpg|right|200px]]
+
::* The If statements (Chapter 7)
[[File:TaxiCabCSC111.png|right|200px]]
+
::* Examples
:* Object-Oriented Graphics
+
::* [[CSC111_Exercises_with_If_Statements_(Python_3)| Exercises with If statements]]
:* Creating a wheel class
+
::* Rock, Paper, Scissors
:* Moving the wheel
+
::* [[media:CSC111_2018_Week7.pdf | slides]]
:* Creating a car class
+
::* [[CSC111 Programs Created in Class 2018| Programs created in 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_2018 | Programs developed in class]]
 
:*  [http://cs.smith.edu/dftwiki/media/CSC111_2018_Week9bNotes.pdf Lecture notes]
 
:* (You can go to  [http://www.printfreegraphpaper.com/ this site] to print graph paper)
 
 
|
 
|
* [[CSC111 Lab 9 2018 | Lab #9]]
+
* [[CSC111_Lab_7_2018| Lab 7]]
* [[CSC111_Homework_9_2018 | Homework 9]]
+
* [[CSC111_Homework_6_2018| Homework 6 (due 3/30)]]
 
|
 
|
* [http://cs.smith.edu/dftwiki/images/1/17/ZelleGraphicsDescription.pdf Description of Graphics Library objects]
+
* Graphics are covered in Chapter 4
* Section 7.4 in Zelle, on Exceptions
+
* If statements are covered in Chapter 7 in Zelle
* Chapter 10: Defining Classes
 
 
|}
 
|}
  
Line 326: Line 367:
 
----
 
----
 
{| style="width:100%" border="0"
 
{| style="width:100%" border="0"
|width="45%"|'''Week 10'''  Nov 9
+
|width="45%"|'''Week 8'''  March 26
 
|width="20%"| '''&nbsp;'''  
 
|width="20%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
Line 334: Line 375:
 
::{| 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''': Image Processing
+
|width="60%"| '''Topics''': If-Statements, Eliza
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
 
|-valign="top"
 
|-valign="top"
 
|
 
|
* '''Monday''':
+
* '''Monday'''
[[Image:catGlasses.gif|140px|right]]
+
::* Boolean Operators (Chapter 8, Section 4)
:* Image processing
+
::* Organization of Graphic Program
:* Displaying gif images
+
::* Dealing with Obstacles
:* 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_2018_Week10bNotes.pdf  Lecture Notes]
 
:* [[CSC111_Python_Programs_Fall_2018 | Programs developed in class]]
 
----
 
 
* '''Wednesday'''
 
* '''Wednesday'''
[[File:Piece.gif|right|50px]]
+
::* Eliza
[[File:Piece2.gif|right|50px]]
+
::* Indefinite loops: while loops
:* Mirroring
 
:* Displaying a chessboard
 
:* Creating the graphics for a game of checkers
 
:* [http://cs.smith.edu/dftwiki/media/CSC111_2018_Week10bNotes.pdf  Lecture Notes]
 
:* [[CSC111_Python_Programs_Fall_2018 | 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!
+
::* Indefinite Loops (Chapter 8)
 
+
:::* Review for-loops
[[Image:videoLogo.png| 50px |right | link=https://youtu.be/071ebkc_8A8]]
+
:::* Nested for-loops
:* [http://cs.smith.edu/dftwiki/media/CSC111_2018_WeekLAMNotes.pdf Slides for Video Presentation]
+
:::* Break &amp; Continue
:* DT's video presentation
+
::* [[media:CSC111_2018_Week8.pdf | slides]]
<videoflash>071ebkc_8A8</videoflash>
+
::* [[CSC111_Programs_Created_in_Class_2018| Programs created in class]]
:* [[Historical_Maps_LAM | Page with Prof. Helene Visentin's presentation]]
 
:* Quiz: go to Moodle, and look for the '''Week 10 LAM''' section.
 
 
 
 
|
 
|
* [[CSC111 Lab 10 2018 | Lab 10]]
+
* [[CSC111_Lab_8_2018| Lab 8]]  
* [[CSC111 Homework 10 2018 | Homework 10]]
+
* [[CSC111_Homework_7_2018| Homework 7]]  
 
|
 
|
*  
+
* Indefinite Loops and boolean operators are covered in Chapter 8.
 
|}
 
|}
  
Line 383: Line 407:
 
----
 
----
 
{| style="width:100%" border="0"
 
{| style="width:100%" border="0"
|width="45%"|'''Week 11'''  Nov 16
+
|width="45%"|'''Week 9'''  Apr. 2
 
|width="20%"| '''&nbsp;'''  
 
|width="20%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
Line 391: Line 415:
 
::{| 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''': Exceptions, Classes, and Objects
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
 
|-valign="top"
 
|-valign="top"
 
|
 
|
* '''Monday''':
+
* '''Monday'''
:* Introduction to the LAM project this week
+
::* Exceptions
:* The problem we will solve this week
+
::* Programming with Objects and Classes
:* 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_2018_Week11bNotes.pdf  Lecture Notes]
 
:* [[CSC111_Python_Programs_Fall_2018 | Programs developed in class]]
 
----
 
 
* '''Wednesday'''
 
* '''Wednesday'''
:* Crowd-Sourcing: assignment for the day: defining the format in the CSV flle.
+
::* Continue with classes
:* Sharing the CSV file
+
:::* Min/Max of tuples
:* Animation loop with win.checkMouse() ==> animation
+
:::* Die class
:* [http://cs.smith.edu/dftwiki/media/CSC111_2018_Week11bNotes.pdf  Lecture Notes]
+
:::* Cat class
:* [[CSC111_Python_Programs_Fall_2018 | Programs developed in class]]
+
:::* Global vs local
----
 
 
* '''Friday'''
 
* '''Friday'''
[[Image:aquariumWithFish.png|right|150px]]
+
::* Creating a graphic class for a car
:* Review Lab 11
+
::* [[media:CSC111_2018_Week9.pdf | slides]]
:* Edit [https://docs.google.com/document/d/19fregdyl0jgCCEKJhc__9faUZqGyB_lQRAJXkb-FeEE/edit shared csv file] with proper names
+
::* [[CSC111_Programs_Created_in_Class_2018| Programs created in class]]
:* Merging file information
+
 
:* Color-coding by date
 
:* Application: [[Fish_for_an_Aquarium| Fish in an aquarium]]
 
:* [http://cs.smith.edu/dftwiki/media/CSC111_2018_Week11bNotes.pdf  Lecture Notes]
 
:* [[CSC111_Python_Programs_Fall_2018 | Programs developed in class]]
 
 
|
 
|
* [[CSC111_Lab_11_2018 | Lab 11]]
+
* [[CSC111_Lab_9_2018 | Lab 9]]
* [[CSC111_Homework_11_2018 | Homework 11]]
+
* [[CSC111_Homework_8_2018 | Homework 8]]
 
|
 
|
*  
+
* Section 7.4 in Zelle, on Exceptions
 +
* Chapter 10: Defining Classes
 
|}
 
|}
  
Line 434: Line 448:
 
----
 
----
 
{| style="width:100%" border="0"
 
{| style="width:100%" border="0"
|width="45%"|'''Week 12'''  Nov 23
+
|width="45%"|'''Week 10'''  April 9
 
|width="20%"| '''&nbsp;'''  
 
|width="20%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
Line 442: Line 456:
 
::{| 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''': Image Processing
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
 
|-valign="top"
 
|-valign="top"
 
|
 
|
* '''Monday''':
+
[[File:CatGlasses.gif|right|150px]][[File:flowersSmith.gif|right|150px]][[File:catHat.gif|right|150px]]
[[File:GuidoVanRossun.jpg|right]]
+
* '''Monday'''
:* [http://cs.smith.edu/dftwiki/index.php/CSC111_Crowd-Sourced_Map_Elements_2018 The new CSV File for Homework 11]
+
::* Image Processing
:* A few words about [[CSC111 Filtering a CSV File|filtering a CSV file]]
+
::* Nested for-loops for image processing
:* Something different[[CSC111_And_now,_something_completely_different#Python-Related_Videos| And now for something completely different...]]
+
::* Displaying gif images
:* [http://cs.smith.edu/dftwiki/media/CSC111_2018_Week12bNotes.pdf  Lecture Notes]
+
::* Sweep through an image: vertical sweep, horizontal sweep
:* [[CSC111_Python_Programs_Fall_2018 | Programs developed in class]]
+
::* Changing the color of a pixel
 
+
::* Changing the color of all the pixels of an image
----
+
::* Grey scales
* '''Wednesday''': <font color="magenta">'''Thankgiving Break'''</font>
+
::* Saturation
----
+
* '''Wednesday'''
* '''Friday''': <font color="magenta">'''Thankgiving Break'''</font>
+
[[Image:piece.gif|right]][[Image:piece2.gif|right]]
 +
::* More Image transformations
 +
:::* Copy an image
 +
:::* Mirror an image
 +
::* Displaying a chessboard
 +
::* Setting up a game of checkers
 +
<center><videoflash>KpMPHhzZzH4</videoflash></center>
 +
* '''Friday'''
 +
::* Continue with the game of checkers
 +
:::* Using objects made of 2 circles
 +
:::* Using a gif image for a piece
 +
:::* Moving checkers on the board
 +
:::* Removing checkers from the board
 +
:::* Adding a Quit button to the game
 +
::* Lists of Lists (Chapter 11)
 +
:::* Sorting
 +
:::* Reversing
 +
:::* Removing duplicates
 +
::* Sorting lists of objects (lists of cats)
 +
::* Filtering data
 +
::* [[CSC111 Programs Created in Class 2018| Programs created in class]]
 +
::* [[media:CSC111_2018_Week10.pdf | slides]]
 
|
 
|
* No Lab
+
* [[CSC111_Lab_10_2018 | Lab 10]]
* No Homework.  Just the continuation of Homework 11.
+
* [[CSC111_Homework_9_2018 | Homework 9]]
 
|
 
|
* Zelle, Section 11.6 on Dictionaries.
+
* Chapter 11, Designing with Lists and Classes
 
|}
 
|}
  
Line 472: Line 507:
 
----
 
----
 
{| style="width:100%" border="0"
 
{| style="width:100%" border="0"
|width="45%"|'''Week 13'''  Nov 30
+
|width="45%"|'''Week 11'''  Apr 16
 
|width="20%"| '''&nbsp;'''  
 
|width="20%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
Line 478: Line 513:
 
|}
 
|}
 
<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''': Lists of lists, Inheritance
+
|width="60%"| '''Topics''': Class inheritance
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
 
|-valign="top"
 
|-valign="top"
 
|
 
|
* '''Monday''':
+
* '''Monday'''
:* Filtering and cleaning up text information.
+
::* Lists of Lists
:* The data files for today can be found [[CSC111_Python_Programs_Fall_2018#Nov._30.2C_2018| here]].
+
::* [[CSC111 Programs Created in Class 2018| Programs created in class]]
:* Introduction to Class Inheritance
+
::* [[media:CSC111_2018_Week11.pdf | slides]]
:* [[CSC111_Python_Programs_Fall_2018#Nov._30.2C_2018| Programs developed in class]]
 
:* [http://cs.smith.edu/dftwiki/media/CSC111_2018_Week13bNotes.pdf Lecture Notes]
 
----
 
[[Image:CardDimensions2.jpg|right|150px]]
 
 
* '''Wednesday'''
 
* '''Wednesday'''
:* Introduction to ''Class Inheritance''
+
::* Class Inheritance
:* [[CSC111_Python_Programs_Fall_2018#Nov._30.2C_2018| Programs developed in class]]
+
::* Example 1: Super class = GenericCar, derived classes = Taxi, CarWithTop
:* [http://cs.smith.edu/dftwiki/media/CSC111_2018_Week13bNotes.pdf Lecture Notes]
+
;:* Example 2: Super class = Rectangle, derived class = RectLabel
<br />
+
::* [[CSC111 Programs Created in Class 2018| Programs created in class]]
<br />
+
::* [[media:CSC111_2018_Week11.pdf | slides]]
<br />
 
----
 
 
* '''Friday'''
 
* '''Friday'''
:* Continuation of the concept of Class Inheritance
+
[[File:JoeOrourkeQuantumComputing111.png|150px|right|link=https://www.facebook.com/264041891883/photos/a.267301956883.154614.264041891883/10155418103811884/?type=3&theater]]
:* Introduction to ''Polymorphism''
+
::* Guest lecture by Prof. Joseph O'Rourke on ''Quantum Computing''
:* [[CSC111_Python_Programs_Fall_2018#Nov._30.2C_2018| Programs developed in class]]
 
:* [http://cs.smith.edu/dftwiki/media/CSC111_2018_Week13bNotes.pdf Lecture Notes]
 
  
 
|
 
|
* [[CSC111 Lab 12 2018 | Lab #12]]
+
* [[CSC111_Lab_11_2018 | Lab 11]]
* [[CSC111 Homework 12 2018| Homework 12]]
+
* [[CSC111_Homework_10_2018 | Homework 10]]
 
|
 
|
 
* Chapter 11 on Lists of lists
 
* Chapter 11 on Lists of lists
* Chapter 12 in Zelle, on Objects and Inheritance
+
* Chapter 12 in Zelle, on Objects and Inheritance  
 
|}
 
|}
  
Line 521: Line 548:
 
----
 
----
 
{| style="width:100%" border="0"
 
{| style="width:100%" border="0"
|width="45%"|'''Week 14'''  Dec 7
+
|width="45%"|'''Week 12'''  Apr 23
 
|width="20%"| '''&nbsp;'''  
 
|width="20%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
Line 527: Line 554:
 
|}
 
|}
 
<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''': Recursion
+
|width="60%"| '''Topics''': Polymorphism, Dictionaries, and Recursion  
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
 
|-valign="top"
 
|-valign="top"
 
|
 
|
[[File:MinionBanana.jpg|right|100px]]
+
[[File:WarppingPaper11.png|150px|right|link=http://www.science.smith.edu/dftwiki/index.php/Nice_Wrapping_Paper...]]
* '''Monday''':
+
* '''Monday'''
:* Introduction to Recursion and Recursive Functions
+
::* [[Nice_Wrapping_Paper... | Wrapping paper...]]
:* Class exercise with a ''bunch of bananas''.   Everbybody's a minion...
+
::* Polymorphism
:* Finding a banana, recursively
+
::* Dictionaries
:* [[CSC111_Python_Programs_Fall_2018#Nov._30.2C_2018| Programs developed in class]]
+
::* Recursion
:* [http://cs.smith.edu/dftwiki/media/CSC111_2018_Week14bNotes.pdf Lecture Notes]
 
<br />
 
<br />
 
<br />
 
<br />
 
<br />
 
----
 
[[File:AnimatedTowersOfHanoi.gif|right]]
 
 
* '''Wednesday'''
 
* '''Wednesday'''
:* [[CSC111_Homework_11_Samples_2018|A look at some of the Maps of HW 11.]]
+
::* Dictionaries (cont'd)
:* Visiting a Maze
+
::* Recursion
:* Fractal Trees
 
:* Revisiting the Towers of Hanoi problem
 
:* [[CSC111_Python_Programs_Fall_2018#Mon._12.2F07.2F15| Programs developed in class]]
 
:* [http://cs.smith.edu/dftwiki/media/CSC111_2018_Week14bNotes.pdf Lecture Notes]
 
<br />
 
 
 
----
 
 
* '''Friday'''
 
* '''Friday'''
:* No Class!
+
::* More recursion!
:* [[CSC111 Wrapping Paper| A sample of wrapping paper styles...]]
+
::* A look at how recursion uses memory
<br />
+
::* Back to minions and processing lists of bananas
<br />
+
::* [[CSC111 Programs Created in Class 2018| Programs created in class]]
<br />
+
::* [[media:CSC111_2018_Week12.pdf | slides]]
<br />
 
<br />
 
 
|
 
|
* [[CSC111_Lab_13_2018 | Lab 13]]
+
* [[CSC111_Lab_12_2018 | Lab 12]]
 +
* [[CSC111_Homework_11_2018 | Homework 11]]  
 
|
 
|
* Read Chapter 13 in Zelle.
+
* Zelle, Section 11.6 on Dictionaries.
 +
* Zelle, Chapter 13 on Recursion
 
|}
 
|}
  
Line 578: Line 590:
 
----
 
----
 
{| style="width:100%" border="0"
 
{| style="width:100%" border="0"
|width="45%"|'''Week 15'''  Dec 14
+
|width="45%"|'''Week 13'''  Apr 30
 
|width="20%"| '''&nbsp;'''  
 
|width="20%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
Line 586: Line 598:
 
::{| 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''': Advanced Topics: recursion
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
 
|-valign="top"
 
|-valign="top"
 
|
 
|
* '''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.
+
* '''Monday'''
 
+
[[File:maze.png|right|150px]]
 +
::* Visiting a maze
 +
::* Fractal trees
 +
::* [[CSC111_Programs_Created_in_Class_2018 | Programs created in class]]
 +
* '''Wednesday''': <font color="magenta">Final 1-week take-home exam</font>
 +
::* Towers of Hanoi
 +
::* [[CSC111_Programs_Created_in_Class_2018 | Programs created in class]]
 +
::* [[CSC111_Final_Exam_2018|Final Exam]]
 +
::* [[media:CSC111_2018_Week13.pdf | slides]]
 
|
 
|
* [[CSC111 Final Exam 2018|Final Exam]]
+
* <font color="magenta">No labs this week</font>
 +
* [[CSC111_Final_Exam_2018|Final Exam]]
 
|
 
|
+
* Chapter 13 on Recursion
 
|}
 
|}
 +
 +
 +
<br /><br />
 +
  
 
<br /><br />
 
<br /><br />
Line 622: Line 647:
 
==Python Programs in Textbook==
 
==Python Programs in Textbook==
 
<br />
 
<br />
* All the [http://cs.smith.edu/~thiebaut/classes/111/zelle/ programs] of Zelle's Python textbook
+
* All the [http://cs.smith.edu/~dthiebaut/classes/111/zelle/ programs] of Zelle's Python textbook
 
<br />
 
<br />
  
 
==Misc==
 
==Misc==
 
<br />
 
<br />
* 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].  
+
* 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://cs.smith.edu/~jfrankli/111s08/pairProgramming2000.pdf this article].  
 
 
* Video talks on Python:
 
** [http://video.google.com/videoplay?docid=-7758421725489622662&q=type%3Agoogle+engEDU+python Guido van Rossum], and [http://video.google.com/videoplay?docid=-6459339159268485356 Python 3000]
 
  
 +
==Fun Programming Ideas to Explore on Your Own==
 
<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>
+
<videoflash>WhGG__boRxU</videoflash>
<br />
+
|
=Original Map from GIS Center, Smith College=
+
[http://www.ted.com TED]: In 2007, Paul Rothemund gave TED a short summary of his specialty, DNA folding. Now he lays out in clear, abundant detail the immense promise of this field -- to create tiny machines that assemble themselves.
<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 />
 
This image is 750 × 730 pixels.
 
<br />
 
[[File:SmithMap0.gif ]]
 
<br />
 
=Additional Maps from the Smith GIS lab=
 
<br />
 
Thanks to Jon Caris, of the GIS Lab, for sending these maps.
 
<br />
 
[[File:SmithMapBuildings.jpg|center|500px]]
 
<br />
 
[[File:SmithMapBuildingsTrees.jpg|center|500px]]
 
<br />
 
[[File:SmithMapTrees.jpg|center|500px]]
 
<br />
 
(The darker trees are conifers)
 
<br />
 
 
<br />
 
<br />
 
[[Category:CSC111]]
 
[[Category:CSC111]]

Latest revision as of 08:10, 3 May 2018

D. Thiebaut (talk) 12:58, 16 January 2018 (EST)



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





Final Exam



 


Week 0 Jan 26    


Topics: Overview of CSC111 Lab/Hw Reading
  • Friday
  • No homework assignment this week



 


Week 1 Jan 29    


Topics: Introduction, Python, Idle, Piazza, Moodle submission Lab/Hw Reading
  • Monday
  • Wednesday
  • Friday
  • The programming process
  • Variables and literals
  • Memory: what does it look like?
  • Overloaded operators
  • Using the shell for quick testing
  • Definite Loops (for ... in sequence: )
  • Python documentation
  • The range() function
  • slides




 


Week 2 Feb 5    


Topics: Chapter 2: variables, definite loops, input, the range function Lab/Hw Reading
  • Monday
  • Wednesday: Snow day!
CalvinSnowDay.gif
  • Friday
  • Read Chapter 2 in Zelle.




 


Week 3 Feb. 12    


Topics: Arithmetic operators, math functions, main(). Lab/Hw Reading
  • Monday
  • 4 minutes from Grier's video: When computers were human. Start at time=28m12s.



WomenCalculatingWWII.jpg
  • Operators: * / + - ** // % abs()
  • The type() function
  • Writing a cash-machine program
  • Formatting numbers (see Section 5.8.2 in Zelle), and example program
  • Wednesday
  • Friday
  • Logistics
  • Accumulating Results
  • What are bits?
  • Slides
  • Read Chapter 3 in Zelle.




 


Week 4 Feb. 19    


Topics: Strings, Lists, and Files Lab/Hw Reading
  • Monday
  • Strings, indexing
  • positive and negative indexes
  • lists, indexing lists
  • string sections
  • Concept of mutability and immutability
  • Wednesday
  • Friday
  • Read Chapter 5 in Zelle




 


Week 5 Feb 26    


Topics: Functions, Files. Lab/Hw Reading
  • DaveMinion.png
    Monday
  • Wednesday
  • Review.
  • A note about complex 1-liners versus multi-line statements: use whatever feels comfortable!
  • Functions returning values
  • Examples, and exercises
  • Friday
  • Chapter 6: Defining Functions




 


Week 6 March 5    


Topics: Lab/Hw Reading
  • Monday
  • "...{x:y}...".format( )
  • indexing in a list
  • how range() works
  • functions receiving parameters, & returning values
  • Wednesday: Midterm Exam, in class, timed, on Moodle, closed notes, closed books, closed Idle.
  • Friday
  • Lab 6
  • No new homework. Homework 5 due after the break.
  • No new reading assignment this week.



Spring Break



 


Week 7 March 19    


Topics: Processing Files, Graphics, If Statements Lab/Hw Reading
  • Monday
  • Back to reading files
  • Writing text files
  • Graphics
  • If statements. Relational operators
  • Wednesday
  • More graphics, with points, rectangles, circles, text
  • Basics of animation
  • Testing for conditions: the IF statement
  • Friday
  • Graphics are covered in Chapter 4
  • If statements are covered in Chapter 7 in Zelle




 


Week 8 March 26    


Topics: If-Statements, Eliza Lab/Hw Reading
  • Monday
  • Boolean Operators (Chapter 8, Section 4)
  • Organization of Graphic Program
  • Dealing with Obstacles
  • Wednesday
  • Eliza
  • Indefinite loops: while loops
  • Friday
  • Indefinite Loops (Chapter 8)
  • Review for-loops
  • Nested for-loops
  • Break & Continue
  • Indefinite Loops and boolean operators are covered in Chapter 8.




 


Week 9 Apr. 2    


Topics: Exceptions, Classes, and Objects Lab/Hw Reading
  • Monday
  • Exceptions
  • Programming with Objects and Classes
  • Wednesday
  • Continue with classes
  • Min/Max of tuples
  • Die class
  • Cat class
  • Global vs local
  • Friday
  • Section 7.4 in Zelle, on Exceptions
  • Chapter 10: Defining Classes




 


Week 10 April 9    


Topics: Image Processing Lab/Hw Reading
CatGlasses.gif
FlowersSmith.gif
CatHat.gif
  • Monday
  • Image Processing
  • Nested for-loops for 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
  • Wednesday
Piece.gif
Piece2.gif
  • More Image transformations
  • Copy an image
  • Mirror an image
  • Displaying a chessboard
  • Setting up a game of checkers
  • Friday
  • Continue with the game of checkers
  • Using objects made of 2 circles
  • Using a gif image for a piece
  • Moving checkers on the board
  • Removing checkers from the board
  • Adding a Quit button to the game
  • Lists of Lists (Chapter 11)
  • Sorting
  • Reversing
  • Removing duplicates
  • Chapter 11, Designing with Lists and Classes




 


Week 11 Apr 16    


Topics: Class inheritance Lab/Hw Reading
  • Monday
  • Wednesday
  • Class Inheritance
  • Example 1: Super class = GenericCar, derived classes = Taxi, CarWithTop
  • Example 2: Super class = Rectangle, derived class = RectLabel
  • Programs created in class
  • slides
  • Friday
JoeOrourkeQuantumComputing111.png
  • Guest lecture by Prof. Joseph O'Rourke on Quantum Computing
  • Chapter 11 on Lists of lists
  • Chapter 12 in Zelle, on Objects and Inheritance




 


Week 12 Apr 23    


Topics: Polymorphism, Dictionaries, and Recursion Lab/Hw Reading
WarppingPaper11.png
  • Monday
  • Wednesday
  • Dictionaries (cont'd)
  • Recursion
  • Friday
  • Zelle, Section 11.6 on Dictionaries.
  • Zelle, Chapter 13 on Recursion




 


Week 13 Apr 30    


Topics: Advanced Topics: recursion Lab/Hw Reading
  • Monday
Maze.png
  • Wednesday: Final 1-week take-home exam
  • Chapter 13 on Recursion











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.

Fun Programming Ideas to Explore on Your Own


TED: In 2007, Paul Rothemund gave TED a short summary of his specialty, DNA folding. Now he lays out in clear, abundant detail the immense promise of this field -- to create tiny machines that assemble themselves.