CM151 Introduction to Computational Methods

Fall, 2010


Contact Information:

Instructor: Prof. Pfaffmann
Office: AEC 514
Office Phone: (610)330-5251
Email Address:   pfaffmaj
Course Moodle Link:   http://moodle.lafayette.edu/CM151.html
Lecture Period: TR 11:00 AM - 12:15 PM, Acopian Engineering Center 500
Lab Period: TR 1:15 - 2:30 PM, Acopian Engineering Center 515
Contacting me:
  • Office hours will be posted during the next week.
  • I am most responsive to email.
  • Catching me in between classes.
  • I can be contacted by phone.
  • Office voice mail is only checked during the week.

Course Description:

The goal of this course is to teach science majors how to develop tailored, flexible, and efficient working environments built from small programs (scripts) written in the easy-to-learn, very high-level language Python. The course will focus on examples and applications of relevance to computational science: gluing together existing applications and tools, e.g. for automating simulation, data analysis, and visualization; steering simulations and computational experiments.

This course is NOT for students intending to major in Computer Science or Electrical & Computer Engineering. Those students should take Computer Science 102 - Principles of Computer Science I. This course does not count for credit towards a Computer Science major or minor.

Learning Outcomes:

  1. An ability to apply a knowledge of computing to another non-computing discipline.
  2. An ability to identify a problem and define the computing requirements appropriate to its solution.

Course Textbook:

Textbook: Python Programming: An Introduction to Computer Science (2nd  Edition)
Author: John Zelle
Book Website: URL
Publisher: Franklin, Beedle and Associates Inc.
Link to Graphics.py:

Course Resources:

Here are some Python resources that you might find helpful:


Project 2 Resources:

Here you will find resources that will be useful for project 2:


Submission Guidelines:

  • All assignments will be submitted through the Lafayette College Moodle.
  • All assignments are due before midnight the day of submission date.
  • Late assignments will receive a reduced grade based on the following algorithm.
    1. Assignments that are 1-day late will be graded with a 10% reduction.
    2. Assignments that are 2-days late will be graded with a 30% reduction.
    3. Assignments that are 3-days late will be graded with a 60% reduction.
    4. Assignments that are submitted 3 days after the due date will not be graded.
  • All dates are subject to change, which will be announced in lecture and given on this webpage.

Grade Breakdown:

Exam 1 15%
Exam 2 15%
Final Exam 20%
Average Lab Score 15%
Project 1 10%
Project 2 10%
Homework 10%
Averaged Quizzes (4 quizzes, 10 minutes each) 5%

Lecture Schedule:

Week

Lecture Topics

Assignments

Week 1
08/30/10

  1. Computers and Programs
  2. Discussion Slides

  3. Bug Stomachs

Week 2
09/06/10

  1. Writing Simple Programs
  2. Discussion Slides

Week 3
09/13/10

  1. Software Design
  2. Computing with Numbers
  3. Number Lecture Slides - Tuesday
  4. Number Lecture Slides - Thursday
Homework 1 -- Due Sept. 20th During Lecture
  • Chapter 1 --
    • Discussion: 1
    • Programming Ex.: 5
  • Chapter 2 --
    • Discussion: 2 and 5
    • Programming Ex.: 4 and 5
  • Chapter 3 --
    • Discussion: 2 and 3
    • Programming Ex.: 12

Week 4
09/20/10

  1. Objects and Graphics
  2. Lecture Slides

Week 5
09/27/10

  1. Computing with Strings, Lists and Sequences
  2. Tuesday: Lecture Slides (Please note, these may change.)
  3. Thursday: Lecture Slides
  1. From Discussion Chapter 5, do questions 1, 3, and 4
    • Guess them first, then figure out the answer.
    • If you are wrong, why are you wrong.
  2. Create a question for the exam you think is really hard, but possible to give on the exam.

Week 6
10/04/10

  1. Defining Functions
  2. Exam 1 (10/07/10)

Week 7
10/11/10

  1. Fall Break
  2. Decision Structures

Week 8
10/18/10

  1. Defining Functions
  2. Lecture Slides
  3. Making the future graph more functional:
    1. futval_graph1.py
    2. futval_graph2.py
    3. futval_graph3.py

Week 9
10/25/10

  1. Decisions and If-Else
  2. File IO:
    1. fileIO1.py
    2. fileIO2.py
    3. fileIO3.py
    4. inputfile.txt
  3. Conditionals and Looping:
    1. conditionals.py
    2. while-loop.py

Week 10
11/01/10

  1. Loop Structures -- Loop Lecture Slides
  2. Loop Examples:
    1. exampleLoops1.py
    2. exampleLoops2.py
    3. exampleLoops3.py
Homework (Due: Nov 16th, 2010 -- In Class)
  • Chapter 5 -- Discussion : 3
  • Chapter 6 -- Discussion : 3, 4, 5
  • Chapter 7 -- Discussion : 1, 2
  • Chapter 8 -- Discussion : 1, 2, 3
  • Homework.pdf

Week 11
11/08/10

  1. Booleans -- Booleans Lecture Slides
  2. Boolean Examples:
    1. exampleBool1.py
    2. exampleBool2.py
    3. exampleBool3.py
  3. Simulation and Design

Week 12
11/15/10

  1. Simulation and Design
  2. exampleRand1.py
  3. Exam 2 (11/18/10)

Project 1 Due:

Week 13
11/22/10

  1. Project 2
  2. Thanks Giving Break

Week 14
11/29/10

  1. Data Structures
  2. Lists Lecture
  3. exampleLists1.py

Week 15
12/06/10

  1. Object Creation

Project 2 Due:

Week 16
12/13/10

  1. Final Exam: Wednesday December 15th (8am to llam)

Lab Schedule:

Week

Labs

Due Date

Week 1
08/30/10

Lab 1 -- Getting Started

11:55PM  09/05/2010

Week 2
09/06/10

Lab 2 -- Simple Programs

11:55PM  09/12/2010

Week 3
09/13/10

Lab 3 -- Working with Math

11:55PM  09/19/2010

Week 4
09/20/10

Lab 4 -- Graphics Fun!

11:55PM  09/26/2010

Week 5
09/27/10

Lab 5 -- Fun with Strings

11:55PM  09/03/2010

Week 6
10/04/10

No Lab

11:55PM  09/10/2010

Week 7
10/11/10

Fall Break

Week 8
10/18/10

Lab 6 -- Working with functions.

11:55PM  09/24/2010

Week 9
10/25/10

Lab 7 -- Decisions

11:55PM  09/31/2010

Week 10
11/01/10

Lab 8 -- Loops

11:55PM  11/07/2010

Week 11
11/08/10

Work on project, homework, and prep for exam.

Week 12
11/15/10

Lab 9 -- Design and Random Processes.

11:55PM  11/29/2010

Week 13
11/22/10

Thanks Giving Break!

Week 14
11/29/10

Work on Project 2


Intellectual Honesty:

All students will adhere to the policy of intellectual honesty as presented by the Dean of Students. This policy covers the use of another person's writing, use of reference materials, use of other student's work, working together, and re-use of papers. If any intellectual dishonest is detected, the suspect materials will be sent to the Dean of Studies for review.

Prof. Pfaffmann (pfaffmaj), Lafayette College, Last Modified: 08:30:2010-22:55:27