This curriculum introduces young people to five fundamental principles of computer programming, providing a foundation for exploring and creating. Scratch is a project of the Lifelong Kindergarten Group at the MIT Media Lab. Each youth in a group should have his/her own guidebook.
Computer Science visual–based programming
Discover the basic elements of programming within the Scratch, Google CS First, and other VPL environments. Learn fundamental concepts about sequence, iteration, conditionals, variables, modularization, and interfacing with external hardware.
Computer Science text-based programming
Discover the basic elements of programming within text based programming languages such as Java, Python, and C. In this project, build on fundamental concepts such as, sequence, iteration, conditionals, variables, modularization, machine coding, SQL, HTML, and other text-based programming languages.
Resources to help you learn Visual-Based Programming
- Discovering Computer Science & Programming through Scratch: Suggested for Beginners: Introduction to the basic elements of programming within the Scratch environment. youth interact with a series of tutorials and challenges within the Scratch environment. Young people can work on the activities individually, with partners, or in a guided instructional setting. Grades 6-8.
Discovering Computer Science & Programming through Scratch Facilitator Guide:In Discovering Computer Science & Programming through Scratch, youth interact with a series of tutorials and challenges within the Scratch environment. Young people can work on the activities individually, with partners, or in a guided instructional setting. This facilitator guide further explains the activities introduced in the youth guide. It suggests many "unplugged" activities. It also includes discussion questions, previews of skills and blocks introduced, and hints or suggestions to help youth better understand each activity and concept. Grades 6-8.
Resources to help you learn Text-Based Programming
- Khan Academy (https://www.khanacademy.org/computing/computer-programming) is a Non For Profit Organization with a mission of providing free, world-class education to anyone, anywhere. They have compiled one of the largest Compurter Science online curriculums on the market. This is a complete curriculum full of interactive videos and examples. Using their online platform, follow the Computer Science modules which will guide you through the following:
- Intro to HTML/CSS: Making webpages: Learn how to use HTML and CSS to make webpages. HTML is the markup language that you surround content with, to tell browsers about headings, lists, tables, etc. CSS is the stylesheet language that you style the page with, to tell browsers to change the color, font, layout, and more.
- Intro to SQL: Querying and managing data: Learn how to use SQL to store, query, and manipulate data. SQL is a special-purpose programming language designed for managing data in a relational database, and is used by a huge number of apps and organizations.
- Advanced JS: Games & Visualizations: Once you've taken Intro to JS, go here to learn techniques to help you make multi-scene programs, 3d graphics, button menus, and scored games.
- Advanced JS: Natural Simulations: Once you've taken Intro to JS, you can go through this course to learn how to combine JS, ProcessingJS, and mathematical concepts to simulate nature in your programs. This course is a derivative of "The Nature of Code" book by Daniel Shiffman (natureofcode.com), used under CC BY-NC.
- HTML/JS: Making webpages interactive with jQuery: Learn how to use jQuery, the world's most popular JS browser library, to add interactivity to your webpages.
- Meet the professional: What can you do with computer science and programming skills once you've learned them? We've invited people from all around the world and the industry to introduce themselves to you. Find out how diverse our field can be!
- Code.org® is a non-profit dedicated to expanding access to computer science and increasing participation by women and underrepresented minorities. Their vision is that every student in every school should have the opportunity to learn computer science, just like biology, chemistry or algebra. Their website contains free curriculum and resources for activities ranging from 1 hour and up. Just select the age range, and get started! A free account is necessarry to access curriculum and save progress. CLICK HERE.
How to Think like a Computer Scientist: Interactive Edition
- This is a good resource for those that want to dig deeper into the world of Computer Science. The goal of this interractive book is to teach you to think like a computer scientist. This way of thinking combines some of the best features of mathematics, engineering, and natural science. Like mathematicians, computer scientists use formal languages to denote ideas (specifically computations). Like engineers, they design things, assembling components into systems and evaluating tradeoffs among alternatives. Like scientists, they observe the behavior of complex systems, form hypotheses, and test predictions. CLICK HERE
State Fair & Local Exhibit Rules
Each county may submit 3 entries total from 50159, 50160, 50161, 50162; and 1 entry from 50164. Exhibitors may bring computer equipment for demonstration purposes. Computers will not be furnished. Internet connections are not available for use by exhibitors. Any member found to be using computer software in a manner that infringes on copyright laws will be disqualified.
Beginning Visual Programming: (not eligible for state fair)
Open to youth in Computer Science Visual Based Programming. Exhibit a simple program using Scratch (or other simple graphic programming language). The program should include 8 different commands including looping and getting input from the keyboard and mouse. All exhibits must include something visual, such as a poster or printed copy of a digital presentation, which will remain on display during the exhibition. Electronic equipment will only be used during your personal judging time and will not remain on display during the entire exhibit period.
Intermediate Visual Programming: (SF 50159)
Open to youth in Computer Science Visual Based Programming. Exhibit a program using Scratch (or other simple graphic programming) that you have downloaded from the internet and modified. Compare the two programs and demonstrate the changes you made to the original program; OR create an animated storybook using Scratch (or other simple graphical programming language). All exhibits must include something visual, such as a poster or printed copy of a digital presentation, which will remain on display during the exhibition. Electronic equipment will only be used during your personal judging time and will not remain on display during the entire exhibit period.
Advanced Visual Programming: (SF 50160)
Open to youth in Computer Science Visual Based Programming. Exhibit a video game you have created in Scratch (or other simple graphic programming). All exhibits must include something visual, such as a poster or printed copy of a digital presentation, which will remain on display during the exhibition. Electronic equipment will only be used during your personal judging time and will not remain on display during the entire exhibit period.
Website Design: (SF 50161)
Open to youth in Computer Science Visual or Text Based Programming. Exhibit an original website that you have designed. Internet access will not be provided, so exhibitors must supply their own internet hot spot or the website must be hosted on the exhibitor’s computer). All exhibits must include something visual, such as a poster or printed copy of a digital presentation, which will remain on display during the exhibition. Electronic equipment will only be used during your personal judging time and will not remain on display during the entire exhibit period.
Computer Open Source / Innovation CS (SF 50162)
Open to youth enrolled in Computer Science Text-Based Programming or robotics project. Demonstrate the skills and knowledge you have gained through the Computer project. The exhibit may include, but isn’t limited to, original works, objects, demonstrations, digital presentations, programs, websites, games, apps, performances, or posters which you have made. Choose whatever method best shows what you’ve learned. Your exhibit should not fit in the other exhibit options for this project. You must furnish any equipment you need for your exhibit. Internet service will not be provided for the exhibit. Exhibits in this class may also demonstrate successful application of open source (publicly available) computing software and/or hardware, such as Raspberry Pi and Linux, to accomplish a task. All exhibits must include something visual, such as a poster or printed copy of a digital presentation or programing flowchart, which will remain on display during the exhibition. Exhibits in this area will be judged on the computer science programming. Youth enrolled in a robotics project should choose this class if you want the exhibit to be judged on the programming of the robot. Electronic equipment will only be used during your personal judging time and will not remain on display during the entire exhibit period.
Computer Science Ready4Life Challenge: (SF 50164)
Open to 11- to 18-year-olds enrolled in any Computer project. Exhibits in this category must include the following: a) a physical representation of the career or business product such as a model, prototype or display/portfolio that includes images of accomplished work; b) verbal or written explanations that demonstrate knowledge of the related career or business fields, potential careers, and the appropriate requirements for achievement in those fields. The judging criteria for this class values thoroughness of career and/or business exploration and pursuit above the workmanship of the physical specimen on display.
Computer Science Maker (SF 50400)
Counties may submit 3 entries TOTAL combined from all Maker exhibit divisions.
Exhibits in this category are designed to be multi-disciplinary in nature, innovative, and must not fit into any other exhibit category. To qualify for this category, your project MUST abide by the following guidelines:
- Exhibits must be an object or device that has an intended purpose and uses technology in either a mechanical way, digital (computer) way, or combination of the two.
- The device must be something that can be used in everyday life by multiple people (a target audience), and MUST be manufactured/built by the exhibitor (If not fully manufactured by the exhibitor, the device MUST be modified structurally or be reprogramed to perform a different function other than what it was designed to do
- Exhibit MUST be able to interact with the outside world. (e.g. an on off switch, input sensors, feedback, etc.)
- Exhibits MUST include a detailed build log with instructions on how to make or build the exhibit, AND contain either a 3D rendering or detailed and labeled sketches of the device/product.
- All parts and software used in the design/build MUST be listed in a detailed Bill of Materials including cost per item and total cost. Total time spent on the build must be documented in your build log.
In addition, exhibitors are HIGHLY encouraged to use tools such as 3-D printers, laser cutters, routers and/or other hand/power tools to help in the manufacturing process (NOTE: Simply 3-D printing or laser cutting an object without the other specifications does not qualify as a Maker Project). It is also HIGHLY encouraged that exhibits use Open Source Software and/or Hardware in the build.