Syllabus and general information for MCS-177: Introduction to Computer Science I (Spring 2010)

Description

This course introduces the perspectives and methods of computer science. Symbolic information is represented as data, whether it be numbers, text, or images. Automated processes for operating on the data are represented by general procedures, known as algorithms. Those algorithms are written in a particular notation (a programming language) as programs. Students will learn how to carry out these tasks and how to think about computation in terms of general patterns, such as hierarchical composition or the use of interchangeable components with consistent interfaces.

Office hours

I will be available in my office (OHS 303) from 9:00-9:50 on Tuesdays and Thursdays (other than March 11th) and from 11:30-12:20 on Mondays and Fridays (other than March 12th), as well as by appointment. Or try your luck: just stop by and see whether my door is open. You may send me electronic mail at max@gustavus.edu or call me at extension 7466. I'll try to put any updates to my office hours on my web page, so check there if in doubt.

World Wide Web

All course materials will be available through my World Wide Web page. The URL for this course is http://homepages.gac.edu/~mc27/S2010/. After this syllabus I will give hardcopy handouts only to those students who want them.

Text

Our textbook is Python Programming in Context by Bradley N. Miller and David L. Ranum. I recommend that you order a copy in advance, either through The Book Mark or through another seller of your choice; The Book Mark cannot be counted on to have a copy on the shelf if you don't pre-order. The textbook authors maintain a blog for corrections to the book at http://pycontext.blogspot.com/.

Projects and lab days

In the course of the semester, you will complete 10 projects. In each case, I will indicate what I expect of you. A project report that meets those expectations is due at the start of class on the date specified. (These are also listed in this syllabus.) If you turn in the report late, your grade will drop one point per day late or fraction thereof. If you are too sick to complete a report on time, you will not be penalized. Simply write "late due to illness" at the top of the report, sign your name and hand it in. Other circumstances will be evaluated on a case-by-case basis.

On Tuesdays and Thursdays, we will meet in the OHS 326 computer lab. One or more of those lab days will be provided for you to work on each project. However, you will often need to spend additional time on the project outside of class.

Some of the lab days are not for project work. Instead, the syllabus lists a topic from the textbook with the prefix "In lab:". On these days, I will be covering material from the book, somewhat like on a class day, but in an environment where I can ask each of you to try things out on your individual computers. (By contrast, in the classroom, only one student at a time can use the keyboard of our shared computer.) For each of these days where a textbook topic is covered in lab, the same topic is listed on the following class day. We will have this extra class time to go over the topic some more if you need it. Any remaining time will be available for us to talk about topics that are not in the textbook.

Tests

There will be two in-class tests during the semester and a final exam as scheduled by the registrar. These are all show in the syllabus below. If you have a conflict with a testing time, please contact me as soon as possible to make an alternative arrangement.

Tests will be closed-book and mostly closed-notes. You may, however, use a single 8 1/2 by 11 sheet of paper with hand-written notes for reference. (Both sides of the sheet are OK.)

Grading

You will earn up to 400 grade points for your work on projects and tests, divided as follows. Each of the 10 projects will be graded on a scale of 20 points, totaling 200 points. Each of the two tests that happens during the semester, in class, will be graded on a scale of 50 points, for 100 more points. The remaining 100 points will come from the comprehensive final exam. Your course grade will be recorded as follows:

PointsGrade
371-400A
358-370A-
345-357B+
331-344B
318-330B-
305-317C+
291-304C
278-290C-
265-277D+
238-264D
000-237F

Please point out any arithmetic or clerical error I make in grading, and I will gladly fix it. You may also request reconsideration if I have been especially unjust.

Honor

Any substantive contribution to your project report by another person or taken from a web site or publication should be properly acknowledged in writing. Failure to do so is plagiarism and will necessitate disciplinary action.

The same standards regarding plagiarism apply to team projects as to the work of individuals, except that the author is now the entire team rather than an individual. Anything taken from a source outside the team should be be properly cited.

