CSCI 150 - Foundations of Computer Science

Fall 2011

Course Overview: This course is an introduction to computational problem solving using the Python programming language. We will study how to apply basic programming constructs (including variables, loops, strings, lists, conditionals, functions, modules, classes, and objects) in order to solve problems using a computer.

At the end of the course, you will be expected to be able to: Expectations: Writing computer programs is an extremely important component of this course. Programming can be very challenging and time-consuming, so be sure to start writing your programs as soon as possible after they are assigned. You will be expected to write short computer programs or short sections of computer programs on your tests, so you are encouraged to work additional problems as necessary to master the material.

DO NOT MISS CLASS! During class, I often discuss important points that may not be found in the textbook. I will also discuss homework assignments when they are assigned. If you have to miss class for a very good reason, please contact me at least one week in advance. If you are ill, please contact me as soon as possible.

Do not hesitate to seek help from the instructor if you are having difficulty with an assignment or preparing for a test. Visit the instructor during office hours or send email using the address on his web page. Furthermore, do not hesitate to ask questions during class or to seek help from classmates.

Instructor: Dr. Gabriel Ferrer
M.C. Reynolds 312
Web: http://ozark.hendrix.edu/~ferrer/

Office Hours:
MF: 1:30-3:00 pm
TWR: 1:30-2:30 pm
Feel free to make an appointment outside these times, or to stop by whenever my door is open. Also, these hours are subject to change; the most current schedule will always be posted outside my door.

Class Web Page: http://ozark.hendrix.edu/~ferrer/courses/150/

Lecture Time:
Section 1: C3 (MWF 10:10-11:00, R 12:10-1:00)
Section 2: C4 (MTWF 11:10-12:00)

Class Location:
Section 1: MCReynolds 315 (MF), MCReynolds 314 (WR)
Section 2: MCReynolds 317 (MF), MCReynolds 314 (TW)
Lectures will be on Mondays and Fridays, with computer lab work on the other days. Tests may be given on Mondays, Wednesdays, or Fridays.

Final Exam Period:
Section 1: Friday, December 9, 8:30-11:30 am
Section 2: Monday, December 12, 8:30-11:30 am

Required Textbook: Exploring Python, by Timothy A. Budd, McGraw/Hill, 2010.
We will use this book extensively this semester. The majority of our homework problems will be assigned from the book, and its text is a valuable supplement to the lectures.

Recommended Equipment: I strongly recommend the use of a USB drive for storing your programs. The hard drives on the lab computers will have their memories wiped daily.

Grading Criteria:
Homework, including programming projects: 30%
Final project: 10%
In-class tests: 25%
Final Exam: 30%
Class participation: 5%
Each assignment will be assigned a letter grade. Each letter grade has associated with it a percentage grade as follows:
Letter gradePercentage
A95
B85
C75
D65
F50
Missing grades will be scored zero. Any grade can have a "+" or "-" attached to it, adding/subtracting 4 points to/from the grade. A grade of "A+" will only be assigned to work that in some way impresses me above and beyond the requirements for the assignment.

For each category above, the total points earned will be divided by the total points possible to yield a percentage. These percentages will be weighted as given above. A final average of at least 90 earns an A; 80 earns a B; 70 earns a C; 60 earns a D; below 60 is failing.

Homework: Homework assignments will consist largely of problem sets assigned from the textbook. Later in the semester, some assignments will be standalone projects. In all cases, the grading criteria for the assignment will be stated when it is assigned. All assignments will be posted to the course web site. Additional problems will also be assigned from the book from time to time. Although these additional problems will not be graded, you will be responsible for the concepts they relate during tests.

All homework will be submitted using the Sauron submission system. Assignments will typically be due every Friday.

Honor Policy: You are responsible for writing all of the code for your assignments by yourself. You may incorporate parts of programs handed out in class or posted on the course web page as part of your solutions. You may not incorporate code obtained from any other source. You are encouraged to discuss your assignments with other students. You are not to copy code from another student, past or current, into your solution. In general, use common sense in tandem with these guidelines. Feel free to speak to the instructor about any situation that seems ambiguous to you.

Revisions: After assignments are returned, you are welcome to revise and resubmit your work. I will grade anew each submitted revision, and average the original and revised grades together to produce a new grade for that assignment. Revisions may be submitted anytime until the start of the final exam period.

No late work will be accepted. Any work not submitted on time is a zero. However, you may submit a solution after the deadline to qualify under the revision policy. In effect, this means that late work can earn up to half credit.

Final Project: Towards the end of the semester, you will design and implement a final project. The purpose of the final project is to consolidate your skills in the implementation of a non-trivial program. Project details will be forthcoming at the appropriate time.

Working in Teams: Each student is welcome to collaborate with one other student in completing homework assignments. Each such team should submit exactly one solution, for which they will receive the same grade. Given the class enrollment, whenever specified by the instructor working in teams may be compulsory. I reserve the right to change this policy, individually or collectively, at any time.

Illness and other excuses: If you are ill and miss any deadlines or tests, you must provide me with documentation of the illness from the school nurse or another health care professional as soon as possible. If you miss any homework or tests due to approved Hendrix activities, you must provide written documentation from the sponsor of the activity one week beforehand.