Difference between revisions of "CSC111 Class Page 2018"
(→ ) |
(→ ) |
||
Line 369: | Line 369: | ||
|} | |} | ||
<br /> | <br /> | ||
− | ::{| class="mw-collapsible" style="width:100%" border="1" | + | ::{| class="mw-collapsible mw-collapsed" style="width:100%" border="1" |
|- style="background:#dddddd;" | |- style="background:#dddddd;" | ||
|width="60%"| '''Topics''': If-Statements, Eliza | |width="60%"| '''Topics''': If-Statements, Eliza |
Revision as of 20:31, 15 April 2018
D. Thiebaut (talk) 12:58, 16 January 2018 (EST)
Week 0 Jan 26 |
Topics: Overview of CSC111 Lab/Hw Reading - Friday
- Introduction
- Syllabus
- Expectations
- Pair Programming
- A feel for coding in Python
- Some programs to play with
- Slides
- No homework assignment this week
- For next week, Read Chapter 1 in Zelle (textbook)
- Read the article on Pair Programming
Week 1 Jan 29 |
Topics: Introduction, Python, Idle, Piazza, Moodle submission Lab/Hw Reading - Monday
- We are getting the "feel" for Python programming...
- More examples of Python programs
- Preparation for Lab #1: Install Idle & Python on your laptop
- Some programs to play with in Idle
- Wednesday
- We continue with our exploration of Python. Getting the intuitive aspect of programming.
- Introduction to Lab 1
- Assignments
- Variables. Rules, camelCase
- Programs created in class
- slides
- 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
- Read Chapter 1 in Zelle (textbook)
- Read the article on Pair Programming
Week 2 Feb 5 |
Topics: Chapter 2: variables, definite loops, input, the range function Lab/Hw Reading - Monday
- Counted loops and the range() expression
- Getting data from the user using the input() function
- Using eval() for numbers obrained from the keyboard
- Using the on-line Python documentation
- Slides
- Programs created in class
- Wednesday: Snow day!
- Friday
- A word from Faith
- Understanding eval( input() )
- Exercise 1
- Exercise 2
- Programs created in class
- Slides
- 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.
- Operators: * / + - ** // % abs()
- The type() function
- Writing a cash-machine program
- Formatting numbers (see Section 5.8.2 in Zelle), and example program
- Wednesday
- Formatting strings, ints and floats
- Using a main() function
- Accumulating results
- Programs created in class
- 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
- We have class on Wednesday, but the afternoon labs are cancelled
- Typical midterm exam questions
- slicing lists and strings
- the concepts of mutable and immutable lists/strings
- strings as objects
- String methods on Python.org
- slides
- Friday
- String methods
- String methods on Python.org
- Working with text files
- slides
- Programs created in class
- No Labs this week (Rally Day)
- Optional Homework Prep
- Homework 4
- Read Chapter 5 in Zelle
Week 5 Feb 26 |
Topics: Functions, Files. Lab/Hw Reading - Monday
- CreateTextFile.py: a program to create simple text files
- Functions & minions
- Programs created in class
- slides
- Wednesday
- Review.
- A note about complex 1-liners versus multi-line statements: use whatever feels comfortable!
- Functions returning values
- Examples, and exercises
- Friday
- Function Boot Camp!
- Programs created in class
- slides
- Lab 5
- Homework 5, due the Thursday after spring break.
- 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
- The concept of a Python library
- Comparing Python to Java
- Understanding the N-Queens problem
- Solving the N-Queens problem in Python
- Solving the N-Queens problem in Java
- Programs created in class
- And now, for something completely different...
- slides
- 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
- The If statements (Chapter 7)
- Examples
- Exercises with If statements
- Rock, Paper, Scissors
- slides
- Programs created in class
- 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
- Creating a graphic class for a car
- slides
- Programs created in class
- Section 7.4 in Zelle, on Exceptions
- Chapter 10: Defining Classes
Week 10 April 9 |
Topics: Image Processing Lab/Hw Reading - 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
- 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
- Sorting lists of objects (lists of cats)
- Filtering data
- Programs created in class
- slides
- Chapter 11, Designing with Lists and Classes
Week 11 Apr 16 |
Topics: Class inheritance Lab/Hw Reading - Monday
- Class Inheritance
- Wednesday
- Friday
- Guest lecture by Joseph O'Rourke on Quantum Computing
Week 12 Apr 23 |
Topics: Lab/Hw Reading - Monday/Wednesday
- Friday
- Zelle, Section 11.6 on Dictionaries.
Week 13 Apr 30 |
Topics: Lists of lists, Inheritance Lab/Hw Reading - Monday
- Wednesday: Final 1-week take-home exam
- No labs this week
- Chapter 11 on Lists of lists
- Chapter 12 in Zelle, on Objects and Inheritance
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. |