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:
Please do not bring laptops to lecture. This may seem strange in a computer science class. But lab is the place where you will get plenty of experience working on the computer; lecture is a time for thinking and learning without the distraction of a computer.
Exceptions may be made on a case-by-case basis if you can prove to me that you really do benefit from using your laptop to take notes.
When we write code together in class, it will be posted here!
|F 30 Aug||Intro to Python||8am||11am|
|W 4 Sep||More Math and Functions||8am||11am|
|F 6 Sep||Strings and Booleans||8am||11am|
|M 9 Sep||Conditionals||8am||11am|
|M 23 Sep||PyCharm, I/O, while||intro.py, while.py||intro.py|
|W 25 Sep||more while loops||while.py, collatz.py||repetition.py, collatz.py|
|F 27 Sep||functions||collatz.py, stacktrace.py||collatz2.py|
|M 30 Sep||function abstraction||hilow.py, hilow_functions.py||hilow.py, hilow_functions.py|
|W 2 Oct||strings||8am||11am|
|F 4 Oct||String and loop practice||8am||morewhile.py|
|M 7 Oct||Lists||8am||morewhile2.py|
|W 9 Oct||More lists||8am||listpractice.py|
|F 11 Oct||List practice||8am||fridaypractice.py|
|M 21 Oct||For loops||For Loops.ipynb||ForLoops.ipynb|
|W 23 Oct||For loops with
|F 25 Oct||Tracing and the Heap||References||More Tracing|
|M 28 Oct||Dictionaries||Dictionaries||Dictionaries|
|W 30 Oct||File Input Output||Files||File I/O|
|F 1 Nov||Dictionary/tracing practice||Dictionaries|
|M 4 Nov||Classes and objects||Birthday Cake.ipynb||Objects.ipynb|
|W 6 Nov||More Classes||MakingCake.ipynb|
|F 8 Nov||Designing classes||traffic.py|
|M 11 Nov||Extended example|
|W 13 Nov||Extended example||Card, Hand, Deck, Player|
|F 15 Nov||Extended example||Elevator, Person, Hotel, Main|
|MW 2-4 Dec||Queues|
|F 6 Dec||?||A different problem, Cold-puter Science, Baby Bites, Saving Princess Peach, Babelfish||Graphics.py Demo Day|
Each student has four late days to spend throughout the semester as they wish. Simply inform the instructor any time prior to the due date for an assignment that you wish to use a late day; you may then turn in the assignment up to 24 hours late. Multiple late days may be used on the same assignment. There are no partial late days; turning in an assignment 2 hours late or 20 hours late will both use 1 late day. Note that late days are intended to cover both normal circumstances (you simply want more time to work on the assignment) and exceptional circumstances (you get sick, travel for a game or family obligation, etc.). After you have used up your late days, late assignments will receive at most half credit.
|0||Info Sheet||W Aug 28||F Aug 30|
|1||Minecraft by hand||F Aug 30||W Sep 4|
|2||Boolean practice||F Sep 6||W Sep 11|
|3||Tracing & conditional practice||F Sep 13||W Sep 18|
|Homework Checkin 1||M Sep 23||F Oct 4|
|4||Function and loop practice||F Sep 27||W Oct 2|
|5||Strands of DNA||F Oct 4||W Oct 9|
|6||For loop reading||F Oct 25||W Oct 30|
|7||Heap/dictionary reading||F Nov 1||W Nov 6|
|8||Class design practice||F Nov 8||W Nov 13|
|9||Class reading||F Nov 15||W Nov 20|
There will often be short homework assignments to be completed over the weekend, assigned on Friday and due Wednesday, sometimes with a corresponding quiz at the beginning of class on Wednesday.
|1||Minecraft Hour of Code||Aug 28-29||Sep 4-5|
|2||Kepler and Newton||Sep 4-5||Sep 11-12|
|3||Diagnosing Heart Disease||Sep 11-12||Sep 18-19|
|4||This Day in History||Sep 18-19||Sep 25-26|
|5||Guess My Number||Sep 25-26||Oct 2-3|
|6||Mutation is the Word||Oct 2-3||Oct 9-10|
|7||Todo Manager||Oct 9-10||Oct 23-24|
|8||Caesar’s Secrets||Oct 23-24||Oct 30-31|
|9||Sentiment Analysis||Oct 30-31||Nov 6-7|
|10||Water Jugs||Nov 6-7||Nov 13-14|
|11||Graphics and Animation||Nov 13-14||Nov 20-21|
|12||Enron’s Secrets||Nov 20-21||Dec 4-5|
|13||On Stuckness and Debugging||Dec 4-5||Dec 11-12|
Much of your experience with programming in this course will be through weekly labs. Each lab will be assigned Wednesday/Thursday in lab with time allotted to work through the materials, and will be due by the start of the following lab. All labs are weighted equally within the lab portion of your final grade.
On these labs, you will work with a partner on the lab assignments. Their name must be listed on any code you hand in as joint work. A partnership should only turn in a single copy of the assignment. If students working as partners wish to turn in a lab late, both students must use a late day.
Lab attendance is required. 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.
Labs should follow the Python style guide. You may use the automated style checker to help you catch common style errors.
For many of the labs, we will be using Azure Notebooks. Here are specific instructions on how to get started with these notebooks.
First, you will need to create a free Microsoft Azure Notebook account. Visit this webpage to start the process.
Click on the Sign in text in the upper-right corner of the page. Log in with your Hendrix email account and password.
Next, follow the link for the specific lab for the week, and click on the green Clone button in the upper-right corner of the screen.
This should make a copy of the project for you in your projects folder. Now click on My Projects and the name of your lab for the week.
In your copy of the project, click on the
file in the project listing. This should open the
notebook in the Azure Jupyter system in a separate browser tab, and
you can start editing the file with your code. Follow the
instructions in the file to complete this lab.
You can save your progress using Ctrl-S or Cmd-S, and then return to this file any time.
To submit your file for grading when you are finished, return to
the lab folder listing in the My Projects
tab. Select the circle to the left of the
Then, click on the down arrow icon in the menu, to
the left of the trash can icon. This will allow you to download
the file onto your computer; then you can upload it using the
usual turnin form.
|1||Civic Assistance Q/A System||50||Sep 21||Sep 30|
|2||Word Games||100||Oct 16||Nov 1|
|3||Final Project||200||Nov 18||Final Exam Day|
You will have three projects in this course, one about every five weeks. These projects will cover concepts we have discussed in class and in labs, and will be due approximately one week after they are assigned.
You must work individually on the first two 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.
There will be three in-class exams, the first worth 50 points and the second and third worth 100 of your final grade. They will consist of short answer questions along with writing and debugging code.
There is no final exam; you will complete a final project instead, as described above under Projects.
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.
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.
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.
In addition, you can use this form to submit anonymous feedback for Dr. Yorgey any time.
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:
I will make this classroom an open and inclusive environment, accommodating many different learning styles and perspectives.
Any student seeking accommodation in relation to a recognized disability should inform me at the beginning of the course. 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; firstname.lastname@example.org) to begin the accommodation process.
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 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.