Spring 2012   Weekly schedule (down below) 
NOTE ROOM CHANGES FOR THE REST OF THE TERM!

CS161  Introduction to Programming and Problem-Solving

Computer Science Department
Maseeh College of Engineering
Portland State University

Instructor

Lois Delcambre
(lmd with the usual address of cs dot pdx dot edu)

Office hours
(Lois Delcambre)

By appointment in my office (FAB 115-12); before and after class in or near the classroom (EB 102).

Teaching Assistant

Dona Hertel

Office hours
(Dona Hertel)

Mondays: 1PM to 3PM

Tuesdays and Thursdays: 4PM – 6PM

These will be held in the “fish bowl” – just outside the CS Department in Suite 120 in the Fourth Avenue Building (FAB)

Meeting Times

Tuesday/Thursday 18:40 – 20:30

Location

(Originally: Engineering Building, Room 103) but … we moved to EB 102 and we will use EB 102 for the rest of the term.

Beginning on Tuesday, May 15 we will use the following rooms:

Every Tuesday – we will be in EB 103 (our original room)

Every Thursday – we will be in EB 102 (the larger room next door, the one we used during weeks 2 through 5 of the term)

If you need help:

with Python or class material: post your question in Piazza. 

Ask questions, answer questions, and check for other questions and announcements.

Every student must register for an account in Piazza for this class.  Please type in your full name so that I can recognize it.  You can register for an account for this class on Piazza here:

http://piazza.com/pdx/spring2012/cs161   You can access Piazza for this class there, as well or at: http://piazza.com

 

with Python or class materials: visit the TA, Dona Hertel, during her office hours – posted above. 

with Python or assignments contact the CS tutors at: http://www.cat.pdx.edu/tutors.html  or tutors@cs.pdx.edu  or   503-725-4056.

with your ODIN userid/password, including problems getting access to the videos for the class, visit the following web page to reset your ODIN password:  http://oam.pdx.edu or visit the OIT Help Desk in the Smith Center.

 

…with your MCECS (PSU College of Engineering) computer account or if you’re having trouble using the MCECS computer laboratories or systems, contact the CS tutors http://www.cat.pdx.edu/tutors.html  or the MCECS Computer Action Team: http://www.cat.pdx.edu/

Python for your personal laptop or desktop

