Please note: this syllabus may be updated based on the needs of the class and at the discretion of the instructor (the same is true for other course materials).
This course introduces students to the fundamental concepts of computer science, including an overview of how computers work. Students will learn about the hardware components of computers, operating systems, and the internet.
Students will also learn the basics of computer programming using the Python language. Students will learn about control flow, variables, data types, functions, and problem solving. While some skills will be Python-specific, high-level concepts will be language agnostic.
By the end of the course, students will have learned:
Students will build projects throughout the semester to apply their knowledge. The project subject and scope may vary depending on student interests and abilities.
Students will need access to a computer with internet access in order to access course materials, complete online quizzes, and work on programming assignments. For in-person class time, Chromebooks will be available for students to use (but students can bring their own computer if they have one).
Students will use Replit for their integrated development environment (IDE). Students can sign up for a free account using their school email address. As the semester progresses, students may run into limitations on their free account and will need to upgrade to a paid plan (see pricing of Replit Core plan).
No textbooks are required; free digital course materials will be provided throughout the semester.
Letter grades will be awarded according to the following scale:
| Letter | Grade |
|---|---|
| A | 93%-100% |
| A- | 90%-92% |
| B+ | 88%-89% |
| B | 83%-87% |
| B- | 80%-82% |
| C+ | 78%-79% |
| C | 73%-77% |
| C- | 70%-72% |
| D+ | 68%-69% |
| D | 63%-67% |
| D- | 60%-62% |
| F | < 60% |
Students’ final grade will be weighted as follows:
| Category | Weight |
|---|---|
| Projects | 40% |
| Quizzes | 30% |
| Exams | 30% |
Student projects will be evaluated on the following criteria:
| Category | Percentage |
|---|---|
| Functionality | 60% |
| Subjective Elegance | 40% |
| Timeliness | (see below) |
Late projects will be penalized by subtracting a percentage of the project’s total score for each day that has elapsed since the deadline.
For each day that a project is late, the subtracted percentage will be doubled, starting at 2% for the first day late.
| Days Late | Subtracted Percentage |
|---|---|
| 1 | 2% |
| 2 | 4% |
| 3 | 8% |
| 4 | 16% |
| 5 | 32% |
| 6 | 64% |
| 7 | Project no longer accepted |
60% (passes required functionality) + 30% (formatted well but solution is not idiomatic) = 90% (base score)
- 8% (3 days late) = 82% (final score)
Quizzes may be given periodically to evaluate non-cumulative knowledge retention.
There will be two in-person exams: one midterm and one final. Exams will evaluate cumulative knowledge retention.
Students are expected to exemplify the following characteristics:
Similarly, I will do my best to be respectful, attentive, and encouraging.
Students are encouraged to take ownership of their own experience in this class. In addition to completing assignments, students should proactively reach out for help when necessary and inquire about ways to expand projects beyond the minimum requirements. While this is an accredited course, students will get out of the class what they put in.
Artificial intelligence (AI) should not be used in this class unless explicitly stated otherwise.
Using AI to assist with quiz questions, write code, or otherwise behave disingenuously is subject to disciplinary action.
Not only is it plagiaristic but it is detrimental to the learning process.
There is a time and a place for AI, but that time and place is not this class.