Program of Studies

The Computer Science program at Old Colony equips students with skills in
programming and web design/development. Over four years, students gain
vital problem-solving, employability, and project management skills and are
able to plan, design, and execute independent projects. All seniors complete
a large-scale project, which serves as a culmination of all they learned and
demonstrates their skills or covers a topic they are passionate about.

    • Students are introduced to robotics which can be used to solve problems in a variety of settings from business to healthcare and how robotics enables innovation by automating processes thatmay be dangerous or otherwise problematic for humans. Students design algorithms and create programming solutions to a variety of computational problems using an iterative development process in Python using Ed.Py. Programming problems include mathematical and logical concepts and a variety of programming constructs. Students explore how to integrate hardware and software in order to solve problems.
    • This course addresses the basic, fundamental concepts of industry-standard web design languages. Throughout the course, students will be exposed to HTML and basic CSS functionality while learning how the World Wide Web and web pages generally work. During the year, students will also learn relevant design concepts to improve their design skills, such as hierarchy, contrast, and data organization.
    • This unit provides students with opportunities to become computational thinkers by applying a variety of problem-solving techniques as they create solutions to problems that are situated in a variety of contexts. Students will think abstractly and apply known algorithms to these problems, but will also create new algorithms where appropriate. Analysis of various solutions and algorithms will highlight problems that are not easily solved by computer and for which there are no known solutions. Students will also be introduced to selected topics in discrete mathematics including Boolean logic, functions, graphs and the binary number system. Students are also introduced to searching and sorting algorithms and graphs.
    • This course introduces students to the concepts of computer and computing while investigating the major components of computers and the suitability of these components for particular applications. Students will experiment with internet search techniques, explore a variety of websites and web applications and discuss issues of privacy and security. Students will learn that “intelligent” machine behavior is not “magic” but is based on algorithms applied to useful representations of information. Students will learn the characteristics that make certain tasks easy or difficult for computers, and how these differ from those that humans characteristically find easy or difficult. Students will gain an appreciation for the many ways in which computing-enabled innovation have had an impact on society, as well as for the many different fields in which they are used.

    • This course is supported by the Mobile Computer Science Principles Project (Mobile CSP), an NSF-funded effort to provide a broad and rigorous introduction to computer science based on App Inventor, a mobile programming language for Android devices. The course is based on the College Board’s emerging Advanced Placement (AP) Computer Science Principles curriculum framework for introductory computer science. Students will learn computer science by building socially useful mobile apps. In addition to programming and computer science principles, the course is project-based and emphasizes writing, communication, collaboration, and creativity.
    • This course builds upon the basic HTML and CSS skills taught in freshman year to bring students to an intermediate web development level. Students will touch upon a wide range of web design and topics to improve their development style, which will allow students to build more sophisticated multi-page websites. Some of the topics discussed are: elements of strong web design, webfonts, color theory, external stylesheets display options, positioning, web accessibility, and other related topics. By the end of the course, students will also be introduced to website interactivity, using the JavaScript library, jQuery. As time allows, students will use the interactivity skills to be introduced to user interface design and development for browser-based web applications.
    • In this unit, students explore how computing has facilitated new methods of managing and interpreting data. Students will use computers to translate, process and visualize data in order to find patterns and test hypotheses. Students will work with a variety of large data sets that illustrate how widespread access to data and information facilitates identification of problems. Students will collect and generate their own data related to local community issues and discuss appropriate methods for data collection and aggregation of data necessary to support making a case or facilitating a discovery.

    • In this course, students will spend roughly half of their time learning advanced web design skills and in the other half of shop time, students will learn how to follow the Agile Software Development Process. Students will begin transitioning into being more independent in terms of goal-setting, task planning, and managing workload as the year progresses. At some point in their junior year, students will all propose, plan and develop an individual or group project that will demonstrate their knowledge and adherence to the software development process. As juniors, they will follow a modified process with less planning and paperwork, but will help them understand how the process is put into practice. By the end of the year, students will propose their idea for their senior project, whether that is a continuation of their junior project or a whole new idea.
    • After learning programming concepts in freshman and sophomore year, students will be introduced to the Java programming language to apply programming concepts in an industry-standard syntax. Students will write short programs using the procedural paradigm to understand the following concepts: primitive datatypes, arithmetic operators, selection structures, iteration structures, file processing, and arrays. Students will bring the knowledge of these concepts into senior year and will apply them to a new programming paradigm.
    • This course includes information on customer service skills needed to succeed such as problem solving, time management, listening, and stress management. Also incorporated into the course is the importance of being able to communicate using new technology and how it affects the role of customer service

    • In this course, students will build upon the computer science concepts that they learned during Grades 9-11. The primary focus of senior year is senior projects. All students will be assigned an individual project on a topic of their choice, as well as a team project to help simulate a workplace environment. All projects will follow an Agile Software Development Process and students will be required to complete reflections to track their progress as well as keep track of a Progress Binder holding all software development artifacts. To complete their project, students will be planning and executing a project plan they create and will be expected to do independent research to learn skills they might need to reach their goals. At the end of the year, students will have two impressive, long-term projects that showcase their strongest skills and can be used as a portfolio piece in the next stages of their lives.
    • In senior year, students will continue programming in Java using a new paradigm: Object Oriented Programming (OOP). Students will learn the characteristics and benefits of using OOP when writing software. Throughout the year, seniors will learn about the following concepts, while using concepts they learned in their junior year: writing classes, modularity, the anatomy of a class, instantiating objects, designing a class structure, inheritance, overloading, overriding, and polymorphism. As time allows, students will also be introduced to creating GUIs in Java using JFrames. By the end of the year, students will be able to list Java Programming as a proficient skill on their resume.
    • This course helps contribute to the initiative of developing a better, more educated cyber workforce. The lessons improve students’ critical thinking and critical reading skills as they pull information from articles and other sources. Students also practice their presentation skills as they participate in debates and group presentations. The modules include a wide variety of topics such as law, ethics, terrorism, communications, and business as they pertain to cyberspace.
      • Cyber Law explores the differences between a criminal offense and a moral wrong, protection of intellectual property, the functions and uses of permanent electronic records, and the role of laws in addressing social challenges.
      • Cyber Ethics examines ethical implications of extensive technology use such as conceptions of friendships, privacy, personality, and the harms inherent in new technologies.
      • Cyber Terrorism analyzes the motivations behind, desired outcomes of, and consequences of acts of terrorism and discusses appropriate counter attacks or counter measures.
      • Cyber Communities investigates the necessity of a networked society, crowdsourcing information, technology used in communication, virtual collaboration, and team dynamics.
      • Cyber Business demonstrates the collection, storage, usage, and protection of data; cybersecurity attacks and threats; and technology to improve information security.

CS – Course Topics and Sequence:

Grade 9 Grade 10 Grade 11 Grade 12
Introduction to Programming / Computer Science AP Computer Science Principles Computer Science III Computer Science IV
Web Design I Web Design II Java Programming I Java Programming II
Problem Solving Computing & Data Analysis Customer Service Cyber Society
Human Interaction