Sunday |
Monday |
Tuesday |
Wednesday |
Ted (7-9) |
Leigh (3:30-5:30) |
Ryan (6-9) |
Madeline (7-9) |
|
Ryan (6-8) |
|
|
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.
Date |
Day |
Topic/Activity |
Quiz |
Assigned |
Due |
17 Jan |
Weds |
Introduction to CS |
|
Survey |
|
19 Jan |
Fri |
Algorithms and Errors |
|
HW: Minecraft by hand |
Survey |
|
|
|
|
|
|
22 Jan |
Mon |
Python Math & Variables |
|
HW: Math and Variables |
HW: Minecraft by hand |
24 Jan |
Weds |
Functions |
|
|
|
26 Jan |
Fri |
Booleans |
|
|
|
|
|
|
|
|
|
29 Jan |
Mon |
Conditionals |
|
HW: Boolean practice |
HW: Math and Variables |
31 Jan |
Weds |
Tracing I |
Minecraft by Hand |
|
|
2 Feb |
Fri |
Pycharm |
|
|
|
|
|
|
|
|
|
5 Feb |
Mon |
I/O |
|
HW: CodingBat Conditional and By Hand Tracing Practice |
HW: Boolean Practice |
7 Feb |
Weds |
More Conditionals |
Math and Variables |
|
|
9 Feb |
Fri |
The while loop |
|
Project 1: Civic Assistance Q/A System |
|
|
|
|
|
|
|
12 Feb |
Mon |
More while loop Generative AI |
|
HW: Loops |
HW: CodingBat Conditional and By Hand Tracing Practice |
14 Feb |
Weds |
Functions & Stack Tracing |
Booleans |
|
|
16 Feb |
Fri |
Functions & Stack Tracing |
|
HW: Function Stack Tracing |
|
|
|
|
|
|
|
19 Feb |
Mon |
Winter Break - No class |
|
|
HW: Loops |
21 Feb |
Weds |
Strings |
Conditionals |
|
|
23 Feb |
Fri |
Strings and Loops |
|
|
Project 1 |
|
|
|
|
|
|
26 Feb |
Mon |
Lists |
|
HW: CodingBat String and Loop practice |
HW: Function Stack Tracing |
28 Feb |
Weds |
List Processing Examples |
Loops |
|
|
1 Mar |
Fri |
Function Abstraction |
|
Project 2: Word Games |
|
|
|
|
|
|
|
4 Mar |
Mon |
The for loop |
|
HW: CodingBat List and Loop practice |
HW: CodingBat String and Loop Practice |
6 Mar |
Weds |
More for loop practice |
Function Stack Tracing |
|
|
8 Mar |
Fri |
Common loop patterns |
|
|
|
|
|
|
|
|
|
11 Mar |
Mon |
File I/O |
|
HW: File I/O |
HW: CodingBat List and Loop Practice |
13 Mar |
Weds |
More File I/O |
Strings and Loops |
|
|
15 Mar |
Fri |
The Heap and Mutability |
|
|
Project 2 |
|
|
|
|
|
|
18 Mar |
Mon |
Spring Break - No class |
|
|
|
20 Mar |
Weds |
Spring Break - No class |
|
|
|
22 Mar |
Fri |
Spring Break - No class |
|
|
|
|
|
|
|
|
|
25 Mar |
Mon |
Dictionaries I |
|
HW: Dictionaries |
HW: File I/O |
27 Mar |
Weds |
Dictionaries II |
Lists and Loops |
|
|
29 Mar |
Fri |
Final Project Discussion |
|
Final project |
|
|
|
|
|
|
|
1 Apr |
Mon |
Classes |
|
HW: Classes |
HW: Dictionaries |
3 Apr |
Weds |
Class/object examples (cake; car) |
File I/O |
|
|
5 Apr |
Fri |
Class/object examples (bookshelf) |
|
|
Final project: Design Document |
|
|
|
|
|
|
8 Apr |
Mon |
Eclipse - No class |
|
|
HW: Classes (Slide under instructors’s door) |
10 Apr |
Weds |
PyGame animation |
Dictionaries |
HW: PyGame |
|
12 Apr |
Fri |
Classes and PyGame |
|
|
|
|
|
|
|
|
|
15 Apr |
Mon |
Recursion I |
|
HW: Recursion |
HW: PyGame |
17 Apr |
Weds |
Recursion II: Trees |
Classes |
|
|
19 Apr |
Fri |
Recursion III: Applications |
|
|
Final project: Progress Report |
|
|
|
|
|
|
22 Apr |
Mon |
Binary and Information Encoding |
|
|
HW: Recursion |
24 Apr |
Weds |
Project Workshop |
PyGame |
|
|
26 Apr |
Fri |
Retrospective |
|
|
|
|
|
|
|
|
|
3 May |
Fri 2:00-5:00 pm |
Final Project Presentations |
|
|
|
Coursework
Tokens
Each student begins the semester with six tokens.
- Send Dr. Ferrer a message on Teams to spend a token.
- Students may spend tokens as follows:
- Spend one token to submit a revised version of a project, in the event the project was assessed at Level 1.
- Spend one token to retake an attempted quiz or resubmit an attempted homework.
- Spend two tokens to request an extension on an assignment deadline.
- When requesting an extension, specify the new deadline that you think will suffice.
- Most deadline requests will be approved, but the instructor reserves the right to limit extensions if he deems them unreasonable.
- Spend three tokens to take a missed quiz resulting from an unexcused absence.
- Spend three tokens to submit an assignment after its deadline (including extended deadlines).
- To earn additional tokens:
- Earn one token by booking and attending an office hours appointment.
- A student may earn up to one token per week from attending office hours, and a maximum of six tokens over the course of
the semester.
- Earn two tokens by creating a homework problem to illustrate a concept.
- Earn four tokens by creating a 2-4 minute video educating a viewer about a concept from the course.
- Students may not go into token debt - to spend tokens, a student must have a positive balance.
There will often be short homework assignments to be completed,
typically assigned on Monday and due the following Monday. Homework
with coding practice problems will be submitted electronically.
By-hand homework should be submitted on physical paper at the start
of class time – you can write (neatly) or type and print such solutions.
A short quiz will be given at the end of class on most Wednesdays. Each
quiz will contain one or more short problems that should be solvable within
10 minutes.
Quizzes are pass-fail. If a student does not pass a quiz, or does not
attend class on a quiz day for any reason, they can make up the quiz by
visiting the instructor’s office during a scheduled make-up time. The
schedule will be announced during the second week of classes.
Quiz make-ups can also be arranged on Monday, April 29, the Reading Day.
Missing a quiz is excused if the student communicates to the instructor
prior to class that day that it is necessary for the student to miss class.
If extenuating circumstances make the scheduled make-up times impossible
to attend, a student should communicate with the instructor to determine
other potential arrangements.
Much of your experience with programming in this course will be through weekly labs. Each lab will be assigned in lab with time allotted to work through the materials, and will be due by the start of the following lab.
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. When you complete all of the lab milestones, you will
submit the milestone 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 they do not
complete the milestones during the lab period, they should find time outside of lab to work together to complete them. If
they are unable to do so, only the instructor is authorized to record milestones for students working alone.
Lab attendance is required. If an extenuating circumstance impedes the attendance of lab, the student must contact
the lab instructor prior to the start of the lab for the absence to be excused. The student is still responsible
for completing the lab activity on-time.
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 into the first computer lab, and then enter the second lab at the back.
You will have three projects in this course. These projects will cover concepts we have discussed in class and in labs, and will be due approximately two to four weeks after they are assigned.
You must work individually on the 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.
Each project will be assessed as Level 1 Complete or Level 2 Complete, with criteria specified individually
for each project.
Final course grades are earned based on cumulative assignment outcomes. For each
category of assignment, there are three levels of mastery: Basic, Intermediate, and Advanced.
Labs
- Basic: Complete 8 labs, maximum of two unexcused absences
- Intermediate: Complete 10 labs, maximum of one unexcused absence
- Advanced: Complete all 12 labs, no unexcused absences
Homework/Quizzes
Out of 13 homeworks and 12 quizzes (25 total assignments):
- Basic: Complete 13 homeworks and quizzes
- Intermediate: Complete 18 homeworks and quizzes
- Advanced: Complete 23 homeworks and quizzes
Projects
There are two levels for each project. The final project counts as two projects. Add up total project levels completed:
- Basic: Complete four levels of projects
- Intermediate: Complete six levels of projects
- Advanced: Complete eight levels of projects
Final Course Grade
- To earn an A in the course, a student will:
- Complete the course survey.
- Achieve Advanced in every category
- To earn a B in the course, a student will:
- Complete the course survey.
- Achieve at least Intermediate in two categories.
- Achieve Advanced in the third category.
- To earn a C in the course, a student will:
- Complete the course survey
- One of:
- Achieve Intermediate in all three categories.
- Achieve Advanced in one category, Intermediate in a second category, and Basic in the third category.
- To earn a D in the course, a student will:
- Achieve at least Basic in all the three categories.
- Achieve Intermediate or Advanced in at least one category.
Although you and I play different roles in the course, we both have
your learning as a common goal. There are things I expect from you as
a student in the course, but there are also things you can expect of
me as the course instructor and facilitator.
|
What I expect from you |
What you can expect from me |
Communication |
- Check your email and Teams for occasional course
announcements.
- Let me know via email or Teams message if you will need to miss class
for some reason.
- Let me know as soon as possible if you feel you are
struggling, would like extra help, or have something
going on that will affect your engagement in the
course or your ability to fulfill your
responsibilities.
|
- Clearly communicate expectations, assignment
details and dates, and grading standards.
- Return grades and feedback on submitted work within
one week of submission.
- Respond to emails within 24 hours.
|
Preparation |
- Come prepared to fully engage in class meetings, with
distractions minimized, to the best of your ability.
- Spend time outside of class actively practicing
unfamiliar or shaky concepts or skills (not just
reading over notes).
|
- Have a concrete plan for how we will
spend each class meeting, prepared to lead you through the
plan.
|
Engagement |
|
- Make myself available to meet outside of class, and
give you my full attention during a meeting.
- Be committed to your learning, open to feedback and
willing to respond in substantive ways to your
suggestions or concerns.
|
Attendance in this class is not required as part of your grade.
However, I do expect you to attend and appreciate knowing in advance
if you will need to miss class.
If you have a documented disability or some other reason that you
cannot meet the above expectations, and/or your learning would be best
served by a modification to the usual course policies, I would be
happy to work with you—please get in touch (via Teams or email)! The
course policies are just a means to an end; I don’t care about the
policies per se but I do care about you and your learning.
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.
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 Mike
Leblanc at leblanc@hendrix.edu or
501-450-1222 or the Title IX Coordinator Jennifer Fulbright at
titleix@hendrix.edu or 501-505-2901. If
you have ideas for improving the inclusivity of the classroom
experience please feel free to contact
me. For more information on
Hendrix non-discrimination policies, visit
hendrix.edu/nondiscrimination.
Hendrix recognizes that many students face mental and/or physical
health challenges. If your health status will impact attendance or
assignments, please communicate with me as soon as possible. If you
would like to implement academic accommodations, contact Julie Brown
in the office of Academic Success
(brownj@hendrix.edu). To maintain
optimal health, please make use of free campus resources like the
Hendrix Medical Clinic or
Counseling Services (501.450.1448). Your health is important, and I
care more about your health and well-being than I do about this class!