Monday |
Tuesday |
Wednesday |
Thursday |
|
|
|
|
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). Student learn these concepts through studying the Python programming language.
Upon completing this course, our goal is for you to be able to:
- Build computer programs to:
- Effectively solve realistic problems.
- Organize, analyze, and summarize realistic data sets.
- Read, understand, and explain a computer program.
- Understand and explain computation through:
- Thinking logically and precisely.
- Making and testing hypotheses.
- Use modular components to decompose problems and assemble solutions.
- Create abstract, generalized models from specific, complex examples.
- Find pertinent information from programming language documentation.
Module |
Date |
Topic & Notes |
Module Components |
Projects |
|
W 27 Aug |
Introduction to Computer Science  |
Lab 0: Minecraft |
|
|
|
|
CSCI Student Survey |
|
|
F 29 Aug |
Algorithms and Errors |
|
|
|
|
|
|
|
|
M 1 Sep |
No class - Labor Day |
|
|
1: Math & Variables in Python |
W 3 Sep |
Python |
Lab 1: Kepler, Newton, Einstein |
|
|
|
Math & Variables |
HW 1: Math & Variables |
|
|
F 5 Sep |
Functions |
|
|
|
|
|
|
|
2: Booleans & Conditionals |
M 8 Sep |
Booleans |
|
|
|
W 10 Sep |
Conditionals |
Lab 2: Heart Disease |
|
|
|
|
HW 2: Booleans & Conditionals |
|
|
F 12 Sep |
Tracing |
Quiz 1: Math & Variables |
|
|
|
|
|
|
3: Tracing and the Stack |
M 15 Sep |
More tracing & the function stack |
|
|
|
W 17 Sep |
Tracing with the function stack |
Lab 3: This Day in History |
Project 1 assigned |
|
|
|
HW 3: Tracing |
|
|
F 19 Sep |
Stack tracing |
Quiz 2: Booleans & Conditionals |
|
|
|
PyCharm installation |
|
|
|
|
|
|
|
4: While Loops |
M 22 Sep |
I/O |
|
|
|
|
Introduction to while loops |
|
|
|
W 24 Sep |
While loops |
Lab 4: Guess My Number |
|
|
|
|
HW 4: While Loops |
|
|
F 26 Sep |
While loops |
Quiz 3: Tracing |
|
|
|
|
|
|
5: Strings |
M 29 Sep |
Strings |
|
|
|
W 1 Oct |
Strings and Loops |
Lab 5: Doublets |
Project 1 Due |
|
|
|
HW 5: Strings |
|
|
F 3 Oct |
Strings and Loops |
Quiz 4: While Loops |
|
|
|
|
|
|
6: Lists |
M 6 Oct |
Lists |
|
|
|
W 8 Oct |
List processing examples |
Lab 6: To Do Manager |
|
|
|
|
HW 6: Lists |
|
|
F 10 Oct |
Function abstraction |
|
|
|
|
|
|
|
7: File I/O |
M 13 Oct |
File I/O |
|
Project 2 assigned |
|
W 15 Oct |
File I/O |
HW 7: File I/O |
|
|
|
HW 6 review + quiz |
Quiz 6: Lists |
|
|
|
|
No Lab 7 - Fall break |
|
|
F 17 Oct |
No class - Fall break |
|
|
|
|
|
|
|
8: For Loops |
M 20 Oct |
For loops |
|
|
|
W 22 Oct |
Common loop patterns |
Lab 8: Caesar’s Secrets |
|
|
|
|
HW 8: For Loops |
|
|
F 24 Oct |
Mutability and the heap |
Quiz 7: File I/O |
|
|
|
|
|
|
9: Dictionaries |
M 27 Oct |
Dictionaries |
|
|
|
W 29 Oct |
Dictionaries |
Lab 9: Asteriskbucks |
Project 2 due |
|
|
|
HW 9: Dictionaries |
|
|
F 31 Oct |
Final Project discussion |
Quiz 8: For Loops |
Final project assigned |
|
|
|
|
|
10: Classes |
M 3 Nov |
Classes |
|
|
|
W 5 Nov |
Class & object examples |
Lab 10: Water Jugs |
|
|
|
|
HW 10: Classes |
|
|
F 7 Nov |
Class & object examples |
Quiz 9: Dictionaries |
|
|
|
|
|
|
11: PyGame |
M 10 Nov |
PyGame animation |
|
|
|
W 12 Nov |
Classes and PyGame |
Lab 11: Faces |
|
|
|
|
No homework |
|
|
F 14 Nov |
Classes and PyGame |
Quiz 10: Classes |
Final project design due |
|
|
|
|
|
12: Recursion |
M 17 Nov |
Recursion |
|
|
|
W 19 Nov |
Recursion: trees |
Lab 12: Enron’s Secrets |
|
|
|
|
HW 12: Trees & Recursion |
|
|
F 21 Nov |
Recursion: applications |
No Quiz 11 |
|
|
|
|
|
|
|
M 24 Nov |
Binary & information encoding |
|
|
|
W 26 Nov |
No class - Thanksgiving |
|
|
|
F 28 Nov |
No class - Thanksgiving |
|
|
|
|
|
|
|
|
M 1 Dec |
Generative AI |
|
|
|
W 3 Dec |
Project workshop |
Lab: Final project workshop |
|
|
F 5 Dec |
Retrospective |
Quiz 12: Trees & Recursion |
|
Coursework
Most of your work in this course will be organized around a series of
twelve modules, each module typically lasting one week and focusing
on a particular topic. Most modules will have three components:
-
A lab, in which you get to put into practice what we have been
learning in class, in partnership with other students and with the
help of a lab instructor and TAs.
-
A homework assignment, giving you more individual, focused
practice following the lab.
-
A quiz that tests your understanding of the relevant concepts and
skills.
In order to get credit for a module, you must complete the lab
and receive credit for the quiz. If you do not receive credit for
a quiz, you may retake a new version of the quiz after coming to
office hours with the relevant completed homework assignment; see
below for more details.
The exceptions are:
- Module 7, which has a quiz but no lab
- Module 11, which has a lab but no quiz
Much of your hands-on experience with programming in this course will
be through weekly labs. During each scheduled lab period, you will
spend time working with an assigned partner on a lab exercise, with
the help of the lab instructor and TAs. The lab is due by the start
of the following lab.
Lab completion and grading
Each lab consists of a series of milestones. At the start of each lab,
you will receive a sheet of paper listing the milestones for that
lab. As you achieve each milestone, you will demonstrate to the
instructor or TA that you have met the milestone, and they will record
this achievement on your checklist. If you complete the lab during the
lab period, hand your checklist to your lab instructor before you
leave the lab. If you require additional time beyond the lab period to
complete the lab, either the instructor or the lab TA can check off
the remaining milestones during office hours. You can then submit the
completed checklist to the instructor at the start of the next lab.
You will work with a partner on each lab assignment. Each partner will
have their own milestone checklist. If you and your partner do not
complete the milestones during the lab period, you should find time
outside of lab to work together to complete it during the following
week. If this is not possible for some reason, talk to one of the
course instructors. TAs can only check off lab milestones if both
partners are present.
Late lab submission
Completed labs are due by the start of the following lab (i.e.
typically in one week, sometimes two). If you cannot submit a lab
by the due date, you may request an extension by sending a message
to one of your instructors, with a specific new deadline by which you
will submit the lab. In order to turn in a lab late (i.e. after
either the original deadline or your agreed, new deadline if you
requested an extension), you must first schedule an office hours
meeting with an instructor to discuss your progress in the course.
Lab attendance
Lab attendance is required. If you know you must miss a lab due to
sports travel, illness, or some other reason, you should contact your
lab instructor before lab (or, in the case of emergencies, as soon as
possible). Your lab absence will then be considered excused.
However, you are still responsible for completing the lab activity on
time. If you wish, your lab instructor may be able to pair you with
another student who was absent; or you may complete the lab on your
own. In either case, you are still welcome to get help on the lab
from an instructor or TAs.
Labs take place in the Snoddy Computer Lab, in the Bailey
Library. As you go through the exterior door of the library, turn
immediately to your left and enter the Snoddy Academic Resource
Center:

