Week |
Topics |
Reading
|
Week 1 1/27
|
- Tuesday (DT+JC)
- Review syllabus
- Discuss computer programming
- Preview lab exercises
- Thursday (JC)
- JES programming environment
- Variables
- Data types
- Functions
- Parameter passing
|
Read Chapters 1 and 2 in Guzdial.
|
Week 2 2/3
|
- Tuesday (JC)
- Functions
- General and reusable
- Input, output, task
- Variables & filenames
- Data types: picture, pixel and color objects
- Definite loop: the 'for' loop
- Syntax
- Out-of-bounds error
- Thursday (DT)
|
- Read chapter 3 in Guzdial
- Practice with text examples
- Be familiar with new picture functions/tools (listed at end of chapter)
|
Week 3 2/10
|
- Tuesday (DT)
- Photo doctoring
- Exercises 9 and 10
- DOs and DON'Ts
- strings
- ( between parentheses )
- nested for-loops
- mirroring images
- Thursday (JC)
- Nested for-loops
- Parameter passing by value and by reference
- Return value
- Decision-making: if-else
- Syntax
- Relational operators
- Hello example ifHello.py
|
|
Week 4 2/17
|
- Tuesday (JC)
- Nested for-loops
- Conditional decision making: if-else statements
- Selectively replacing colors
- Thursday (DT)
|
|
Week 5 2/24
|
- Tuesday (DT):
- Quote of the day #1: Beauty is more important in computing than anywhere else in technology because software is so complicated. Beauty is the ultimate defense against complexity.
Good programmers know what's beautiful and bad ones don't. -- David Gelernter, Machine Beauty
- Quote of the day #2: Programming is best regarded as the process of creating works of literature, which are meant to be read. -- Donald Knuth, Literate Programming
- Blurring images. A blurring program
- Thursday (JC):
- Activity: Acting out a program with main(), getCharacter() and the operating system
- Operating system: managing program operation, variable names and data storage, communication between functions
|
Chapter 4
|
Week 6 3/3
|
- Tuesday (JC):
- Review of concepts
- Structured problem solving
- functions: single task per function
- for-loops: repetitive tasks
- if-else: decision making
- Comments and documentation
- Data manipulation
- Boundary conditions
- Error checking
- Loss of information through loss of data
- Program top-down design
- Blending example, for Lab 6
- Chromakey example, for HW6
- Thursday (DT):
- Review of Lab 5 with JC
- Exercises with library and top-down design
|
- Chapter 5
- Chapter 9 on top-down design
|
Week 7 3/10
|
- Tuesday (DT)
- Continue with Exercises on top-down design
- Interruption for a quick peek at Python lists
- Python and grading 111 homework assignments
- Exam Q&A section
- Thursday (JC & DT)
- Videos: Python, TED, Monty Python ]]
Midterm exam during LAB. The midterm will include all material in chapters 1 through 5,
plus class discussions and examples, lab assignments and homework assignments. Exam is closed book.
|
- No new chapter this week, just a quick peek at Section 10.2.2 on Lists.
|
Week 8 3/17
|
SPRING BREAK
|
|
Week 9 3/24
|
- Sound Tool
- Increasing the amplitude of the signal (doubling)
- Noise issue
- Decreasing the amplitude of the signal.
- Reducing the noise
- Saturating/clipping the noise
- Copying sound clip
- Creating an echo
- Sound1.py : A collection of functions that manipulate sound
- Thursday: (JC)
- And now for something completely different: Matlab
- Programming environment for Matlab
- New syntax for familiar structures
- Practice the examples in the slides
- Simple stat.m script
- Hello World! script
|
- Chapter 6: the pysics of sound, manipulating sound
- Chapter 7: Modifying samples in a range
- Chapter 8: Making sound by combining pieces
|
Week 10 3/31
|
- Tuesday: (JC)
- Matlab
- Recap of Thursday's Matlab overview
- Plotting in Matlab
- Help resources
- Preview of wind power analysis
- Thursday: (DT)
|
- Slides on Matlab overview
- Matlab help
- Numerous online resources
- The Mathworks own site with tutorials and documentation
|
Week 11 4/7
|
- Tuesday: (DT)
- Playing with strings of characters ( log)
- Splitting strings into lists of strings (words) ( log)
- Splitting text into lines and words ( log )
- Exercises (and their solutions)
- Linux
- Class accounts
- Secure Shell
- Emacs
- String processing
- Thursday: (JC)
- File I/O
- Opening and closing files
- Reading from and writing to files
|
|
Week 12 4/14
|
- Tuesday: (JC)
- Static HTML files
- Basic HTML tags and formatting
- Dynamically creating HTML files with Python
- More Linux commands
- Copying, moving and deleting files
- Making new directories
- Setting files permissions, for your web page
- Thursday: (DT)
- Playing with Python on a Mac
- The file structure on a Mac (OS X based on Linux)
- GUI versus text mode
- Accessing beowulf from terminal window on a Mac
- (start X11 in utilities)
- ssh -Y 111b-xx@beowulf.csc.smith.edu
|
- Sections 11.1 and 11.2
- String formatting with %s and %d is covered in this nice page]
- The official Python Web page on the urllib2 module can be found here.
The examples are at the end of the page.
- Here are some rough notes on how to connect to beowulf from a Windows XP or Vista PC using X11, as we did with the mac. Warning: not easy to do; use at your own risk! :-)
|
Week 13 4/21
|
- Tuesday: (DT)
- Thursday: (JC)
- Python: Classes and Objects
- Definitions: Class, Object, Attribute, Method, Constructor
- Examples
|
- Classes and Object-Oriented Programming are covered in Section 14.3
- Random numbers (needed for the homework) are covered in Section 10.4.2
- Accessing URL is covered in Section 10.5, on Networks
|
Week 14 4/28
|
- Tuesday: (JC)
- Putting it ALL together
- Strings and string manipulation
- File I/O
- Using Python to put other URL content in our HTML pages =
- Using Python to create HTML pages +
- Using Python to get information from other URLs
- Using classes and objects to better organize and communicate our programs
- Example: FriendInfo.py
- Example: useFriendInfo.py
- Thursday: (JC+DT)
- Absolutely NO late exams accepted. Late exams receive 0 credit, so be sure to submit well before the deadline
|
|
If you decide to work in pairs for the homework assignments, you need to follow the protocol for 'pair programming' as discussed in this article.