CS 171: Computer Programming Projects for Beginners.



Instructor           : Jaime Davila
Office                : Cole 125
Class meetings : Wednesdays and Fridays 9-10:20 AM, ASH 126
Textbook          : Python Programming: An Introduction to Computer Science, by John Zelle
Office Hrs         : Wednesdays 10:30 AM - 12 noon, Thursdays 1:30-2:30 PM, or by appointment.
Phone Number : 413-559-5687
email                : jdavila at hampshire dot edu  (by far the best way to reach me)

Goals and expectations for the course


By the end of the course successful students will be able to write programs of simple to moderate difficulty, as well as having a clear understanding of how professional computer programmers engage in their discipline. Students will have been exposed to input and output commands, sequential statements, if-else conditional structures, while and for iteration structures, and arrays.

- In order to receive credit for the Cognitive Science div I distribution requirement students must hand in a correct solution to the final homework on time.
- In order to receive credit for the quantitative skills learning goal of the div I program, students must successfully hand in a solution to the final homework.
- In order to receive credit for the project based learning goal (PRJ) students must successfully hand in a final project at the end of the semester. This project is different than the final assignment.

Students are expected to actively contribute to the course, and should expect between 5-10 hours of work outside classtime. There will be programming homework due almost every week.

I expect homeworks to be turned in on time. Homeworks must be turned in electronically at the beginning of the class period in which they are due. I will give more detailed instructions on how to do that when homeworks are assigned.

I expect students to attend class, to be on time, and to come to class ready to work. Our class will be a collaborative project. Part of what that mean is that I have a responsibility to you, and that you have a responsibility to each other as well as to me. If you think that you have a valid reason for not turning a homework in on time, being late to class, or being absent, make sure you let me know.

Your evaluation for this course will be based on two major things: the code you develop for homework, and class participation.


A word about accommodations


(from http://www.hampshire.edu/casa/9138.htm)

If you have a disability or condition for which you would like to request an accommodation, please [...] print out, and complete the Request for Accommodations form. You must also provide documentation for your disability either by having your treating professional or evaluator complete the Documentation of a Disability form, linked at the left, or by submitting an equivalent report. The documentation must indicate the credentials of the evaluator or treating professional and should include a diagnosis, the limitations or impairments imposed by the disability, and recommendations for academic or physical accommodations due to the disability. For individuals with learning disabilities, the documentation must provide a complete educational evaluation conducted by a qualified psycho-educational diagnostician or licensed psychologist and should have been administered within three years of admission to Hampshire College. For individuals with Attention Deficit Disorder or Attention Deficit Hyperactivity Disorder, a similar report or a letter from a treating physician or psychiatrist is required. For psychological concerns, students need to submit a diagnosis made by a licensed mental health professional or neurologist involved with the student’s care, accompanied by a letter that states what accommodations will likely be needed.

Documentation and specific requests for accommodation should be sent to Joel Dansky, disabilities services coordinator, CASA, Box AC, Hampshire College, 893 West Street, Amherst, MA 01002. Fax: 413.559.6098.

A word about academic dishonesty

(from Hampshire's Ethics of Scholarship, available at http://www.hampshire.edu/shared_files/ETHICS_OF_SCHOLARSHIP.pdf)

Hampshire College is part of a broader community of scholars, a community where ideas, hypotheses, new concepts, and carefully established facts are the currency. None of us, faculty or students, is able to survive without borrowing from the work of others. Just as we expect to have our work recognized in examination reports; reappointments and promotions; or the footnotes of those who borrow from us, so must we carefully recognize those from whom we borrow. Brief guidelines are presented below for the proper acknowledgment of sources upon which we draw for course papers, examinations, oral presentations, artistic productions, and so on. We acknowledge the work of others not only in gratitude to them, but also to provide our readers with the opportunity to consult our sources if they wish to review the evidence, consider other interpretations, or to determine the basis for the cited passage. In the evaluation of scholarly work, the writer’s creativity in locating appropriate sources and using them well can be assessed only if those sources are identified.

The failure to acknowledge one’s sources is more than a failure to be properly socialized into a community of scholars. Writers who fail to note sources are, at best, ignorant, and, at worst, dishonest. Unacknowledged borrowing from the work of others in any medium is a fundamental repudiation of the deepest values of the academic community.

PLAGIARISM
Plagiarism (from the Latin for “kidnapper”) is a term covering everything from inadvertently passing off as one’s own the work of another because of ignorance, time constraints, or careless note-taking, to hiring a ghost writer to produce an examination or course paper. This range of possibilities is spelled out in more detail in the following list of examples.

FALSE CITATION
Material should not be attributed to a source from which that material was not obtained. That is, one must not pass off primary sources as if they had been consulted when, in fact, the material in the oral presentation or written work is based upon a secondary source. The use of secondary source material is permissible when properly cited.

[...]

INTENTIONAL POOR DOCUMENTATION
As scholarly writers, we are expected to acknowledge our indebtedness for phrases, sentences, charts, diagrams, figures, and for longer verbatim quotations. Writers prepare for this necessity by taking careful notes on exact wording and spelling; page numbers; and source identification. It is particularly important to present verbatim quotations exactly as they are in the original sources, including any errors. Paraphrases require documentation, and they must be a true restatement of the original rather than simply a rearrangement of the words in the sources.

[...]

PAPERS WRITTEN BY OTHERS
Presenting papers or sections of papers (including web sites) bought, borrowed or stolen from others as one’s own is the most blatant form of plagiarism. There is no conceivable excuse for this behavior, including ignorance.

UNACKNOWLEDGED MULTIPLE AUTHORS OR COLLABORATION
The notion that intellectual work is and should be a lonely and fiercely independent enterprise is overemphasized. At Hampshire College, students are encouraged to collaborate on work for courses, examination, and even Division III “independent study projects.” For example, students are encouraged to have better spellers look at their work if that is necessary, and faculty members show drafts of their work or discuss their ideas with colleagues. In almost any book or article, writers recognize their indebtedness to colleagues who have criticized their work in footnotes or reference lists. Students, too, should acknowledge the assistance of their collaborators. In joint examinations or class projects, the contributions of each member of the group should be made clear and every member of the group should have an understanding of the whole project.

UNACKNOWLEDGED MULTIPLE SUBMISSION
Using the same paper or portions thereof for several purposes without prior approval (for example, a course at another college and a Division I examination paper, publication in several scholarly journals, or submission to several classes) is generally considered to be illegitimate. Such multiple submission is, however, entirely acceptable if that borrowing is agreed to by the parties involved. It is, in fact, encouraged at Hampshire College when students want to pursue an idea further or when they have undertaken work well beyond that required for the original purpose of the paper or presentation.

Some words about electronic distractions


Our class will be held in a classroom equiped with computers. It could be easy to get distracted with them, using them for a number of non-class-related things during class time. Please refrain to do so. The same goes for cell phones, mp3 players, etc. Our class time is 80 minutes long. I will dedicate that time to you and the class. I expect you to do the same. First time, I will remind you of this rule; second time, I will politely ask you to leave, so that we can all stay attentive to the tasks at hand.
Some online resources.

1) Online version of the Learning Python book. This book is published and made available online by O'Reilly.

2)Online Python Documentation.