If you have your own desktop or laptop computer and you know how to download/install programs, you may want to download Python Version 3.1 (or other version 3.x.  This will allow you to use Python and complete your exercises directly on your laptop or desktop without using the MCECS computer labs.  Note: do not use Python, Version 2.6.5 (or 2.6.6) from the Python web site: http://python.org/; it uses a different syntax from some of our class materials.

You may find it useful to look at the documentation available at the Python web site: http://python.org/
Be SURE to use version that matches the version of Python that you downloaded or that you are using.  You can click on the Documentation link and then look at the Python tutorial or you could look at the Python Language Reference manual.  (Or, you may find that these documents aren’t very useful.  Perhaps later in the quarter you might find them useful.  I just wanted to let you know that they are available.)

Course Description:

Introduction to fundamental concepts of computer science.  Problem solving, algorithm and program design, data types, loops, control structures, subprograms, and arrays. Learn to write programs in a high level programming language. Surveys current social and ethical aspects of computer science.

Note: This course is designed for students who have no background or prior experience in programming. The purpose of this course it to gently introduce you to programming in a simple, easy-to-use environment, help you master basic programming statements as you write your own programs, and introduce you to computer science concepts.  We will also focus on how to write/document and how to read programs; these skills are at least as important as learning how to write programs. 

Textbook:

 Michael Dawson, Python Programming for the Absolute Beginner, 3rd edition, Course Technology 2010.

Assignments/Grading

7 weekly assignments – each worth 5 % of your grade

7 weekly quizzes, given in-class on Thursdays.  NO MAKEUPS will be given.  Lowest quiz score will be dropped.  The six remaining quiz scores will be worth 2% of your grade.

Two tests, one demonstration. 
Thursday, May 3: written test 1 – worth 20% of your grade
Thursday, June 9: written test 2 – worth 20% of your grade
 Thursday/Friday June 9/10: demonstration (in person, one-on-one with instructor/TA), worth 13% of your grade

Policies

If an extraordinary situation (medical, personal, work-related, or other emergency) prevents you from working for a period of time, contact the instructor at your earliest possible convenience to discuss your situation and arrange a special schedule for your classwork.

All assignments are due on time.  Late assignments will not be accepted unless you have a medical, personal, work-related or other emergency and you discuss it with the instructor.

Makeup tests will only be given in cases of medical, personal, work-related, or other emergencies.  If an emergency arises and you are going to miss a test, contact the instructors at your earliest possible convenience.  

Requests for regrading must be submitted to the instructor in writing within one week of the time the graded assignment was made available for pickup.  You must be specific in saying why you feel your answer deserves additional credit.  A request for regrade may result in a re-evaluation of the entire assignment and your total grade may increase or decrease as a result.

Students with disabilities who are in need of academic accommodations should contact me as soon as possible to arrange needed supports.  Students are also encouraged to contact the Disability Resource Center (DRC) for additional information on support services and available accommodations at 503 725-4150.  More information is available at: http://www.pdx.edu/uasc/drc.html

Academic Integrity

The PSU Student Code of Conduct http://www.pdx.edu/dos/codeofconduct will be enforced for this class.  Students have the responsibility to be familiar with the code and to behave in accordance with the code.

Weekly Schedule This will be filled in class by class, as we progress through the quarter.  
The grayed out text is from last year when I used a different book and when I had 3 tests.

Week

Date

Topic

Reading Assignment

Handouts

Schedule

1

Apr. 3

Introduction; class web site; accounts & access; IDLE; what is a computer; print; expressions.
Activity: using IDLE, Piazza

Chapter 1

lecture

 

silly_guessing_game.py

 

game_over.py

 

Apr. 5

Introduction to CS tutors.

Expressions, functions, modules.

Chapter 2

lecture

type-of-input.py

change-type-of-input.py

 

2

Apr. 10

Introduction to algorithms

Functions vs. methods

String methods

Precedence of operations

No additional reading

 

lecture

strings-dont-change.py

ringbell.py

Assignment 1
Due: Monday, April 16 at 9PM (see assignment for submission instructions)

Apr. 12

Functions vs. methods

if statements (with elif and else)

Logical expressions (conditions)

Precedence of operations

Chapter 3

lecture

complex-if.py

3

Apr. 17

(wrap up from last week)

While loops

No additional reading

lecture

Quiz 1 answers

 

Assignment 2
Due: Monday, April 23 at 9PM

Apr. 19

While loops, continue, break

Tuples

For loops

Chapter 4

lecture

guess-num.py

Quiz 2 answers

4

Apr. 24

For loops

Tuples and Lists

Subscripts and slicing

No additional reading

 

lecture

palindrome.py

Assignment 3
Due: Monday, April 30 at 9PM

 

Assignment 3 updated

Apr. 26

Slicing

Binary representations

Dictionaries

Chapter 5

lecture

palindrome2.py

cnt-ltrs-list2.py

ltr-count-dict.py

Quiz 3 answers

5

May 1

Discussion of test 1
Functions (and return)

Dictionaries

 

Chapter 6

lecture

lecture updated

lecture updated again

(no assignment this week; study for test on Thursday)

May 3

Test 1            reference material that will be available during the test

 

6

May 8

Functions
Global variables

Turtle module

Dictionaries (if we have time)

lecture

add_one.py

see var. from calling pgm

see var. from other functions

change var. from calling program

function with global variable

draw_square.py

Assignment 4
Due: Saturday, May 19 at noon

May 10

A bit more on functions

A bit more on turtle

Dictionaries

lecture

ltr-count-dict.py

Quiz 4 was cancelled

7

May 15

A bit more on functions

Programming style

Introduction to files

Chapter 7

lecture

 

Google style guide

 

Elements of coding style

 

no quiz today

 

 

May 17

Files & Pickle module

Try/Except

A bit more on functions

lecture

 

blast.py  recursive function

try-except.py check for valid in put

testing-add1.py a function that tests a function

 

 

Quiz 5

 

Assignment 5
Due: Saturday, May 26 at noon

 

Assignment 6
Due: Saturday, June 2 at noon

 

tictactoe.py

8

May 22

Guest Lecture:
Dr. Michael Grossniklaus

A look at another programming language; a discussion of how to design/program/test

Attendance will be taken: it will count as quiz 4.

May 24

Introduction to Unix

Guest Lecturer: Rashawn Knapp

 

lecture

Quiz 6

9

May 29

More on lists
Introduction to classes & methods; turtle, list, and string methods

Sections 10.1-10.6, 10.9-10.13

 

Exercise 10.3

lecture

BankAccount.py

tictactoe.py

Assignment 7
Due: Thursday, June 7 (at your demo)

May 31

More on lists

Recursion

 

lecture

fib_list.py

fibonacci.py

recursive_fib.py

Quiz 7

Assignment 6
Due: Saturday, June 2 at noon

10

June 5

Ethics … for a programmer

A bit about lists, dictionaries

 

Review for Test 2
List of topics on Test 2 (and topics NOT on Test 2)

Chapter 11 (for those curious about dictionaries)

lecture

count_letter.py

count_letter.dict.py

 

June 7

Test 2 

Individual demos (June 7/8 or during final exam week)

 

11

Final Exam Week

Individual demos

.