One additional issue that arises from the team authorship of project reports is that all team members must stand behind all reports bearing their names. All team members have quality assurance responsibility for the entire project. If there is irreconcilable disagreement within the team it is necessary to indicate as much in the report.

You are expected to be familiar with the college academic honesty honor code policy and to comply with that policy. If you have any questions about it, please ask.

Accessibility

If you have a learning, psychological, or physical disability for which a reasonable accommodation can be made, I would be happy to refer you to the college's disability services coordinator, and to cooperate in the accommodation process. It is generally best if this can be done as soon as possible.

Syllabus

This schedule of topics is my best guess and is subject to change. Be sure to let me know if there are other topics you want to spend time on or if our pace needs to change.

Date Reading Topic Due
2/81.1-1.4Introduction
2/91.5.0-1.5.2In lab: Arithmetic and naming
2/10Arithmetic and naming
2/111.5.3-1.5.4In lab: Programs that draw
2/12Programs that draw

2/152.1-2.4Approximating π
2/16Project 1: Candy temperatures
2/172.5Accumulating an answer
2/18Project 2: Twelve days of Christmas
2/19An ancient Chinese approximation of πProject 1

2/222.6Calculating an answer by taking chances
2/233.1-3.2In lab: Processing textual stringsProject 2
2/24Processing textual strings
2/25Project 3: Pig Latin
2/263.3-3.5Encoding and decoding

3/13.6-3.7More text processing
3/2Project 3 continued
3/3Catch up and reviewProject 3
3/4Office hour instead of lab
3/5Test 1

3/84.1-4.3Lists of data
3/9Project 4: Pig Latin revisited
3/104.4-4.5.2Statistical examples of list processing
3/11Project 4 continued
3/12No class: attending computer science education conference

3/154.5.3Storing data more flexibly
3/16Project 5: Storing scoresProject 4
3/174.6-4.7More statistical examples
3/18Project 5 continued
3/195.1-5.2.4File processingProject 5

3/225.2.5-5.3.1Using data from the internet
3/235.3.2Project 6: Analyzing election data
3/24More on using data
3/25Project 6 continued
3/266.1-6.3.1Image processing

3/27-4/5: Spring Break

4/66.3.2-6.3.3In lab: Generalized image processing
4/7Generalized image processingProject 6
4/8Project 7: Image processing
4/96.4Looking closer at naming

4/126.5.0-6.5.3Moving image pixels around
4/13Project 7 continued
4/146.5.4Less localized image processing
4/15Project 7 continued
4/16Catch up and reviewProject 7 (except extra credit)

4/19Test 2Project 7 extra credit
4/20In lab: trouble spots from the test
4/219.1-9.3.3Recursion: programs and drawings that nest
4/22In lab: Test 2b and fractals
4/239.3.4-9.3.5Drawing Sierpinski's gasket

4/269.4.0-9.4.2Drawing snowflakes with L-systems
4/27Project 8: L-systems
4/289.4.3More L-systems (11:30-12:00 due to MAYDAY! Peace Conference)
4/29Project 8 continued
4/3010.1-10.3.3Object-oriented programming

5/310.3.4-10.3.6More on object-oriented programming
5/410.4-10.6.1In lab: Solar system exampleProject 8
5/5Solar system example
5/610.6.2-10.6.3Project 9: Solar system animation
5/7Animating planetary orbits

5/1011.1-11.5Designing a simulated ecology
5/11Project 9 continued
5/1211.6.0-11.6.1Coordinating the ecology's constituents
5/1311.6.2-11.6.4Project 10: A simulated ecologyProject 9
5/1411.7-11.8Extending the simulation

5/17Project 10 continued (in OHS 326)
5/18Project 10 continued
5/19Catch up and reviewProject 10

5/22Final exam, 1:00pm-3:00pm

Course web site: http://homepages.gac.edu/~mc27/S2010/
Instructor: Max Hailperin <max@gustavus.edu>