3)Online Tkinter Documentation.

4)Online Python MegaWidgets Documentation.


Below is an initial outline of the topics we will cover this semester. As you can see, only the first few weeks have topics assigned to them. These weeks will be used to introduce general material, always with an eye on the program we will be developing. During the semester's fifth week we will, as a group, design how the rest of the semester will progress.

Many topics will be introduced as needed based on the conversations we will be having in class. Whenever we do, I will update this syllabus to reflect the topics covered.


Week Dates Topics Readings Notes
1 Sept. 8, 10 Course outline.
What you should expect of the course.
Office hours, etc.
Running python programs
Input and output statements
http://hkn.eecs.berkeley.edu/~dyoo/python/idle_intro/
Text book, sections 2.4 & 2.5
2 Sept. 15, 17
if-else statements
for statements
Text book, chapter 7
text book, section 2.6
3 Sept. 22, 24 for statements
while statements.
Text book, chapter 8.
Material for arrays can be found on page 341 of our textbook.
4 Sept. 29, Oct. 1 while statements.
5 Oct. 6, 8 while statements.
6 Oct. 13, 15 Data types. Internal representations.
7 Oct. 20, 22 lists.
8 Oct. 27, 29 lists.
9 Nov. 3, 5 lists.
10 Nov. 10, 12 Functions http://www.tutorialspoint.com/python/python_functions.htm
11 Nov. 17, 19 Classes and Objects Much information about operator overloading for objectscan be found at http://docs.python.org/reference/datamodel.html
12 Nov. 24, 26 Objects
13 Dec. 1, 3 Graphic User Interfaces Building a Basic GUI/
TKinter documentation/
Sample use of Widgets
Python Mega Widgets
14 Dec. 8, 10 Graphic User Interfaces
15 Dec. 13, 16 Examination period Semester review Prime number decomposition homework is due by midnight on December 15