This is an introductory course on computer science and algorithmic problem solving using the programming language Python. We will cover the topics listed in the schedule below. We will also focus on writing, running, debugging, and documenting computer programs.
Week | Topic | Notes | Projects |
---|---|---|---|
1 | Variables, expressions, & statements | Week 01 | Project 1 |
2 | Functions | Week 02 | Project 2 |
3 | Conditionals | Week 03 | Project 3 |
4 | Recursion | Week 04 | Project 4 |
5 | More on functions | Week 05 | |
6 | Iteration, Midterm 1 | Week 06 | Project 5 |
7 | Strings | Week 07 | Project 6 |
8 | Lists | Week 08 | Project 7 |
9 | Dictionaries | Week 09 | Project 8 |
10 | Tuples | Week 10 | Project 9 |
11 | File | Week 11 | Project 10 |
12 | Classes and objects | Week 12 | |
13 | Classes and functions, Midterm 2 | Week 13 | |
14 | Classes and methods | Week 14 | |
15 | Inheritance | Week 15 |
The schedule above is tentative, and may be subject to change. Changes will be announced in class, and you are responsible for knowing about any changes even if you miss the class when they are announced.
Attendance in this class is required. Repeated absences may result in a forced withdrawal from the course. You are responsible for any material you miss due to absence. Please let me know ahead of time if you know that you will not be able to attend class.
The term grade will be based on the following factors.
Component | Proportion |
---|---|
Midterms | 30% |
Projects | 45% |
Final Exam | 25% |
I use the following grading scale for projects and exams.
Letter Grade | Percentage |
---|---|
A | 96 - 100 |
A- | 92 - 95 |
B+ | 88 - 91 |
B | 84 - 87 |
B- | 80 - 83 |
C+ | 76 - 79 |
C | 72 - 75 |
C- | 68 - 71 |
D+ | 64 - 67 |
D | 60 - 63 |
F | 0 - 59 |
Programming is something that you can only learn by doing. During most class periods you will be asked to write short pieces of code. If you aren’t able to finish a task, then you should try to figure it out later on your own or come to office hours for help. These in-class programming exercises won’t be collected, although similar questions are likely to appear on tests and projects.
There will be several programming projects throughout the semester. You must complete these projects on your own. Do not ask AI or other students in this class for help on projects. If you include any code from another student or from the internet, that is plagiarism and will be treated as such. To avoid plagiarizing other students, you should avoid looking at other students’ code because you cannot “unsee” it. You should also never share your code with other students. If you need help with a project, see me or one of the student tutors for this course.
Projects will be graded based on several factors. Code should be written following the Python PEP-8 style guide with clear comments. It should make sense, and it should run correctly on all test cases. These factors will be graded holisticly using the following rubric.
All projects will be posted at least 4 days before they are due.
There will be two in-class midterm exams and a cumulative final. These exams will be announced in advance, and you will know exactly what concepts will be covered on each exam.
My office hours are shown on my weekly schedule. I am also available by appointment. If you can’t stop by during my regular office hours, just ask me after class or by e-mail, and I’ll be happy to make an appointment that works for both of us.
Students who think they may need accommodations in this course because of the impact of a disability are encouraged to meet with me privately at the beginning of the semester. Students also should contact Melissa Wood, Title IX/504 Coordinator (mwood@hsc.edu, 434-223-6061) to verify their eligibility for reasonable accommodations. Early contact will help to avoid unnecessary inconvenience and delays.