|
Instructor: Prof. Bei Xiao (bxiao AT american.edu)
|
Teaching assistant: Alex Perepechko (ap1109a at student dot american dot edu.) Session 1
Leah Parent (lp4390a at student dot american dot edu ) Session 4
|
|
Time: Mon/Wed/Thurs 2:35-3:50 pm (Session 4)
Mon/Wed/Thurs 11:45-1 pm (Session 1)
|
Location: Anderson B-12
|
Office hours (Tentatively): Dr. Xiao: Wednuesday 4-5pm, Thursday 4-5pm (SCAN 110) or by email appointment |
Syllabus: syllabus.pdf |
|
Course description: This course is an introduction to computer programming and art of computation to students with little background in programming. The goal of the class is however, beyound learning Python, but to help students develop the ability of computational thinking. Teaching is mostly achieved in in-class examples, discussions, quizzes, and programming exercises. In the first part of the class, students will learn basic syntax and programming methodologies (such as syntax, data types, control flows, and object-oriented programming basics) with Python. As the class advance, we will introduce algorithms such as numetric methods, sorting, searching, memorization. Computational concepts and techniques such as random sampling, exhaustive enumeration, bisection search, and dynamic programming will also be introduced. Homework assignments will also include implementing many fun games.
|
|
Textbook and materials:
- Think like a computer scientist, learning programming with Python. ( Required)
- Introduction to Computation and Programming Using Python. John Guttag. Spring 2013 edition. MIT Press.
|
Online resource:
- Offical Python Tutorial
- Learn Python The Hard Way
|
Prerequisites:
High school algebra and interests in problem solving. Knowlege of basic calculus and basic probabilty will be plus.
|
|
Grading policy:
50% homework assignments, 20% mid-term exams, 20% final project, 10% class participation (including in-class exercises).
|
|
Homework policy:
Homework is all about programming and you will submit to blackboard. In the first class, I will pass out a handout code template of how to comment, name, and structure your code for homework assignment. Please follow the instructions strictly. If you name your code homework question1 without your name, it will not be graded. You must test your code on your computer. We will use libraries extensively.
Late penalty: the deadline of HW is the midnight eastern time of the due date. You can turn in one HW late for up to 48 hours with no penalty. The second/third late HW will automatically receive 50% reduction if received within the 48 hours after the deadline. After the 48 hours, the homework will not be graded and will receive zero points.
|
|
Attendance:
We will do lots of live-programming, discussion, and quiz in class. Again, it is very much like learning a foreign language. Class participation is an important chance to practice your skills.
|
|
Computer and software
You can either use the computer in the lab orbring your laptop to class and have python 2.7 installed.
|
|
Course plan
- Python Basics (Sep- mid-October)
- Syntax: assignement, variables, input, loops, conditions, control flow --Homework 1
- Data Types (lists, list comprehensions, dic, tuple, strings) -- Homework 2
- Basic Functional Programming
- Debuggin: binary, float, floating point, runtime error -- Homework 3
- Files and Exceptions, Text processing
- Pygame --- Homework 4
- Object-oriented programming and Funtional programming(mid October- early November)
- Classes, sets of objects -- First Mid-term Exam
- Inheritance -- Homework 5
- more on functional programming
- Pythonic implementtion of classical algirthim and scientific problem solving (early November to early-December)
- Algorithmic Efficiency -- Second mid-term
- Statistical modeling: simulations, random walk -- Homework 6
- Basic probability and data plotting
- numpy-- Homework 7
- Python and API (Bender and grapihcal softwares) -- Final Project due
|