Computer Programming 11 & 12

Course code: MCMPR11---/ MCMPR12---

 Computer Programming 11

Programming is a fun and rewarding set of skills that can begin very simply and grow to be very advanced! While many people think about programming as creating video games, the needs and demands of programmers are broader and are growing all the time! In fact, for any students considering a post-secondary program in science, engineering, mathematics, technology or video game design, computer programming is a useful core skill. 

The course begins with an introduction to basic linear programming structures, techniques, and conventions, before moving into more complex data structures and program designs. Programming assignments focus on the development of simple projects, but the skills learned are transferable to any programming problem. Students will learn how to properly document their code and are expected to develop good programming habits. 

The course is based around the C# coding language, but also draws inspiration and approaches from block-based coding systems, pseudocode, and general computational thinking. Students will be tasked to problem solve solutions to challenges, find and solve errors, and take a logical approach to solving complex problems. 

By the end of the course, students will have all the skills necessary to create the underlying code for their own games, explore developing 2D or 3D games using the Unity engine, transfer their skills to a different programming language more closely tied to individual interests, or expand their knowledge into more complex C# programming techniques. 

Computer Programming 12

Usually run alongside the Introduction to Programming course, this course provides students with an opportunity to expand on their personal coding skills and programming projects by designing a course-long personalized project. Students will be expected to create a timeline for their project development, highlight the focus of their learning and design goals, and proceed through the planning, prototyping, creating, and testing phases of the development process. 

Students will also be expected to work with other students, collaborate on design or testing elements as required, document their planning and implementation, and explain their learning throughout the course. Previous coding experience is recommended.