Computer Science & Engineering
Placement Requirements
The placement process for new students is different from that for returning students. Please review the placement requirements for the appropriate group at the links below.
All placements are subject to review by the head of the department.
Computer Science & Engineering
Computer Science
Available to all grades
Engineering
Available to grades 9 & 10
Available to grades 11 & 12
Computer Science & Engineering Course Descriptions
Available to: all students Schedule: one semester Special Notes: This course does not count towards the diploma requirement for the Science department. Students taking this course must concurrently be enrolled in a year of traditional science or have successfully completed three years of traditional science. Learning to code can help you develop a valuable skill set, sharpen your critical thinking, and better understand the technology dependent world in which we live. Introduction to Programming is designed for students with no assumed computer science background and requires no prior programming experience. In this introductory course, students develop problem-solving skills through the study of real-world examples, reflecting on various uses of technology in the worlds around them. We explore core topics such as design thinking, computational thinking, and basic programming syntax including variables, loops, conditionals and functions. Throughout the course, students will be introduced to a foundational toolbox in Python and potentially other programming languages. Available To: all qualified students, see placement requirement link above Schedule: one semester Special Notes: This course does not count towards the diploma requirement for the Science department. Students taking this course must simultaneously be enrolled in a year of traditional science or have successfully completed three years of traditional science. Data literacy is increasingly important in our world. This course combines the vital arenas of statistical knowledge and programming skills with the purpose of analyzing and visualizing the past, as well as predicting the future. The course content will address common applications in a variety of domains including science, finance, business, and sports, and will give students the skills and analytical tools necessary to learn from data efficiently and make informed decisions. The curriculum includes descriptive statistics, an overview of Python, Jupyter notebooks, an introduction to Pandas, data visualizations, exploratory data analysis, ethical issues, and predictive analytics. The prerequisite is Introduction to Computer Science, Introduction to Programming, or its equivalent. Available to: all qualified students, see placement requirement link above Schedule: full year Special Notes: This course does not count towards the diploma requirement for the Science department. Students taking this course must concurrently be enrolled in a year of traditional science or have successfully completed three years of traditional science. This course is the next step for students who want to learn a more advanced programming language or that intend to pursue future studies or applications of computer science. AP Computer Science A is an introduction to computer science through programming in Java. The course covers a broad range of topics important to programming and software development, including the design of solutions to problems, the use of data structures to organize large sets of data, the development and implementation of algorithms to process data and discover new information, the analysis of potential solutions, and the ethical and social implications of computing systems. Students cultivate their understanding of coding through analyzing, writing, and testing code as they explore concepts like modularity, variables and control structures. This course emphasizes object-oriented programming and design using the Java programming language, provides opportunities for students to explore new concepts, and helps students further develop their computational thinking and problem-solving skills. Available To: all qualified students, see placement requirement link above Schedule: full year Special Notes: This course does not count towards the diploma requirement for the Science department. Students taking this course must simultaneously be enrolled in a year of traditional science or have successfully completed three years of traditional science. Advanced Programming will focus on the cultivation of programming skills through the development and implementation of data structures and algorithms. It is a class that builds coding skills, but more importantly improves students’ ability to think logically, solve advanced problems (for example how your GPS finds the best route or how a video game “interacts” with the player), communicate, and be creative. The course curriculum includes algorithm analysis, linear structures, queues, recursion, sorting and searching algorithms, trees and tree algorithms, graphs and graph algorithms. The prerequisite is Data Structures & Algorithms or AP Computer Science A, including object-oriented programming and writing and using classes in Java. The course emphasizes object-oriented programming and algorithm design and implementation using the Java programming language, though other languages, such as Processing, will be utilized. Successful completion of this course will prepare students well for future studies of computer science at the university level.Introduction to Programming
Data Science
AP Computer Science A
Advanced Programming
Digital Fabrication
Available to: all grade 9 and 10 students
Schedule: one semester
Special Notes: This course does not count towards the diploma requirement for the Science department. Students taking this course must concurrently be enrolled in a year of traditional science or have successfully completed three years of traditional science.
Digital fabrication involves the use of computer-controlled machines to create physical objects. Through collaborative, hands-on design projects, students in this class will learn how to make 2D and 3D prototypes using CAD (computer-aided design) software in conjunction with digital fabrication machines such as 3D printers, laser cutters and CNC (computer numerical control) routers. Learning in this class will go beyond the acquisition of important digital skills that have practical applications in engineering, art, science, computer science and mathematics. By working creatively through design and fabrication problems, students will further strengthen skills in critical thinking, spatial reasoning, and mathematics. No previous experience with digital fabrication is required to take this course.
Engineering Design
Available to: qualified grade 11 and 12 students, see placement requirements link above
Special Notes: Students taking this course must concurrently be enrolled in a year of traditional science or have successfully completed three years of traditional science.
Through hands-on learning, project work and fun design challenges, students in this class will utilize the spiraling nature of the engineering design process to solve a variety of problems. During this process students will work like engineers, individually and in teams, to design, build, and test prototypes, consider alternative solutions, as well as evaluate and refine designs. Through this collaborative, project-based work, students will learn to think like an engineer, become familiar with a variety of engineering disciplines, learn important engineering concepts, and consider the relationship of engineering to social, global and contemporary issues. Forces on structures (the design of stationary objects) will be the focus of projects during the fall term, and forces on mechanisms (the design of objects in motion) will be the focus of projects during the spring term. To encourage the use of a wide range of materials and broaden the scope of engineering design solutions, students will develop skills using a variety of hand, power, and technological tools. Early on in the course, students will have the opportunity to learn how to use Fusion 360 (a computer aided design software package by Autodesk) in conjunction with a 3D printer and a laser cutter to design and create prototypes or components of their designs.
Mechatronics Engineering
Available to: qualified grade 11 and 12 students, see placement requirements link above
Special Notes: Students taking this course must concurrently be enrolled in a year of traditional science or have successfully completed three years of traditional science.
Mechatronics is the union of electrical, mechanical, and computer engineering, and includes robotics. This course uses design and discovery surrounding mechatronics to expose students to various engineering disciplines and prepare them for introductory college-level engineering coursework, such as physical computing/coding with applied mathematics, control theory, and 3D modeling/printing. Students will engage in intriguing and challenging hands-on projects involving these topics to further develop important problem-solving and critical-thinking skills that are necessary to be an effective engineer. Projects include using an 8-LED display for sensor input and a game, designing an RGB lamp, programming an autonomous robot, and creating a wireless remote control car.
While no prior programming experience is required, it is helpful. Honors level projects will be available to challenge the more advanced student.