Principles of Coding
Principles of Coding is designed to introduce middle school students to the power of coding. Computer literacy has become just as important as reading and math literacy in the 21st Century. No matter what career students select, learning even the basics of coding and computers will benefit them. Additionally, every year there is a standing demand for 120,000 people who are trained in computer science. Jobs in this industry are growing at more than two times the national average of any other field.
Throughout this course, students are not only introduced to the basics of coding but delve deeply into the thought processes behind designing technology. Right from the start, students learn the Engineering Design Process and follow this process to create games, simulations, and even a mobile application. Students learn the connection between the core subjects of English Language Arts and Math to Computer Science. Students also examine the impact of technology from a global perspective. The content was written to be highly-engaging for the middle-school audience. Multimedia and interactive elements are built into every lesson to ensure a high-level of student engagement throughout.
Curriculum designed for this course was guided by the standards from the Computer Science Teachers Association. These nationally recognized standards are designed to "provide the foundation for a complete computer science curriculum and its implementation at the K-12 level." These standards integrate computer science learning with core subjects.
More specifically student will learn the following.
- Unit 1 - Computational Thinking. Students are introduced to the course by learning that problems are all around us and that programming can offer many solutions to these problems. Students learn the Engineering Design Process and Creative Problem-Solving Process. Students are also introduced to Scratch. This visual coding program will be the basis for the coding work in the first part of the course. Students apply their understanding of algorithms and programming language to build an animated music video in Scratch. Students also begin to develop a game using Scratch by applying the computational thinking and practices of experimenting and iterating, testing, debugging, reusing and remixing, abstracting, and modularizing.
- Unit 2 - Computer Practice and Programming. Students delve deeper into computers as machines. Students will differentiate computers with other kinds of machine systems. Students will also deepen their understanding of code and explain how it aids in analog-to-digital transformations. Students apply this understanding by designing a computing system. Students also analyze the positive and negative impacts of computing on human culture. Learners continue to build in Scratch, learning how to create interactive art and graphic effects.
- Unit 3 - Data and Information. Students are introduced to computer modeling and simulations. They will begin to identify the kinds of problems that could be solved using modeling and simulations. Simulation games that model physics phenomena are examined to convey the concept that real-world phenomena can be simulated in a computer game or app. Learners will then explore issues related to the concepts of equity, access, and power of technology and the Internet in a global society. A discussion on cybersecurity and digital citizenship follow. Students will apply their learning by creating a game or interactive story by using variable and models within Scratch.
- Unit 4 - Connecting Math and Computer Science. Math is the "fuel" that runs computers. In this unit, students will explore this idea more deeply. Students build on their understanding of modeling by looking more closely at the types and elements of models. Students are introduced to the important topic of Cyber Ethics, as well as robotics and artificial intelligence. Students will apply their learning by choosing a real-world problem and developing a simulation that attempts to solve the problem using Scratch. Students will also discover the basic building block of programming - logic. Mathematical topics of Boolean algebra, binary numbers, logic, sets, and functions are also taught. For the final project in this unit, students will use combinational logic to illustrate how the design of complex binary logic functions make up the components inside a digital device, such as the buzzer on a car, a blender, or a washing machine.
- Unit 5 - Mobile Technology and Society. For the final instructional unit of the course, students will be introduced to mobile technology such as mobile computing tablets and smartphones. Learners will also explore the impact of technology on education, the workplace, and society. Students apply their skills by creating a mobile app using App Inventor.