csc 111: Introduction to Programming I

Judy Franklin

Spring 2012

Office: 355 Ford Hall

Office Hours:

Phone: ext. 3858 (office)

Monday 4:00-5:00

email: jfrankli@smith.edu

or by appointment


Lectures (Sec 01): Mon, Wed, Fri 10:00 - 10:50, room 240 Ford Hall (large lecture room)
Lab Section: Wed 1:10 - 3:00 (sec 01), Thurs 1:00-2:50 (sec 02), room 241 Ford Hall (graphics lab)

Course Content: An introduction to computer science and computer programming. The programming language Python will be taught and used to introduce programming techniques, and students will gain proficiency with the UNIX operating system.

This is the first course in the Computer Science major. No previous experience is assumed.

Required Textbooks:

  1. Python Programming: An Introduction to Computer Science, Second Edition, by John Zelle, Franklin, Beedle, and Associates, 2010.

    ISBN-10: 1590282418 | ISBN-13: 978-1590282410

    Author's text web site
    Zelle's graphics module on-line reference
  2. Python Pocket Reference: Python in Your Pocket (Pocket Reference) Fourth Edition, Mark Lutz; O'Reilly Publishers

    ISBN-10: 0596158084 | ISBN-13: 978-0596158088

Course Work: Weekly labs and programming projects and bi-weekly quizzes. You will work in pairs on the programming assignments, and take the quizzes and exams on your own..
Two exams: 1) an open-book midterm during lab on Wednesday and Thursday (TBA) 2) an open-book exam given during final exam period (see syllabus).


Jump here for syllabus
Jump here for TA schedule

Course Grade: The programming projects are 60% of your course grade, quizzes are 15% (this semester programs plus textbook homework = 75%), the midterm exam is 12.5%, and the second exam is 12.5%. Attendance in both class and lab, as well as class participation is also a factor and may supercede these percentages by plus or minus 5%.
There is a whole grade penalty for each day that a project is late. Programs that are not interpretable by Python will not receive any credit.

