22C:80 Programming for Informatics

12:30-1:20 MWF, Room 205 MLH

Instructors: James Cremer, 14D MLH, cremer@cs.uiowa.edu, 319-335-1713, Office hours: T 9-10, Th 1-2
                     Sriram V. Pemmaraju, 101G MLH, sriram@cs.uiowa.edu, 319-353-2956, office hours: M 10-11, W 2-3
TA: Donald E. Curtis III, office: 201C MLH, dcurtis@cs.uiowa.edu, 319-353-2546, office hours: Th 11-12, F 11-12
There are two discussion sections associated with this course:

Section A01	11:30-12:20 M		301 MLH
Section A01	11:30-12:20 T		301 MLH
Don will lead both of these discussion section meetings, grade some of the homework, and hold regular office hours. He is a Ph.D. student in computer science and an expert Python programmer (more so than the other instructors!) so you should make use of his expertise.

Recent Announcements (last updated 5/6/09)

Course goals and structure

This course has two main goals: (i) to teach students practical programming skills in a scripting language (Python is our choice this semester) and (ii) to introduce students to algorithm design and analysis, focusing on algorithmic idioms such as greedy algorithms, divide and conquer, backtracking search and basic data structures such as arrays, strings, hashe tables, and graphs. The course also provides a first exposure to relational databases and web programming.

The overall structure of the course is:

Prof. Cremer will lead the first five weeks, Prof. Pemmaraju the second five weeks and the two instructors will split the last four weeks.

Lecture Notes and Other Class Supplements

Homework assignments

Quizzes and exams

Computers available

For implementing homework assignments, there are Linux PCs in 301 MLH, though many of you will find it most convenient to install and use JES on your own machines.

You can access departmental Linux machines remotely using a secure shell program (e.g. you can download a good one, SecureCRT, from the ITS software download site. Rather than trying to remember the names of particular departmental Linux machines, you should simply use "linux.divms.uiowa.edu" as the host name when you connect; our system will then automatically connect you to one of the Linux machines (not always the same one).

If you access departmental Linux machines using a simple secure shell program, you will not be able to run the JES python environments. It is possible to run JES while remotely logged in to departmental Linux machines if you are using NoMachine or similar software that provides X Windows support. For many of you, however, it would be simpler and more effective to install and run JES directly on whatever machine you are using.

To transfer files between your CS department home directory/folder and non-CS computers, read this information.

Documenting and submitting programs

For assignments that contain programming components, you must submit via the appropriate ICON dropbox, a zipfile (an introduction to creating zipfiles is here) containing:

Note: It is very important that programs be well-written and clear. Programs should be readable by people, not just compters. Coding style and organization may be considered in grading programs. Your code should include comments where appropriate, but avoid the approach of ritualistically filling your code with unhelpful (e.g. "this is a variable") or imprecise (e.g. "this loop goes around and around until it figures out the answer") comments. Ambiguous or inaccurate comments can be worse than none at all.

Course software

Scores and Grades

Scores will be available on ICON only.

Other Online Resources