Continue through the door at the far end of the hall (just visible in
the above picture) into the first computer lab, and then enter the
second lab at the back.
Each week, you will be given a homework assignment, typically due on
Monday. These assignments will help you individually practice and
solidify the skills and concepts from a given module, and prepare you
to take the quiz.
If you turn in your homework in class on Monday, it will be checked
and returned to you with feedback on Wednesday, before the
corresponding quiz on Friday.
Homework assignments do not directly contribute to your final grade in the
course. However, they will prepare you for the quizzes; in addition,
if you do not initially receive credit on a quiz, you must complete
the corresponding homework assignment before you may retake the quiz
(see below).
A short quiz will be given at the end of class on most Fridays. Each
quiz will contain one or more problems or short-answer questions that
should be solvable within 10 minutes or so.
Quizzes are graded credit/no credit.
If you do not receive credit for a quiz, you may retake it as follows:
- Schedule an office hours appointment with an instructor.
- You must bring the quiz and completed homework assignment from the
corresponding module with you to the office hours appointment. It
does not matter whether you already completed and turned in the homework
before taking the quiz, or whether you complete it after realizing
that you will need to retake the quiz; either way, you must bring it
with you.
- After going over the quiz and homework, if the instructor is
satisfied that your understanding has improved, you may retake a
different version of the same quiz.
- Alternatively, the instructor may give you additional practice
problems to work before coming back to retake the quiz on a later
date.
Missed quizzes may be made up on a subsequent quiz day (there will
usually be sufficient time allotted to take more than one quiz), or
you may book an office hours appointment to take a missed quiz.
Projects give you an opportunity to synthesize multiple concepts and
skills from class into a working whole, as well as an opportunity to
engage your creativity.
Each project will have a detailed specification explaining the
required criteria for a successful project. Each project will be
graded out of 3 points:
- 1 point for being turned in on time (late projects may still be
submitted for a maximum of 2 points)
- 1 point for a project that meets the basic requirements (as
specified in the project description)
- 1 additional point for a project that meets the full requirements
Project submission
You may ask for an extension at any time prior to the deadline for
projects 1 and 2: just let an instructor know that you would like an
extension, and specify your new deadline. A project submitted by the
new, extended deadline will still be considered on time.
The first such request for a given project will be automatically
granted. Typically, only one extension will be given for each
project; however, requests for additional extensions will be
considered on a case-by-case basis.
Extensions on the final project will only be granted in exceptional
circumstances.
Project grading
Projects that do not receive full credit will be returned with
detailed feedback explaining what you must revise or improve to
receive a higher grade, along with a new deadline for the revisions.
There will not be an opportunity to revise the final project.
However, you are welcome to visit office hours to get feedback on your
final project along the way; the grade your get on the final project
should not be a surprise.
Attendance in this class is not required as part of your grade.
However, we do expect you to attend and appreciate knowing in advance
if you will need to miss class.
- To earn an A in the course, a student will:
- Complete the CSCI student survey.
- Complete at least 11 out of 12 modules.
- Have at most one unexcused lab absence.
- Earn at least 8 project points.
- To earn a B in the course, a student will:
- Complete the CSCI student survey.
- Complete at least 9 out of 12 modules.
- Have at most two unexcused lab absences.
- Earn at least 6 project points.
- To earn a C in the course, a student will:
- Complete the CSCI student survey.
- Complete at least 8 out of 12 modules.
- Have at most three unexcused lab absences.
- Earn at least 4 project points.
- To earn a D in the course, a student will:
- Complete at least 6 out of 12 modules.
- Have at most three unexcused lab absences.
- Earn at least 3 project points.
This information is summarized in the table below:
Grade |
Modules |
Lab unexcused absences |
Project points |
A |
11 |
≤ 1 |
8 |
B |
9 |
≤ 2 |
6 |
C |
8 |
≤ 3 |
4 |
D |
6 |
≤ 3 |
3 |
Commitments
It is my ultimate goal for this course, and my teaching, to
develop your academic skills, advance your learning
of computer science concepts, and support the liberal arts in general. To do so
will require commitments from myself and from you toward meeting this goal.
Active Participation
I will be prepared and on time for class each day, ready to use class time
to help you understand the course material. I will respectfully listen to,
understand, and answer questions asked in class.
You are expected to attend class and actively participate in discussions every day,
answering questions, asking questions, presenting material, etc. Your
participation will be respectful of your classmates, both of their
opinions and of their current point in their educational journey, as we
each approach the material with different backgrounds and contexts.
Constructive Feedback
I will keep office hours and be available for outside appointments, and respond
to emails within one business day (not including weekends).
I will provide feedback on group presentations within one day. For exams, projects,
and homeworks, I will provide graded feedback within two weeks.
You are encouraged to provide constructive comments for improving this
course for furthering your learning throughout the semester.
There will be an opportunity for
anonymous course feedback
at the end of the term, in which I hope you all participate. Through your
feedback I can improve this course and others for future students.
Academic Integrity
I will abide by the above syllabus and grade your work fairly.
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.
You may not use any Python features we have
not yet covered in class, unless you
include a comment explaining where you learned
about it and why you decided it would be
helpful or appropriate to use in the given circumstance.
All use of generative AI systems for any
purpose in this class is strictly
forbidden. Any use or suspected use of
generative AI will be considered a violation of academic integrity.
More details of our departmental stance on integrity can be found in the
Hendrix
Computer Science Academic Integrity Policy.
Learning Accomodation
I will make this classroom an open and inclusive environment,
accommodating many different learning styles and perspectives.
It is the policy of Hendrix College to
accommodate students with disabilities,
pursuant to federal and state law. Students
should contact Mr. Blake Draper in the Office
of Advising & Academic Success
(AcademicSuccess@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.
Hendrix College values a diverse learning environment as outlined in the College's
Statement on Diversity.
All members of this community are expected to contribute to a respectful, welcoming,
and inclusive environment for every other member of the community. If you believe
you have been the subject of discrimination please contact Dean Donna Eddleman
at eddleman@hendrix.edu or
501-450-1222 or the Title IX Coordinator Danielle Crowell at
crowelld@hendrix.edu or 501-450-1296.
For more information on Hendrix non-discrimination policies, visit
hendrix.edu/nondiscrimination.
Physical and Mental Health
I am willing to work with you individually when life goes off the rails.
Coursework and college in general can become stressful and overwhelming, and
your wellness can be impacted when you least expect it. You should
participate in self-care and preventative measures, and be willing to
find support when you need it.
- The Office of Counseling Services
welcomes all students to see a counselor
in a private and safe environment regardless of their reasons for making an
appointment. Counseling services are available to all Hendrix students
at no cost.
- Student Health Services
provides free healthcare to Hendrix students. Services are provided by an
Advanced Practice Registered Nurse (APRN) in collaboration with a local physician.
The Offices of Counseling Services and Student Health Services are located in the white house
behind the Mills Center for Social Sciences at
1541 Washington Avenue.
Your health is important, and I care more about your health and well-being than I do about this class!