CSCI 150 - Foundations of Computer Science
Fall 2013
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:
- Read, understand and execute a computer program written in Python.
- Read a set of requirements for a computer program in English,
and write a short Python program (100 lines or less) that corresponds
to them.
- Test a Python program and identify and fix programming errors.
- Identify some errors in a Python program without testing it.
- Without using a computer, write a very short Python code
fragment (10 lines or less) that correctly implements a set of
requirements.
- Understand and apply variables, loops, strings, lists, conditionals, and functions.
- Write programs to perform mathematical calculations.
- Understand the concept of a module.
- Write a Python program that is separated into at least two modules.
- Understand the concepts of class and object, and distinguish between them.
- Write a Python program including objects of at least one student-designed class.
- Write and understand appropriate comments in a Python program.
- Understand the concept of an algorithm and compare the efficiency of
different algorithms for a simple task.
Instructor: Dr. Gabriel Ferrer
M.C. Reynolds 312
Web:
http://ozark.hendrix.edu/~ferrer/
Office Hours:
Tuesday: 3:35-4:30
Thursday: 2:30-4:00
Feel free to stop by whenever my door is open.
Appointments:
To make an appointment with me, visit
http://drferrer.youcanbook.me.
From there, you can see my availability and select an appointment time.
Class Web Page:
http://ozark.hendrix.edu/~ferrer/courses/150/
Lecture Times:
CSCI 150-01: C4 (MTWF 11:10-12:00)
CSCI 150-02: C7 (MWF 2:10-3:00; T 2:40-3:30)
Class Location:
CSCI 150-01: MCReynolds 110
CSCI 150-02: MCReynolds 315
Required Textbook:
Introduction to Computing Using Python: An Application Development Focus,
by Ljubomir Perkovic, Wiley, 2012.
Required Equipment:
Bring a laptop computer to class with you every day, unless there is a test.
I have a small number of computers available for students who are unable to
do so. We will do programming exercises every class period.
Grading Criteria:
Programming Exercises: 10%
Programming Projects: 40%
Tests: 20%
Final Exam: 30%
Programming Exercises:
- Each lecture is intended to last about 25-30 minutes.
- After the lecture, the remainder of the class time will involve
programming exercises, which are to be submitted
(via Moodle)
by the start of the next class period.
- For students without a laptop, a limited number of laptops are available for
in-class use.
- Students may discuss their solutions freely with one another, but submissions
are individual work.
- Programming exercises are not accepted after the start of the next class period.
They must be submitted on-time, or they are counted as "No submission".
Each programming exercise will be graded as follows:
- 100: Perfect: Everything works perfectly.
- 90: Close: All exercises are completed, with at most one minor flaw and no major flaws.
- 80: Decent: All exercises are attempted. Multiple exercises may contain minor flaws; at most one exercise contains a major flaw.
- 70: Flawed: All exercises are attempted. More than one exercise
contains a major flaw.
- 60: Deficient: At least half of the exercises are attempted; major flaws are pervasive.
- 50: Incomplete: At least one exercise is attempted.
- 0: No submission
Programming Projects:
- Eight programming projects will be assigned over the course of the
semester.
- Each project requires the student to develop a creative computer
program using a specified concept.
- Projects will be submitted via
Moodle.
- Honor policy for programming projects:
- You are responsible for writing all of the code for your projects 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 projects with other
students. You are not to copy code from another student, past or
current, into your solution. You should not show your project
code to any other student under any circumstances.
- 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.
- Revision policy for programming projects:
- After projects 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 project.
- Revisions may be submitted anytime until the start of the final exam period.
- Note: This only applies to projects, not to programming exercises.
- No late projects will be accepted. Any project not submitted on
time is a zero. However, you may submit a project after the deadline to qualify
under the revision policy. In effect, this means that late projects can
earn up to half credit.
In-Class Tests:
In-class tests will be administered on the following dates. This tentative schedule
is subject to change:
- Tuesday, September 10
- Friday, September 27
- Tuesday, October 22
- Monday, November 25
Final Exam:
A comprehensive final exam will be administered in your section's classroom at the
following dates and times. These dates and times are not changeable.
CSCI 150-01: Monday, December 16, 8:30-11:30 am
CSCI 150-02: Wednesday, December 18, 8:30-11:30 am
Grading Scale:
Each project, test, and exam will be assigned a letter grade. Each
letter grade has associated with it a percentage grade as follows:
Letter grade | Percentage |
A | 95 |
B | 85 |
C | 75 |
D | 65 |
F | 50 |
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.
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.
Accommodations:
It is the policy of Hendrix College to accommodate students with disabilities, pursuant to federal and state law. Any student who needs accommodation in relation to a recognized disability should inform the instructor at the beginning of the course. In order to receive accommodations, students with disabilities are directed to contact Julie Brown in Academic Support Services at 501-505-2954.