Syllabus#
Honors Computer Science Projects
2024-25
Dr. Kessner
Marlborough School, Los Angeles
Free periods: FI in D215
Course Description#
This course is for students who would like to continue their study of computer science beyond AP Computer Science A, and to apply the skills they learned in that course. The class provides a workshop / lab environment for students to work independently on individual or group projects, to improve their coding skills, and to explore and tinker with new technologies. Students have freedom to pick their own projects, and are encouraged to try things they have never done before. They may choose any area of computer science, including but not limited to: computer graphics, video games, virtual reality, mini-computers / microcontrollers (e.g. Raspberry Pi, Arduino), physical / wearable computing, interactive art, simulation, data analysis, scientific applications, programming languages, web development, mobile development. Students may enroll in this class multiple times for credit.
Learning Targets#
Discipline-Specific Conceptual Knowledge#
Learning the principles of software design and complexity management. Learning how to debug, handle errors, and validate software through testing.
skills (depends on project)
language / target platform (e.g. Javascript for web pages, Processing for video games, Python for data analysis)
domain-specific techniques (e.g. 3D graphics effects, exploratory data analysis)
practice:
implementation of features on their project(s)
assessment:
regularly scheduled code reviews
final presentation / performance
Communication & Dissemination#
Participating in code reviews, in which they present their projects to their classmates, communicate problems and solutions, and learn to give and incorporate feedback.
skills:
presenting technical knowledge in an understandable way
communicating the high-level design of a project
explaining problems and potential solutions
practice:
presenting project at code reviews
assessment:
regularly scheduled code reviews
final presentation / performance
Collaboration#
Working on projects with classmates, and also collaborate with students in other fields (e.g. social sciences, community partnerships, performing and visual arts, scientific research)
skills:
collaborating with classmates on coding assignments or projects
communicating details about problems or errors
describing advantages or disadvantages of potential implementations
practice:
working together on coding assignments
group software projects
assessment:
regularly scheduled code reviews
final presentation / performance
Agency, Leadership & Professionalism#
Managing projects by tracking progress on features and bugs, and prioritizing and scheduling coding tasks.
skills:
tracking and making regular progress on software projects
communicating progress and anticipating roadblocks
responding to feedback from clients or other collaborators
delivering software project on time
practice:
work on long-term software projects
assessment:
regularly scheduled code reviews
final presentation / performance
Design Process#
Using design thinking to model and break down problems. Learning to create and implement useful abstractions, and prototype and evaluate solutions.
skills:
research and prototyping
controlling code complexity through the use of language features (e.g. functions and classes) and design patterns
evaluating potential implementations
practice:
long-term software projects
assessment:
regularly scheduled code reviews
final presentation / performance
Reference#
(From the California Computer Science K-12 Standards)
The computer science core practices include:
Fostering an Inclusive Computing Culture
Collaborating Around Computing
Recognizing and Defining Computational Problems
Developing and Using Abstractions
Creating Computational Artifacts
Testing and Refining Computational Artifacts
Communicating About Computing
Links: