Intro to Computer Science

For a printer-friendly version of the course syllabus, click on this Course Syllabus document.
To view the announcement of this course, see the Course Announcement page.

This course is an introduction to computer science and software engineering for all students interested in developing software applications, not just using them. Through a project-oriented approach, students will explore a variety of programming systems and languages to create interactive applications and systems. By collaborating in a hands-on environment, students will learn problem solving, software design, debugging strategies, and the foundations of computer science (data structures, procedures, and algorithms). Students will work on projects (both individual and team) in the areas of graphics and games, animation and art, electronics systems, and interactive fashion, all using open-source software tools such as Scratch, Arduino, Processing, and Python.


This course will give you the knowledge and skills to understand the fundamental principles and practices of computer programming. There are no prerequisites other than a basic familiarity with computer software, a curious spirit, and a willingness to experiment and learn.


In today’s digital society, we are all users of computers, networks, and software. In this course, students will get a chance to go beyond being a consumer of software products and to become a producer of them. This knowledge could lead directly to a career path in computing, an interest in studying the field more in college, or just a better understanding of how computers work. It also should be lots of fun along the way!


Understanding computational thinking (problem solving with computers) is at the heart of the practice of computer science and software engineering. You will explore this discipline by designing programs, systems, and games, using the tools of computational thinking – processes and algorithms. This approach, known as “constructivism,” emphasizes learning by designing and making things.

Through a combination of classwork, assignments, quizzes/tests, and project work, you will learn the fundamentals of computer science and designing software systems. A series of exercises and assignments lead up to a final project, for which you will design an interactive software system, with the possibility to work in small teams. There will be flexibility in the topic for the final project, allowing you to explore subjects that interest you.


Unit Topics Duration
Computational Thinking Problem Solving
System Design
1 week
Elements of Programming Control Flow
4 weeks
Computer Science Fundamentals Data Types
Control Structures
3 weeks
Software Engineering Software Design
Programming Tools
4 weeks
Final Project Concept & Proposal
Design Documentation
Project Plan
User Testing
6 weeks


Grades will be based on the components as shown below.

Homework 50%
Classwork 20%
Final Project 15%
Quizzes/Tests 15%

There will be opportunities to earn extra credit for optional reading, writing, design, or presentation projects of relevance to the course subject matter. Credit for professionalism will be earned by a variety of leadership, collaboration, and participation activities.


This course is structured so that you can accomplish most of the required work during class sessions, because much of it requires software and supplies that are in our lab. But things always come up, from absences to illness to just needing extra time. Late work will be accepted, without regard to cause, because I would rather have you do the work and learn the material we cover than not.

However, to be fair and to encourage you to keep up with the work, late assignments will be marked down 10%. And you can submit late work not more than two weeks past the due date, without extenuating circumstances.


Please be sure to have a composition book for the class (as well as writing instruments, of course), as you will need it for notes and keeping a journal. If you intend to work on your projects outside of school, you will need a flash drive to transport digital files back and forth.