Difference between revisions of "CSC111 Class Page 2014"

From dftwiki3
Jump to: navigation, search
(Links and Resources)
Line 402: Line 402:
 
|}
 
|}
  
 +
<br />
 
=Links and Resources=
 
=Links and Resources=
 
 
<br />
 
<br />
 
+
==On Line Python books==
 
<br />
 
<br />
 
==On Line Python books==
 
 
 
* [http://blogs.discovermagazine.com/cosmicvariance/2011/09/08/python/ disocovermagazine.com] blog.  Check out the answers posted by many readers.  They contain some interesting links that you may find useful!
 
* [http://blogs.discovermagazine.com/cosmicvariance/2011/09/08/python/ disocovermagazine.com] blog.  Check out the answers posted by many readers.  They contain some interesting links that you may find useful!
 
+
<br />
 
==Python keywords==
 
==Python keywords==
 
+
<br />
 
;The list of all the reserved words of the Python language:
 
;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
 
: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
Line 422: Line 419:
 
* [http://jeremy.zawodny.com/emacs/emacs-2.html A good Emacs tutorial]
 
* [http://jeremy.zawodny.com/emacs/emacs-2.html A good Emacs tutorial]
 
* [[Emacs Quick Reference | Emacs Quick Reference]]
 
* [[Emacs Quick Reference | Emacs Quick Reference]]
 
+
<br />
 
==Misc==
 
==Misc==
 +
<br />
 
* If you decide to work in pairs for the homework assignments, you need to follow the protocol for 'pair programming' as discussed in [http://maven.smith.edu/~jfrankli/111s08/pairProgramming2000.pdf this article].  
 
* If you decide to work in pairs for the homework assignments, you need to follow the protocol for 'pair programming' as discussed in [http://maven.smith.edu/~jfrankli/111s08/pairProgramming2000.pdf this article].  
  
Line 432: Line 430:
  
 
* a video of [http://www.youtube.com/watch?v=x2FimkptxIk digital horses]: what we can do with lists of objects!
 
* a video of [http://www.youtube.com/watch?v=x2FimkptxIk digital horses]: what we can do with lists of objects!
 
+
<br />
 
==Software==
 
==Software==
 
+
<br />
 
* Installing and using the [http://www.smith.edu/its/tara/file_transfer/ssh_sftp.html#installing Secure Shell Client] on a Windows PC[http://cs.smith.edu/~thiebaut/classes/111/SecureShell/ .]
 
* Installing and using the [http://www.smith.edu/its/tara/file_transfer/ssh_sftp.html#installing Secure Shell Client] on a Windows PC[http://cs.smith.edu/~thiebaut/classes/111/SecureShell/ .]
 
    
 
    
 
* Using [http://www.math.toronto.edu/admin/ssh.html SSH] on Windows, Linux, or on a Mac with OS X
 
* Using [http://www.math.toronto.edu/admin/ssh.html SSH] on Windows, Linux, or on a Mac with OS X
  
==Useful Math==
+
<br />
 +
=Class Videos=
 +
<br />
 +
{| class="wikitable"
 +
|
 +
<center>[http://www.youtube.com/watch?v=YF9dxRkY4E8 http://img.youtube.com/vi/YF9dxRkY4E8/mqdefault.jpg]<br />[http://www.youtube.com/watch?v=YF9dxRkY4E8 <b>CSC111 For-Loop exercises -- Exercise #5</b>]<br /><br /></center>
 +
|
 +
<center>[http://www.youtube.com/watch?v=TNfI1tO70CE http://img.youtube.com/vi/TNfI1tO70CE/mqdefault.jpg]<br />[http://www.youtube.com/watch?v=TNfI1tO70CE <b>CSC111 For Loop Exercises -- Exercise #4</b>]<br /><br /></center>
 +
|-
 +
|
 +
<center>[http://www.youtube.com/watch?v=1VXPBeYBiuo http://img.youtube.com/vi/1VXPBeYBiuo/mqdefault.jpg]<br />[http://www.youtube.com/watch?v=1VXPBeYBiuo <b>CSC111 For-Loop Exercises -- Exercise #3</b>]<br /><br /></center>
 +
|
 +
<center>[http://www.youtube.com/watch?v=y1dv69bSSwk http://img.youtube.com/vi/y1dv69bSSwk/mqdefault.jpg]<br />[http://www.youtube.com/watch?v=y1dv69bSSwk <b>CSC111 For-Loop Exercises -- Exercise #2</b>]<br /><br /></center>
 +
|-
 +
|
 +
<center>[http://www.youtube.com/watch?v=_FZEwCOyQvA http://img.youtube.com/vi/_FZEwCOyQvA/mqdefault.jpg]<br />[http://www.youtube.com/watch?v=_FZEwCOyQvA <b>CSC111 For-Loop Exercises: Solution for Exercise #1</b>]<br /><br /></center>
 +
|
 +
<center>[http://www.youtube.com/watch?v=P1Myggumnso http://img.youtube.com/vi/P1Myggumnso/mqdefault.jpg]<br />[http://www.youtube.com/watch?v=P1Myggumnso <b>CSC111 -- Using PythonTutor</b>]<br /><br /></center>
 +
|-
 +
|
 +
<center>[http://www.youtube.com/watch?v=ELRMtELi0zE http://img.youtube.com/vi/ELRMtELi0zE/mqdefault.jpg]<br />[http://www.youtube.com/watch?v=ELRMtELi0zE <b>Running Python Programs from the Command Line (Mac)</b>]<br /><br /></center>
 +
|
 +
<center>[http://www.youtube.com/watch?v=6x2qtLrQdqU http://img.youtube.com/vi/6x2qtLrQdqU/mqdefault.jpg]<br />[http://www.youtube.com/watch?v=6x2qtLrQdqU <b>Python on the command line in Windows</b>]<br /><br /></center>
 +
|-
 +
|
 +
<center>[http://www.youtube.com/watch?v=1FomulmEjuk http://img.youtube.com/vi/1FomulmEjuk/mqdefault.jpg]<br />[http://www.youtube.com/watch?v=1FomulmEjuk <b>CSC111 Intro to Lab 3</b>]<br /><br /></center>
 +
|
 +
<center>[http://www.youtube.com/watch?v=TU2zzMM7v4A http://img.youtube.com/vi/TU2zzMM7v4A/mqdefault.jpg]<br />[http://www.youtube.com/watch?v=TU2zzMM7v4A <b>CSC111 Notes on Homework 1 2014</b>]<br /><br /></center>
 +
|-
 +
|
 +
<center>[http://www.youtube.com/watch?v=OCRvN0NJlHg http://img.youtube.com/vi/OCRvN0NJlHg/mqdefault.jpg]<br />[http://www.youtube.com/watch?v=OCRvN0NJlHg <b>Comments for CSC111 TAs on Homework 1</b>]<br /><br /></center>
 +
|
 +
<center>[http://www.youtube.com/watch?v=haqpipMxq_c http://img.youtube.com/vi/haqpipMxq_c/mqdefault.jpg]<br />[http://www.youtube.com/watch?v=haqpipMxq_c <b>Qt5 Tutorial: Adding a Debugging Window to your Application</b>]<br /><br /></center>
 +
|-
 +
|
 +
<center>[http://www.youtube.com/watch?v=qwEDoAGB3NE http://img.youtube.com/vi/qwEDoAGB3NE/mqdefault.jpg]<br />[http://www.youtube.com/watch?v=qwEDoAGB3NE <b>CSC111 Comments on Homework 2</b>]<br /><br /></center>
 +
|
 +
<center>[http://www.youtube.com/watch?v=1_aF6o6t-J4 http://img.youtube.com/vi/1_aF6o6t-J4/mqdefault.jpg]<br />[http://www.youtube.com/watch?v=1_aF6o6t-J4 <b>Qt5  Tutorial:  Building a simple Console application</b>]<br /><br /></center>
 +
|-
 +
|
 +
<center>[http://www.youtube.com/watch?v=1ILvH24PYHg http://img.youtube.com/vi/1ILvH24PYHg/mqdefault.jpg]<br />[http://www.youtube.com/watch?v=1ILvH24PYHg <b>Qt5 Tutorial: A 3-Widget Application</b>]<br /><br /></center>
 +
|
 +
<center>[http://www.youtube.com/watch?v=TgZxW6w6w8c http://img.youtube.com/vi/TgZxW6w6w8c/mqdefault.jpg]<br />[http://www.youtube.com/watch?v=TgZxW6w6w8c <b>CSC111 Comments on Lab #1</b>]<br /><br /></center>
 +
|-
 +
|
 +
<center>[http://www.youtube.com/watch?v=bjVO2MZroUU http://img.youtube.com/vi/bjVO2MZroUU/mqdefault.jpg]<br />[http://www.youtube.com/watch?v=bjVO2MZroUU <b>CSC111 Spring 2014: Finding the Class Web Page</b>]<br /><br /></center>
 +
|
 +
<center>[http://www.youtube.com/watch?v=H8LDfJhOQoA http://img.youtube.com/vi/H8LDfJhOQoA/mqdefault.jpg]<br />[http://www.youtube.com/watch?v=H8LDfJhOQoA <b>2D Packing of rectangles with 1 Thread</b>]<br /><br /></center>
 +
|-
 +
|
 +
<center>[http://www.youtube.com/watch?v=vKiCq6dEyrI http://img.youtube.com/vi/vKiCq6dEyrI/mqdefault.jpg]<br />[http://www.youtube.com/watch?v=vKiCq6dEyrI <b>2D multithreaded packing of rectangles.</b>]<br /><br /></center>
 +
|
 +
<center>[http://www.youtube.com/watch?v=dIjJHexzPSI http://img.youtube.com/vi/dIjJHexzPSI/mqdefault.jpg]<br />[http://www.youtube.com/watch?v=dIjJHexzPSI <b>2D multithreaded packing of rectangles with pre-placed items.</b>]<br /><br /></center>
 +
|-
 +
|}
  
* [[Media:powersOfTwo.pdf | Powers of 2]]
 
 
<br>
 
<br>
 
<br>
 
<br>

Revision as of 17:01, 1 March 2014

--D. Thiebaut (talk) 09:58, 7 January 2014 (EST)


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




Prof and TAs

Dominique Thiébaut email
Dept. Computer Science
Ford Hall, 356.
Telephone: 3854
Office hours Monday, 2-4 p.m., Wednesday 1-3 p.m., and by appointments

 



To see when and where TAs are available this week, click here.


Weekly Schedule


First Half


Week Topics Reading
Week 1
1/27
  • Monday
    • A look at the syllabus
    • The Python integrated environment, named Idle
    • Python is free and can be downloaded from the Python download page
    • Example of a Python program

    • What is a programming language? The idea of a Syntax
    • Python keywords
    • A simple "Hello World!" program in Python
    • Errors
  • Wednesday
    • Computer architecture: Processor and memory. Their different roles.
    • The concept of an imperative language.
    • Python is a language. Difference between interpreted languages and compiled languages.
    • Getting into the logic of programming. This week we'll "program as an exercise in logic intuition," rather than learning the basics.
    • Playing with Python.
      • variables
 x = 3
 name = "hello"
      • keywords: and del from not while as elif global or with assert else if pass yield break except import print class exec in raise continue finally is return def for lambda try
      • Printing strings. What's a string?
      • Printing numbers. What's a number? What is the difference between "3" and 3?
      • Understanding the difference between an editor and the shell (console) windows
      • Looping through a list and outputting formated information
  • Friday
    • Comments on Lab 1
    • Camels.png
      Variables
      • Rules for labeling a variable
      • CamelCase for regular variables, uppercase for constants
      • Thinking of a variable as a box, or drawer.
      • Variables can switch contents
      • Types of values: int, float, string, char
    • The concept of an algorithm (Section 1.7 in textbook)
      • Must be unambiguous, executable, and terminating.
      • Example: calculating the return on a bank account with a yearly interest rate.
    • Review of the week: some of the concepts covered: variables, literals, integers, reals, strings, functions, statements, comments




  • Reading
    • This week, you should read Chapter 1 in Python for Everyone, up to Section 1.6, included.
    • Read the article on pair programming. We will discuss it in class during the second week of class.
Week 2
2/3
  • Saturday/Sunday: Moodle Quiz on Chapter 1. Go to Moodle, select CSC111, and locate the Quiz in the "Week 1-Chapter 1" section. (If I have let you in the class, but you are not officially registered yet, please send me an email (dthiebaut@smith.edu) so that I can add you to the moodle roster. )
  • Monday
    • Message from student liaisons
    • The two-letter Id needed to submit your program is available here!
    • Meet Guido van Rossum
      VideoLogo.png

    • Variables:
      • They are labels for boxes containing information. Boxes in memory.
      • Different types. Can be combined together.
      • Values can be assigned to them with =
      • Operators: + - * / //  %
      • Teller Machine example: given some amount of $ to withdraw from the machine, figure out the number of $20-, $10-, $5- and $1-bills. Here's the program we finished with in class.


  • Wednesday:
CollegeHallSnow02052014.jpg
    • THERE WILL BE CLASS AND LAB TODAY! I AM ALREADY IN FORD HALL --DT









VideoLogo.png
FulghumAllINeedToKnow.png
    • Discussion of the pair-programming article in class.

    • Continue with ATM/Teller machine example: The importance of pseudo-code, and going one step at a time.
    • Changing a float into an int, and vice versa
    • Functions: print(), abs(), trunc() (predefined)




VideoLogo.png
  • Reading
    • Read the article on pair programming. We will discuss it in class on Wednesday.
    • Finish reading Chapter 2 by the end of this week.
    • Read Chapter 3 up to Section 3.6 3.8 (not included) before Monday 2/10.
    • Add
Week 3
2/10
  • Saturday/Sunday: Moodle Quiz #2 on Chapter 3. Go to Moodle, select CSC111, and locate the Quiz in the "Week 2-Chapter 3" section. The quiz closes Monday at 10:59 a.m.
  • Monday
    • A quick glimpse of what's ahead: Code Blocks
    • If-statements
      • Flowcharts
      • The idea of boolean values, George Boole (1815-1864), 2-way directionals
      • Relational operators < <= > >= ==, !=
      • Exercise 1: Revisiting the ATM program
      • Exercise 2: Printing a tight box around 3 strings of unknown length: FindMax.py


  • Wednesday
    • Poll for Lab Section 1 students
    • Continue exercises from Monday
      • Exercise 3 (tricky!): Same as Exercise 2 but using this approach: print( "|%30s|" % name ), where 30 is the max
      • More exercises!
      • Negating a boolean expression (point inside a rectangle)
      • Boolean variables
      • Rock, Paper, Scissors


  • Thursday
Enjoy the day off! Enjoy the snow! Please do Lab 3 on your own and pick a time when TAs are available to help you out."




  • Reading
    • Finish reading Chapter 3 this week!
Week 4
2/17
  • Saturday/Sunday: Moodle Quiz on Chapter 4: While Loops. The quiz will cover only While loops, from Section 4.1 to 4.5 included. The quiz will close right before Monday's class.
  • Monday:
    • Watch the exchange between the robot played by Robin Williams and his owner, played by Sam Neil in the 1999 movie Bicentenial Man". Here one of the two "people" having a conversation is an ultra-logical being: a robot, who is not fully aware of the subtleties of the art of (human) conversation:



(advance the movie to 7 minutes and 10 seconds)



  • Wednesday: RALLY DAY Lab 1 will be split in 2 sections, one Wed. 7-9 p.m., and one Thursday 7-9 p.m.. Both will be in Ford Hall 342.


  • Friday
    • Comments about Lab #4, Challenge 4:
Modify the program above so that it stops 1) if the user enters -1 2) or when the sum of the numbers is greater than 20.
    • VideoLogo.png
      VideoLogo.png
      Working with sentinels
    • Example 1
    • Example 2 , reading Emily Dickinson's poetry
    • Two illustrative videos for running Python on the command line.









  • Reading Chapter 4, first half on While loops for Monday 2/17, second half on For loops during the week.
Week 5
2/24
  • Saturday/Sunday: Moodle Quiz on the second half of Chapter 4: for Loops. The quiz will cover only for loops, from Section 4.6 to the end of Chapter 4. The quiz will close right before Monday's class.
  • Monday
    • For-Loops: review what they do, how they work
    • Playing with sound files
    • A bit of physics

    • Physics of sound: A metal plate is connected to an oscillator and frequency is increased...
            file = pickAFile()
            sound = makeSound( file )
            blockingPlay( sound )
    • Basic functions can be found here
    • Exercise 1: reduce the sound intensity by half
    • Exercise 2: play the sound file backwards
    • The print() function is getting more powerful by the minute! sep and end parameters!


  • Wednesday
    • The print() function is getting more powerful by the minute! sep and end parameters!
    • Simple sound modification exercises.


DontBeAChimp.png
  • Friday





  • Reading
    • Chapter 4 on For-Loops. The quiz for Monday will ask questions about material seen in class the week of 2/24.
Week 6
3/3
  • Saturday/Sunday: Moodle Quiz on for Loops. The quiz will close right before Monday's class.
  • Monday
  • Wednesday
  • Friday



  • Reading
Week 7
3/10



  • Reading


Spring Break



Second Half


Week Topics Reading
Week 9
3/24
  • Monday
  • Wednesday
  • Friday



  • Reading
Week 10
3/31
  • Monday
  • Wednesday
  • Friday



  • Reading
Week 11
4/7
  • Monday
  • Wednesday
  • Friday (Visit by admitted students)



  • Reading
Week 12
4/14
  • Monday
  • Wednesday
  • Friday



  • Reading
Week 13
4/21
  • Monday
  • Wednesday
  • Friday



  • Reading
Week 14
4/28
  • Monday
  • Wednesday
  • Friday: Final Take-Home EXAM



  • Reading


Links and Resources


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

Linux


Misc


  • 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.
  • All the programs of Zelle's Python textbook


Software


  • Using SSH on Windows, Linux, or on a Mac with OS X


Class Videos


http://img.youtube.com/vi/YF9dxRkY4E8/mqdefault.jpg
CSC111 For-Loop exercises -- Exercise #5

http://img.youtube.com/vi/TNfI1tO70CE/mqdefault.jpg
CSC111 For Loop Exercises -- Exercise #4

http://img.youtube.com/vi/1VXPBeYBiuo/mqdefault.jpg
CSC111 For-Loop Exercises -- Exercise #3

http://img.youtube.com/vi/y1dv69bSSwk/mqdefault.jpg
CSC111 For-Loop Exercises -- Exercise #2

http://img.youtube.com/vi/_FZEwCOyQvA/mqdefault.jpg
CSC111 For-Loop Exercises: Solution for Exercise #1

http://img.youtube.com/vi/P1Myggumnso/mqdefault.jpg
CSC111 -- Using PythonTutor

http://img.youtube.com/vi/ELRMtELi0zE/mqdefault.jpg
Running Python Programs from the Command Line (Mac)

http://img.youtube.com/vi/6x2qtLrQdqU/mqdefault.jpg
Python on the command line in Windows

http://img.youtube.com/vi/1FomulmEjuk/mqdefault.jpg
CSC111 Intro to Lab 3

http://img.youtube.com/vi/TU2zzMM7v4A/mqdefault.jpg
CSC111 Notes on Homework 1 2014

http://img.youtube.com/vi/OCRvN0NJlHg/mqdefault.jpg
Comments for CSC111 TAs on Homework 1

http://img.youtube.com/vi/haqpipMxq_c/mqdefault.jpg
Qt5 Tutorial: Adding a Debugging Window to your Application

http://img.youtube.com/vi/qwEDoAGB3NE/mqdefault.jpg
CSC111 Comments on Homework 2

http://img.youtube.com/vi/1_aF6o6t-J4/mqdefault.jpg
Qt5 Tutorial: Building a simple Console application

http://img.youtube.com/vi/1ILvH24PYHg/mqdefault.jpg
Qt5 Tutorial: A 3-Widget Application

http://img.youtube.com/vi/TgZxW6w6w8c/mqdefault.jpg
CSC111 Comments on Lab #1

http://img.youtube.com/vi/bjVO2MZroUU/mqdefault.jpg
CSC111 Spring 2014: Finding the Class Web Page

http://img.youtube.com/vi/H8LDfJhOQoA/mqdefault.jpg
2D Packing of rectangles with 1 Thread

http://img.youtube.com/vi/vKiCq6dEyrI/mqdefault.jpg
2D multithreaded packing of rectangles.

http://img.youtube.com/vi/dIjJHexzPSI/mqdefault.jpg
2D multithreaded packing of rectangles with pre-placed items.









Back To Main Page