Intermediate Computer Programming

Description

This course of study is designed to emphasize the fundamentals of computer programming. Topics include computer software, program design and development, and practical experience in programming using modern, object-oriented languages.

Prerequisites

Any computer-related course and Algebra 1 are prerequisites for this course. However, successful completion of Geometry prior to taking this course is strongly encouraged.

State Standards

State standards can be viewed at the following link: https://ed.sc.gov/instruction/career-and-technology-education/.

Software and Materials

Python 3 will be the language used in this course. Python is free, cross-platform programming language. IDLE, which is included with Python, will be used as the IDE. Students are encouraged to download and install Python on their home computers. We will also spend considerable time using the Pygame module for game development. In addition, Google Apps for Education will be integrated into the course. Students will need to use the Chrome web browser to access many course materials as well as submit assignments. 

Since most work will be done on computers, very little in the way of materials will be needed in class. Most assignments will be distributed digitally. A small folder should be enough to keep up with occasional handouts. 

Evaluation

Grading will be done on weighted category system. Major assessments will count for 60% of your term grades. Minor assessments (quizzes and daily work) will count for the remaining 40%. Within each category, a point system will be used. Point values for each assignment may vary based on difficulty and time needed to complete.

All major assessments will be projects where you create a complex program. Early projects may take 2-3 days to complete. Later in the year, programs may take up to 3 weeks of class time to complete. After some lessons, quizzes will be given. In most cases, you will be allowed to discuss quizzes with a partner while you work. I feel that having the opportunity to "talk through" concepts is a very effective way to reinforce understanding of programming concepts. Most daily work will be graded on completion. Understand that "completion" means completed to 100% correctness. You may not get partial credit for daily work. Also, not all daily work will be graded, and refusal to complete daily work may be treated as a disciplinary issue. 

The following grading scale will be used:

A = 90-100 points

B = 80-89 points

C = 70-79 points

D = 60-69 points

F = below 60 points.

At the conclusion of the semester, a cumulative exam will be given. The exam will count for 10% of the overall course grade. There will be no exam exemption.

Late Work Policy

For project-based major assessments, you will be given two deadlines. The first is a "soft deadline" which is the last day you will be given class time to work on a project. The second is a "hard deadline" which is the last day a project will be accepted for full credit. The hard deadline will generally be 5 school days after the soft deadline. It is okay if projects are not completed by the soft deadline, but understand you will need to either stay after school to continue working or work at home. Projects turned in after the hard deadline will have points deducted. Students whose accommodations allow for extended time on projects should understand the period between the soft and hard deadlines is your extended time. 

For all other daily work, you should consider the due dates posted in classroom as a pacing guide. It is okay if you are sometimes a day or two behind or a little ahead. I encourage you to work at a pace at which you are understanding the material. I also want to give you the freedom to explore and experiment if you get an idea during an assignment. There will be no penalty for late work. However, once we move on to the next unit, all assignments in the previous unit will be locked.

In cases of extended absence or other hardships, please see me to discuss individual due-date extensions. Any extension should be discussed prior to the initial deadline.

Topics

Below is a tentative list of general topics that will be covered during this course. 

Introductory Concepts

Data Structures

Game Design