Instructor & TA
Time and Place
Description
Textbooks
Software
Lab Assignments
Homework
Lecture Notes/
Schedule
Tests
Quizzes
Grading
Miscellaneous
|
Instructor and Teaching Assistant
| Instructor: |
John B. Schneider
Office: EME 221
Phone: 509 335 4655
email: schneidj@eecs.wsu.edu
Office hours: Monday and Wednesday 11:10–12:00
|
| TAs: |
Dario Alvarez (labs)
email: dalvarez@eecs.wsu.edu
Office hours: by appointment
|
| |
Andrew Lytle (grader)
email: andrew.lytle@email.wsu.edu
|
Meeting Time and Place
Lectures: M, W 10:10–11:00, Sloan 150
Labs: (NOTE: You must bring your own laptop to labs.)
Sec. 01: Friday 8:10-11:00, EME 52
Sec. 02: Friday 11:10-14:00, EME 52
Course Description
Catalog Description: Elementary algorithmic problem solving,
computational models, sequential, iterative and conditional
operations, parameterized procedures, array and list structures and
basic efficiency analysis.
This course uses the Python
programming language. Although you may have some previous programming
experience, it is assumed you have none. New constructs are
introduced in nearly every lecture so for you to succeed it is vitally
important to come to each lecture ready to learn. Additionally, to
succeed you must keep up with the reading assignments, homework
assignments, and labs. This can be a fun and rewarding class, but it
has its share of challenges. You must be willing and able to work
hard!
Course rules and additional information.
Textbooks and Reference Material
Course notes will be provided as electronic documents via this Web
site. These notes will provide all the material necessary to complete
the course. For those interested in further exploring Python,
programming, and algorithm design, you may wish to consider the
following supplemental material.
There is a wealth of reference material available at the
documentation page
at python.org, but it can be
difficult to find precisely what you are you looking
for. This
index may help you find what you are seeking.
Python for Software Design: How to Think Like a Computer
Scientist, Allen B. Downey, Cambridge University Press, 2009. (A
short, gentle, and generally very good introduction to Python and
programming.)
Python Programming: An Introduction to Computer Science, 2
ed., John M. Zelle, Franklin Beedle & Associates, 2010. (The
textbook that has been used in this course in the past. It has many
good points.)
Programming in Python 3: A Complete Introduction to the Python
Language, 2 ed., Mark Summerfield, Addison Wesley, 2010. (A
thorough and somewhat advanced "introduction" to the Python.)
Python: Essential Reference, 4 ed., David M. Beazley,
Addison Wesley, 2009. (A rigorous and rather advanced Python
reference.)
Software
If you intend to pursue one of the majors in the School of Electrical
Engineering and Computer Science, you will be required to have your
own laptop. Although you do not necessarily need to have your own
laptop for this course, it is highly recommended that you do have one.
For labs, it is assumed you will bring your own laptop. (For those
lacking a laptop, there are four desktop machines provided. It is
best not to count of having these machines available.)
We will use Python 3.x in this course. This is open-source software
that is available for free at the download page of the Python Web
site python.org/download.
There are versions available for Windows, Mac, and Linux. Please
install the appropriate version for your system (you should install
the version 3.2.2 which is the current version as of this writing).
Note that some machines come with Python pre-installed. However, that
pre-installed version is often version 2.x which is not completely
compatible with version 3.x. It is important that you have version
3.
Lab Assignments
| Number, Title, & Link |
Date |
Solution |
Lab 1
Python, IDLE, Submitting HW |
1/13/2012 |
|
Lab 2
Some Python Basics |
1/20/2012 |
lab2_t2.py,
lab2_t3.py,
lab2_t4.py,
lab2_t4a.py (alternate
solution).
|
Lab 3
The Root of All eval() |
1/27/2012 |
lab3_t1.py,
lab3_t2.py,
lab3_t3.py,
lab3_t4.py
|
Lab 4
Lists, Loops, and Some Stats |
2/3/2012 |
lab4_t2.py,
lab4_t3.py,
lab4_t4.py,
lab4_t5.py,
lab4_t6.py
|
Lab 5
Loops, Optional Parameters, and Accumulators |
2/10/2012 |
lab5_t3.py,
lab5_t5.py,
lab5_t5_alt.py,
|
Homework
Homework Submission Page
Lecture Notes/Reading Material/Schedule
| Week |
Date |
Lecture Material |
Reading |
Topics |
| Week 1 |
1/9/2012 |
|
Chap. 1 |
Course goals, structure, & rules. |
| 1/11/2012 |
Lecture 2 |
Chap. 2 |
IDLE, interactive interpreter, comments,
print(), bugs, help(), literals,
statements, expressions, variables, identifiers, assignment, type,
arithmetic operators, precedence. |
| Week 2 |
1/16/2012 |
Holiday: Martin Luther
King, Jr. Day |
| 1/18/2012 |
Lecture 3 |
Chap. 3 |
Multi-line strings, more on arithmetic operations,
simultaneous assignment, divmod()
keywords, input(), int().
|
| Week 3 |
1/23/2012 |
Lecture 4 |
Chap. 4 |
More on type conversion, float(), eval(),
functions, return
vs. print(), None, program structure,
scope.
|
| 1/25/2012 |
Lecture 5 |
Chap. 5 |
More on scope and return. Introduction to
classes and objects. |
| Week 4 |
1/30/2012 |
Lecture 6 |
|
More on objects: methods,
attributes, dir(), __init__(), operator
overloading. |
| 2/1/2012 |
Lecture 7 |
Chap. 6 |
Lists, iterables, for
loops, indexing. |
| Week 5 |
2/6/2012 |
Lecture 8 |
|
More on lists, for loops, and
indexing. range(). |
| 2/8/2012 |
Lecture 9 |
|
A bit more on lists, tuples, iterables, lvalues, and
simultaneous assignment.
Review. |
| Week 6 |
2/13/2012 |
Exam #1
|
| 2/15/2012 |
|
|
import statements, math
module, time module, random module. |
| Week 7 |
2/20/2012 |
President's Day |
| 2/22/2012 |
|
|
Strings, string methods, slices, string formatting. |
| Week 8 |
2/27/2012 |
|
|
Encountering errors: exceptions, traceback, & debugging
basics. |
| 2/29/2012 |
|
|
|
| Week 9 |
3/5/2012 |
|
|
|
| 3/7/2012 |
|
|
|
| Week 10 |
3/19/2012 |
Exam #2
|
| 3/21/2012 |
|
|
|
| Week 11 |
3/26/2012 |
|
|
|
| 3/28/2012 |
|
|
|
| Week 12 |
4/2/2012 |
|
|
|
| 4/4/2012 |
|
|
|
| Week 13 |
4/9/2012 |
Exam #3
|
| 4/11/2012 |
|
|
|
| Week 14 |
4/16/2012 |
|
|
|
| 4/18/2012 |
|
|
|
| Week 15 |
4/23/2012 |
|
|
|
| 4/25/2012 |
|
|
|
Note: The final exam is scheduled for Wednesday, May 2nd, from 8:00
to 10:00 a.m.
Tests
Quizzes
Grading
| Metric |
Value |
| Midterm #1 |
15% |
| Midterm #2 |
15% |
| Midterm #3 |
15% |
| Final Exam |
20% |
| Homework |
15% |
| Labs |
10% |
| Quizzes |
10% |
Attendance (bonus) |
3% |
Labs: Each lab is worth 100 points. If there are N
tasks in a lab that require a student to complete some coding or do
some work that needs to be documented with the TA, then each
individual task has a value of 100/(N+1) points. Tasks are of
equal weight regardless of difficulty. A student is also awarded
100/(N+1) points for attending the lab. For example, if there
were three "graded" tasks in a lab, each task would be worth 100/(3+1)
= 25 points. Thus, if a student attended this lab but was only
able to complete two of the three of the tasks, that student would
receive 75 points. The tasks were conceived to be credit or no
credit—either a student completes the tasks or he or she does
not. However, the awarding of partial credit is at the
discretion of the TA. If time runs out before a student has
completed a task but the student has made significant progress toward
finishing that task, the TA can (at his or her discretion) give
partial credit. The lowest lab score will be dropped.
Reasonable collaboration on the labs is encouraged (copying is not collaborating).
Homework: Each homework assignment is worth 100
points. The lowest homework score will be dropped.
Reasonable collaboration on the homework is encouraged (copying is not
collaborating).
Quizzes: Quizzes carry equal weight. The lowest
quiz score will be dropped. Absolutely no collaboration on the
quizzes is allowed. Quizzes will be "open notes" and "open computer."
Tests: No test scores will be dropped. You must
take the test at the scheduled time. Failure to do so will
result in a zero for the test. No collaboration on the tests is
allowed. Copying the work of others or sharing your work with
others will result in immediate failure for the semester and a
report being filed with the Office of Student Conduct. Tests will be
"open notes" but "closed computer." You will be expected to work on
tests for the entire time allotted.
Miscellaneous
Students with Disabilities
Reasonable accommodations are available for students with a documented
disability. If you have a disability and may need accommodations to
fully participate in this class, please visit
the Access
Center (Washington Building 217) to schedule an appointment with
an Access Advisor. All accommodations MUST be approved through the
Access Center.
|