Code for fun is a nonprofit organization, located in the San Francisco Bay Area, committed to exposing all students to computer science at an early age. We offer after school programs, camps, in school instruction and teachers training, throughout the San Francisco Bay Area. As a leader in computer science education for young learners, our programs are designed for all students, bridging gender and racial gaps, and encouraging them to consider academic and career paths in the engineering field.
Code for fun envisions a future where all students grades K12, develop creative skills through access to innovative computer science education.
Code for fun believes that computer science and the products it enables are essential to the world we live in. To be prepared to fully embrace the 21st century and be a successful agent of its economy, children must have a clear understanding of the different aspects of computer science.
Code for fun follows CSTA standards (Computer Science Teaching Association) to build curricula designed to equip our students with necessary skills and knowledge to become well educated digital citizens.
Our first step is to expose students to computer science and teach them critical thinking skills that will be used in field beyond computer science. Our second step is a deeper exploration of facets of computer science, and is targeted to students with a special interest in computer science.
Why is it essential to educate all children ?
- Computer Science is intellectually important. It's easy to foresee a future where computers will master almost every task and decision we encounter. Everybody should understand how the machines operate when performing those tasks so we can make sense of it.
- Computer Science leads to multiple career paths. Many of tomorrow's jobs have not been invented yet. Professionals in every discipline—from artists to health care professionals, to small business owners, to retail store staff— will need to understand computing to be productive and competitive in their fields.
- Computer Science teaches problem solving. Computer science is a tool to solve problems. The first step to solve a problem is to understand it clearly. Once a solution is implemented, it must be tested. Computer scientists draw on their training and experience to confront problems and to create the best possible solutions.
- Computer Science supports and links to other Sciences. Today programs and simulations are created to discover new medical treatment, understand the complexity of the brain, create fast response plans in case of a forrest fire, build bridges that sustain seismic activities, design cars that would drive us, understand insect activity patterns etc...
- Computer Science can engage all students. Computer science applies to virtually every aspect of life, so that it can be easily tied to myriad student interests. From music, to history, from mathematics to literature, we can engage students to Computer Science by having them apply the projects to what they like the most.
Why should we start in elementary?
Introducing the concepts taught in Computer Science in College is too late. All of today's students will be citizen of a world heavily influenced by computing, and many will work in fields that directly involve computing. They must begin to work on algorithmic problem solving, computational thinking and tools in K-12. Children are naturally curious and innovative and these two characteristics are the core drivers of Computer Science. Young children are amazed by the magical power of computing and eager learners and become prepared for more challenging concepts and assignments later.
Is computer Science and Coding the same?
Computer programing (or coding) is only one of the 5 strands of Computer Science. Code for fun follows the definition of the field of Computer Science as documented by CSTA. We design our programs so that they address those 5 strands:
Computational Thinking. “CT is an approach to solving problems in a way that can be implemented with a computer. Students be- come not merely tool users but tool builders. They use a set of concepts, such as abstraction, recursion, and iteration, to process and analyze data, and to create real and virtual artifacts. CT is a problem-solving methodology that can be automated and transferred and applied across subjects. The power of computational thinking is that it applies to every other type of reasoning. It enables all kinds of things to get done: quantum physics, advanced biology, human–computer systems, development of useful computational tools.” -- Barr and Stephenson (2011)
Collaboration. Computer Scientists work in collaboration to solve complex problems. To teach collaboration skills, we ask students to program in pairs (peer programming). We also emphasize teamwork, constructive criticism, project planning and management, and team communication, all of which are considered necessary 21st Century skills.
Computing Practice and Programming. Students learn how to chose the correct tool to better create their solution (databases, file storage, application program interface (API)). They learn programming languages and create applications.
Computers and Communication Devices. It is necessary to understand computer devices and network. We, for example, teach the different components of a computer and how the internet works.
Community, Global, and Ethical impacts. As soon as students begin using the Internet, they should learn the norms for its ethical use. Principles of personal privacy, network security, software licenses, and copyrights must be taught at an appropriate level in order to prepare students to become responsible citizens in the modern world.