Additional Web links:

  • More Python Links:
  • Scientific and Numeric programming in python
  • Python Library Reference (www.python.org/doc/current/lib/lib.html)
  • Python Daily URL. Up to the minute news on new python programs, such as secure voting software.
  • The Python Image Module (PIL)
  • Audio in Python
  • Ways to Beep
  • Carbon module
  • Soundscape generator
  • Soundscape again - boodler.org
  • aiff files
  • New media support for CPython
  • pygame - Game Development in python

    CSC111 Teaching Assistants:
    • Naomi Long
    • Elizabeth Jackson
    • Mallory Fae Merryman
    • Cordelia Nowak
    • Julia Edwards
    • Emily Flynn
    • Gavi Levy Haskell
          Lab Assistants
    • Section 01 - Libby Jackson
    • Section 02 - Libby Jackson
     

    Help Sessions: RoomTA
    Sunday 2-4 Ford Hall 241 Cordelia Nowak (2-4)
    Sunday 7-10 Ford Hall 241 Gavi Levy Haskell (7-9) and Mallory Merryman (8-10)
    Monday 7-10 Ford Hall 241 Emily Flynn (7-9), Julia Edwards (7-9), Naomi Long (8:45-10:45) and Gavi Levy Haskell
    Thursdays 7-10 Ford Hall 342 Mallory Merryman (7-9) and Naomi Long (8-10)

    Syllabus Table: may be updated during semester

    Topic

    Reading

    Lab Assignment

    Lab Date

    Homework

    Distributed On

    Due Date

    What is CS?,
    o Pair Programming
    o Functions
    o Identifiers
    o Reserved Words
    o Statements
    o Syntax
    o print function
    o Assignment statements Python

    Zelle: Prefaces, Intro, and Ch2, up to loops
    Article: Pair programming



    stanDev.py
    Nano scale CPUs - circa 2011

    New York Times on CS Education

    Lab 1

    Feb 1,2

    Hw 1



    Tetris written in python - cute

    Feb 1,2

    Feb 6

    o ASCII table
    o Assignment statements
    o Binary Numbers,
    o Expressions,
    o Numbers and types,
    o Operators, including Modulus
    o More Reserved words,
    o Input/output,
    o character representations,
    o Function Definitions

    Readings in Zelle:

    1. Ch2 sections 2.1-2.5
    2. Ch3 sections 3.1, 3.2, and 3.5
    3. Ch5 pages 131-133 (section 5.4.1)
    4. Ch6 pages 169-173 (section 6.2)

    Lab2

     

    Character Representation. First ASCII, then Unicode. The Unicode link provides some history:

    ASCII Table

    Parity bit

    Unicode

    Feb. 8,9

     

    change.py
    quadratic.py
    sphere.py

    Hw2, part 1
    hw2 Algorithm

    Hw2, part 2

    Feb. 8,9

    Feb. 13

    o Definite Loops
    o Strings
    o Lists
    0 Decision Structure - if statement

    Zelle:

    1. Ch3 section 3.3
    2. Ch5 sections 5.1 - 5.8
    3. Ch5 sections 7.1 - 7.3

    Pair Programming
    Review

    Why is it called eXtreme Programming?

    Diebold: Stealing Votes

    Lab3
    lab3judy.py (solution)

    Feb15ClassSession.txt

    Feb15ClassSession.txt


    month.py
    month2.py
    username.py

    Feb. 15,16

    Hw3

    Hw3 part2, text exercise, due Tues Feb 21




    3) Roger Dannenberg - CMU - In Transit


    Feb. 15,16

    Feb. 20

    Decision Structures,
    Strings and Lists,
    Start Graphics

    Zelle: Ch 7
    Ch 6, 175-189 (section 6.4) (skip program triange2.py on page 182)

    quadratic2.py
    quadratic3.py
    aveTen.py
    futval.py


    Talk to Lee

    Claudio personality bot


    2) Kismet robot

    Feb. 22,23

    Rally Day ThursFeb 23

    No lab or Wed or Thurs this week


    Hw4 Text homework

    circleExample1.py
    circleExample2.py
    graphics.py

    Feb. 19

    Feb. 27

    Chapter 4, object-oriented programming
    graphics

    Chapter 7, Decision Structures - the if statement>

    Zelle's graphics programming reference page

    Zelle: Ch 4


    Graphics, motion, collision avoidance

    lab4


    Feb. 29, Mar 1.

    hw4

     

    hw4 text part2

    hw3.txt solution (Yisi Lu)

    hw4Solution.txt solution (Breanna Lindo)

    hw4Part2TextSolution

    Class Notes from March9

    lab4Judy.py

    Feb. 29, Mar 1

    Mar. 5

    o time module
    o more complex programs
    o Images in graphics  
    python's time module
     

    tweety.gif
    Graphics, Storm generation and user interaction

    lab5=hw5

    avatars.py
    avatarsLoop.py
    circleRain.py


    Mar. 7,8

    lab5=hw5

    hw4Judy.py

    Hw5Judy.py


    Roger Dannenberg, accompanist program

    Mar. 7,8

    Mar. 12 11:59pm, but try to finish it earlier because of midterm.

    ALL READING, labs, and homeworks assigned up to this point

    Readings from Zelle:
    Chapters 2, 3, 4
    
    Chapter 5: sections 5.1-5.6
    Chapter 7: sections 7.1-7.3 and 7.5
       (the if statement decision structure)
    Chapter 11: sections 11.2.1 and 11.2.2
        (lists)
    

    *No* Class on March 12
    Class on March 14 is a help session

    sphere.py

    MIDTERM EXAM DURING LAB
    open book, open notes. No computers!

    Mar. 14,15

    MIDTERM EXAM DURING LAB
    open book, open notes. No computers!

    MIDTERM EXAM DURING LAB

    No HW over break.

    Mar. 16

    No class Friday Mar 16

    No HW over break.

    Spring Break

    March 19

    Spring Break

    Mar. 23

    Spring Break

    Mar. 19-23

    No HW over break.

    Function Definitions


    Python 3.2 Quick Reference from New Mexico Tech

    While Loops
    Decision Structures

    Chapters 6,7 and 8 (pages 233-244): defining functions, decision structures, and indefinite loops, respectively.
    and Chapter 5 Writing to Files

    Compare
    sphere.py
    with sphereFunctions.py

    Lab6

    Mar. 28,29

    lab6demo.py

    Hw6


    "GuitarBotana" by Mari Kimura

  • GuitarBot
  • Mar. 28,29

    March 28, noon, Ford Hall 241
    Presentation of the Computer Science Major
    Courses you can take in the Fall,
    if you have completed CSC 111:
    
    (1) CSC 102/103: How the Internet Works/
    How Computers Work.
    
    (2) CSC 240: Computer Graphics.
    The only prereq is CSC 111.
    
    (3) CSC 249: Computer Networks.
    The only prereq is CSC 111.
    
    (4) MTH 153: Discrete Math.
    This is a requirement for the 
    CS major, the only specific math 
    course required.
    
    (5) CSC 231 Microprocessors, If you
    have sufficient programming experience
    and skills beyond CSC 111, with
    permission of the instructor. 
    

    April 2

    Files, Functions,
    While loops
    and sorting

    Courses you can take in the Fall,
    if you have completed CSC 111:
    
    (1) CSC 102/103: How the Internet Works/
    How Computers Work.
    
    (2) CSC 240: Computer Graphics.
    The only prereq is CSC 111.
    
    (3) CSC 249: Computer Networks.
    The only prereq is CSC 111.
    
    (4) MTH 153: Discrete Math.
    This is a requirement for the 
    CS major, the only specific math 
    course required.
    
    (5) CSC 231 Microprocessors, If you
    have sufficient programming experience
    and skills beyond CSC 111, with
    permission of the instructor. 
    

    -

    Zelle: Ch7, Ch8

    Lab7=Hw7

  • selsort.au

  • April 4,5


    Hw7=Lab7

    April 4,5

    Apr. 9

    Object-oriented programming

    Objects and classes

    Zelle chapter 10. sections 10.1, 10.4

    Zelle: Ch5

    Lab8=Hw8

    Examples that will help with this homework: Stanley and Stella ala 1987

    Apr. 11,12

    Lab8=HW8

    Apr. 11,12

    Apr. 16

    more object-oriented programming
    top-down design
    Designing (object) classes

    Zelle: Ch4, Ch 8

    Zelle's graphics programming reference page

    Lab9=hw9

    Apr. 18,19

    Hw9=Lab9

    Yahtzee game

    Apr. 18,19

    Apr. 23

    Searching and
    Recursion

    This week
    Computer Science Arts Show:
    Ford Hall Atrium
    Opening Reception, Sunday April 22, 5:00-7:00pm
    With works from classes such as
       csc106, csc240, and csc354
       as well as artwork from faculty and students
     

    Zelle: Ch 13

    fact.py
    recursions.py
    turtExample.py

    Apr. 25,26


    Experiential Extremism
    2) Motu 828 firewire audio
    3) Teleo System

    Pat Metheny and his Orchestrion
    Make sure your lab was checked off on the attendance sheet.
    No homework this week.
  • Kami Cott: Smith student digital design project (2003)
  • Lauren Kvalheim '08 Demo Reel Lauren was a double CS/Studio Art major
  • Apr. 25,26

    May 1


    Review
    What we did

    Special Topics

    hw8demo.py Erika Miguel and Kelly Jennings

    hw9demo.py Jessica Mann and Kay Kulason

    sorts.py
    scoper.py
    binsergran1.au
    Look for csc212 in Spring13
    to learn java and more about data structures.

    1) Industrial Light and Magic's use of python

    May 2,3

    No Labs this week
    No Labs this week

    Coburn and Smith's music from satellite images

     

    May 2,3

    No Labs this week

    May 3

    Last Day of classes!

    Final Exam, Take-home
    Available for pickup Monday a.m. at Ford Hall 355 on May 7 at 10:30 a.m.
    Due by 10:30 a.m. Wednesday May 9, Ford Hall 355.
    Slide it under the door if I am not there.

    All reading, lecture material, and lab and homework material.

     

    Final Exam, Take-home
    Available for pickup Monday a.m. at Ford Hall 355 on May 7 at 10:30 a.m.
    Due by 10:30 a.m. Wednesday May 9, Ford Hall 355.
    Slide it under the door if I am not there.

    May 7-9.

    Final Exam, Take-home
    Available for pickup Monday a.m. at Ford Hall 355 on May 7 at 10:30 a.m.
    Due by 10:30 a.m. Wednesday May 9, Ford Hall 355.
    Slide it under the door if I am not there.

     

    Good luck

     

    -->