Introduction to Computer Science CSC 280 Fall 2015
|
|
|
Instructors: Prof. Bei Xiao (bxiao AT american.edu)
Teaching Assistant: Alex Neuenkirk (alex.neuenkirk AT gmail.com)
|
Time: Mon/Wed/Thurs 2:35-3:50 pm (Session 4)
Mon/Wed/Thurs 11:45-1 pm (Session 1)
|
Location: Anderson B-14
|
Office hours (Tentatively): Dr. Xiao: Monday 4-5:30pm, Thursday 4-6pm (SCAN 110)
Alex: Tuesday/Friday, 1-2pm, SCAN 113 |
Syllabus: syllabus.pdf |
|
Course description: This course teaches programming and problem solving using Python. We will cover programming fundamentals (variables, conditionals, iteration, functions), object-oriented programming, and graphical programming. In this course we will also look beyond programming to computer science as a discipline, focusing on problem solving, and exploring diverse topics such as artificial intelligence, gaming,image processing, natural language processing, numerical methods, and how computers work. The class is heavily on programming exericses either individually or in team. Weekly labs (usually on Wed if otherwise noticed) provide guided practice on the computer, with staff present to help.
| |
Handouts:
- First Steps
- Installing Python IDE
- Running Python in Command lines
|
|
Online Discussions:
In addition to office hours, you are highly encouraged to use Pizza to discuss questions regarding lectures
and homework assignments. I will also post answers to popular questions on Pizza.
Sign up for Piazza
|
|
GitHub:
Midway through the semester, we will star to use GitHub, especially when we start collaborative project. You can post your homework solution on GitHub as well so other students can see.
Learn about GitHub here.
|
|
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:
60% Homework Assignments (7 projects), 15% in-class Mid-term exam (short programming tasks), 15% Final project/exam, 5% in-class quizzes (randomly timed), 5% attendance.
| |
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 11:59pm of the due date. No late assignemtn is accepted.
| |
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. Missing 3 classes will automatically result in zero attendance score.
| |
Computer and software
You can either use the computer in the lab or bring your laptop to class and have python 2.7 installed.
| |
Expected Outcomes
- Be fluent in the use of procedural statements:assignments, conditional statements, loops, method calls, and arrays.
- Understand basic data types, strings, lists, files and be fluent in use of functional programming.
- Understand the concepts of object-oriented programming as used in Python: classes, subclasses, properties, inheritance, and overriding.
- Have knowledge of basic searching and sorting algorithms. Have knowledge of the basics of vector computation.
| |
Course plan
- Python Basics (Sep- mid-October)
- Syntax: assignement, variables, input, functions --Homework1
- loops, conditions, control flow -- Homework 2
- Data Types (lists, list comprehensions, dic, tuple, strings) -- Homework 3
- Files and Exceptions, Text processing
- Grahpics, Mouse, and Pygame --- Homework 4
- Object-oriented programming and Funtional programming(mid October- early November)
- Classes, sets of objects Mid-term Exam
- Inheritance -- Homework 5
- more on functional programming
- Recursion
- Pythonic implemention of classical algirthim and scientific problem solving (early November to early-December)
- Search and Sorting--Homework 6
- Statistical modeling: simulations, random walk
- Numeric Python and plotting-- Homework 7
- Image Processing and Basic Computer Vision
- Web programming -- Final Project due
|
|