Course Details
Textbook
Software and Hardware
This class is BYOL. 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.
Overview
Introduction to solving computational problems, including the fundamentals of computer
programming. Topics include imperative programming constructs (variables, loops,
conditionals, functions, recursion), basic object-oriented constructs (classes, objects),
and some fundamental algorithms and data structures (dictionaries, arrays, linked lists,
basic sorting). Student learn these concepts through studying the Python programming
language.
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.
Quizzes and Participation
Sporadically throughout the semester, there will be short quizzes covering
material from the
previous class. These quizzes
will comprise 6% of your final grade.
You are encouraged to attend class and participate in discussions every day.
Active participation in class discussions will
comprise another 5% of your final grade. This will be awarded for answering questions, asking questions,
presenting material, etc.
Disabilities
It is the policy of Hendrix College to accommodate students with disabilities, pursuant
to federal and state law. Students should contact Julie Brown in the Office of Academic
Success (505.2954; brownj@hendrix.edu) to begin the accommodation process. Any student
seeking accommodation in relation to a recognized disability should inform the instructor
at the beginning of the course.
Academic Honor
As stated in the
Hendrix Academic
Integrity Policy, all students have agreed to adhere to the following principles:
- All students have an equal right to their opinions and to receive constructive criticism.
- Students should positively engage the course material and encourage their classmates to do the same.
- No students should gain an unfair advantage or violate their peers' commitment to honest work and genuine effort. It follows that any work that a student submits for class will be that student's own work. The amount of cooperation undertaken with other students, the consistency and accuracy of work, and the test-taking procedure should adhere to those guidelines that the instructor provides.
- Members of the Hendrix community value and uphold academic integrity because we recognize that scholarly pursuits are aimed at increasing the shared body of knowledge and that the full disclosure of sources is the most effective way to ensure accountability to both ourselves and our colleagues.
I will provide guidelines for the amount of cooperation allowed on each assignment as
they are posted.
In general, you may discuss topics with other students and tutors, but all code you write must be your
own, and you must be able to explain to me how it works. In this
course, it is a violation of the honor code to look at code from other students.
Extensions
Extensions and rescheduling for labs, projects, exams and quizzes are only given when
circumstances beyond your control (e.g. being sick, choir or sports travel)
prevent you from completing a project on time. You must notify me either by
email or phone of your circumstances well in advance of the due date.
No extensions are given for requests made within three days of the due date.
Syllabus
We will be covering most of the material in the textbook, approximately one new chapter
each week.
You should view your textbook as another perspective on the material
presented in class and covered
in the labs. We will also be using additional supplemental material such as
relevant web-pages
and background material for the lab assignments.
Readings will be assigned before material will be covered in class. You are expected
to review the material and come to class prepared.
- Aug 26 : Chapter 1
- Sep 2 : Chapter 2
- Sep 2 : Chapter 3
- Sep 8 : Chapter 4
- Sep 16 : Chapter 6
- Sep 24 : Chapter 7
- Sep 29 : Chapter 5
- Oct 6 : Chapter 8 and 9
- Oct 21 : Chapter 10
Labs
Much of your experience with programming in this course will be through weekly labs,
which will comprise 25% of your final grade. Each lab will be assigned in class with
time allotted to work through the materials, and will be due at the beginning of the next
class period. All labs are weighted equally within the Lab portion of your final grade.
You will be handing in your programming lab work via Moodle, and
written portions through Google Documents.
Instructions to do so
will be included in each lab.
On some labs, you may work with a partner on the lab assignments if you choose. Their name must be
listed on any code you hand in as joint work.
Projects
You will have three projects in this course, one about every five weeks, for a total of
34% of your final grade. These projects will cover concepts we have
discussed in class and in labs, and will be due approximately two weeks
after they are assigned.
You must work individually on these projects.
You may discuss concepts and ideas with your classmates, but the code you turn in
must be your own. You will be graded not only on correctness, but also technique,
documentation and evaluation
of your solution. Further details on the grading standards and handin instructions
for each project will be given when they are assigned.
Exams
There will be three in-class exams, each worth 10% of your final grade. They
will consist of short answer along with writing and debugging code.
- Exam 1: Sep 19, covering input/output, math, numerical data and conditionals
- Exam 2: Oct 15, covering functions, while and for loops, lists and strings
- Exam 3: Nov 21, covering recursion, dictionaries and object-oriented programming
Grading
Your final grade for this course will be based on the Labs, Projects, Quizzes, Exams and
Participation described above.
Grading Scale |
90-100 | A |
80-89 | B |
70-79 | C |
60-69 | D |
0-59 | F |
|
Weights |
Labs | 25% |
Projects | 34% |
Quizzes | 6% |
Participation | 5% |
Exam 1 | 10% |
Exam 2 | 10% |
Exam 3 | 10% |
|
© Mark Goadrich, Hendrix College