This hands-on, one-semester course is an introductory computer science course that empowers students to create authentic artifacts and engage with computer science as a medium for creativity, communication, problem solving and fun. The Computer Science Discoveries curriculum from code.org will be used as the primary resource and tool to guide students in the classroom. The course takes a wide lens on computer science by covering topics such as programming, physical computing, Web development, design and data. Students will be inspired to build their own Websites, apps, games and physical computing devices.
Problem Solving and Computing is a highly interactive and collaborative introduction to the field of computer science, as framed within the broader pursuit of solving problems. Students practice using a problem solving process to address a series of puzzles, challenges, and real-world scenarios. Next, students learn how computers input, output, store, and process information to help humans solve problems. The unit concludes with a project in which students design an application that helps solve a problem of their choosing.
---
• Big Questions
What strategies and processes can I use to become a more effective problem solver?
How do computers help people to solve problems?
How do people and computers approach problems differently?
What does a computer need from people in order to solve problems effectively?
---
• Unit Goals
Identify the defined characteristics of a computer and how it is used to solve information problems.
Use a structured problem solving process to address problems and design solutions tha tuse computing technology
Create a collaborative classroom environment where students view computer science as relevant, fun, and empowering.
In Web Development, students are empowered to create and share content on their own web pages. They begin by thinking about the role of the web and how it can be used as a medium for creative expression. As students develop their pages and begin to see themselves as programmers, they are encouraged to think critically about the impact of sharing information online and how to be more critical consumers of content. They are also introduced to problem solving as it relates to programming while they learn valuable skills such as debugging, using resources, and teamwork. At the conclusion of the unit, students will have created a personal website they can publish and share.
---
• Big Questions
Why do people create websites?
How can text communicate content and structure on a web page?
How do I safely and appropriately make use of the content published on the internet?
What strategies can I use when coding to find and fix issues?
How can websites be used to address problems in the world?
What strategies can teams use to work better together?
How do I know what information can be trusted online?
---
• Unit Goals
Create digital artifacts that use multiple computer languages to control the structure and style of their content.
Create a website as a form of personal expression.
Use different programming languages to solve different problems.
Examine their role and responsibilities as both creators and consumers of digital media.
---
• Major Projects
Lesson 13: Project - Personal Web Page
Lesson 20: Project - Website for a Purpose
---
• Tools Used
Web Lab- A browser-based tool for creating and publishing HTML and CSS Web sites.
In the Interactive Animations and Games unit, students build on their coding experience as they create programmatic images, animations, interactive art, and games. Starting off with simple, primitive shapes and building up to more sophisticated sprite-based games, students become familiar with the programming concepts and the design process computer scientists use daily. They then learn how these simpler constructs can be combined to create more complex programs. In the final project, students develop a personalized, interactive program.
---
• Big Questions
What is a computer program?
What are the core features of most programming languages?
How does programming enable creativity and individual expression?
What practices and strategies will help me as I write programs?
How do software developers manage complexity and scale?
How can programs be organized so that common problems only need to be solved once?
How can I build on previous solutions to create even more complex behavior?
---
• Unit Goals
Create an interactive animation or game that includes basic programming concepts such as control structures, variables, user input, and randomness.
Work with others to break down programming projects using sprites and functions.
Give and respond constructively to peer feedback, and work with their teammates to complete a project.
View yourself as a computer programmer, and see programming as a fun and creative form of expression.
---
• Major Projects
Lesson 17: Project - Interactive Card
Lesson 27: Project - Design a Game
---
• Tools Used
Game Lab- A browser-based JavaScript programming environment designed to create sprite-based drawings, animations and games. Enables students to switch between programming in blocks or text.
The Design Process unit transitions students from thinking about computer science as a tool to solve their own problems towards considering the broader social impacts of computing. Through a series of design challenges, students are asked to consider and understand the needs of others while developing a solution to a problem. The second half of the unit consists of an iterative team project, during which students have the opportunity to identify a need that they care about, prototype solutions both on paper and in App Lab, and test their solutions with real users to get feedback and drive further iteration.
---
• Big Questions
How do computer scientists identify the needs of their users?
How can we ensure that a user's needs are met by our designs?
What processes will best allow us to efficiently create, test, and iterate upon our design?
How do teams effectively work together to develop software?
What roles beyond programming are necessary to design and develop software?
How do designer incorporate feedback into multiple iterations of a product?
---
• Unit Goals
See the design process as a form of problem solving that prioritizes the needs of a user.
Identify user needs and assess how well different designs address them.
Develop paper and digital prototypes, gather and respond to feedback about a prototype, and consider ways different user interfaces do or do not affect the usability of their apps.
Understand other roles in software development, such as product management, marketing, design, and testing, and how to use what they have learned about computer science as a tool for social impact.
---
• Major Projects
Lesson 8: Project - Paper Prototype
Lesson 21: Project - App Presentation
---
• Tools Used
App Lab- A browser-based JavaScript programming environment for creating interactive apps. Enables students to switch between programming in blocks or text.
The Data and Society unit is about the importance of using data to solve problems and it highlights how computers can help in this process. The first chapter explores different systems used to represent information in a computer and the challenges and tradeoffs posed by using them. In the second chapter, students learn how collections of data are used to solve problems, and how computers help to automate the steps of this process. In the final project, students gather their own data and use it to develop an automated solution to a problem.
---
• Big Questions
Why is representation important in problem solving?
What features does a representation system need to be useful?
What is necessary to create usable binary representation systems?
How can we combine systems together to get more complex information?
How does data help us to solve problems?
How do computers and humans use data differently?
What parts of the data problem solving process can be automated?
What kinds of real world problems do computers solve by using data?
---
• Unit Goals
Understand the role of data and data representation in solving informaiton problems.
Explain the necessary components of any data representation scheme, as well as the particulars of binary and the common ways that various types of simple and complex data are represented in binary code.
Design and implement a data-based solution to a given problem and determine how the different aspects of the problem solving process could be auotmated.
In the Physical Computing unit, students explore the role of physical devices in computing. Using App Lab and Adafruit’s Circuit Playground, students develop programs that utilize the same hardware inputs and outputs that you see in the smart devices, looking at how a simple rough prototype can lead to a finished product. Then, students explore how physical devices can be used to react to the world around them using a “maker” mindset to create prototypes with everyday materials.
---
• Big Questions
What inputs and outputs are available on a physical device?
What inputs and outputs are available on an app?
How can we create apps that use a physical device to control a digital app?
How can a physical device use sensors to react to a physical environment?
How can simple hardware be used to develop innovative new products?
---
• Unit Goals
Design and build a physical computing device that integrates physical inputs and outputs with digital apps.
Create app prototypes that use a physical device to solve real-world problems.
Use physical computing to solve problems in fun and innovative ways.
---
• Major Projects
Lesson 10: Project - Human / Device Interaction
Lesson 16: Project - Prototype an Innovation
---
• Tools Used
Maker App - A downloadable program that connects App Lab to the Circuit Playground, allowing students to easily program the Circuit Playground directly from App Lab.
In the AI and Machine Learning unit, students learn how computers can find patterns in data to make decisions. Students use the Problem Solving Process for machine learning to define a problem, prepare their data, train a model, then test and evaluate their model for accuracy and potential bias. Students explore a variety of scenarios and datasets that lend themselves to machine learning. They also explore some of the modern problems with machine learning, especially around bias and impact.
---
• Big Questions
How does machine learning find patterns in data to make decisions?
How can we avoid bias when training a machine learning model?
How can machine learning be used to solve problems in our community?
---
• Unit Goals
Create a machine learning model in AI Lab to solve a problem, and use App Lab to create an app that uses their model.
Understand how machine learning models make decisions from data.
Create machine learning models from their own data to solve problems in their community.
---
• Major Projects
Lesson 15: Project - Make a Machine Learning App
Lesson 16: Project - Design an AI App
---
• Tools Used
AI Lab - A browser-based tool for creating machine learning models from tabular data.
App Lab - A browser-based JavaScript programming environment for creating interactive apps. Enables students to swtich between programming in blocks or text.