Code12 The Java Programming System Designed for Education

Our Teaching Philosophy

The overall goals of Code12 are to:

Learning Fundamentals: Sometimes Less is More

Code12's goal is to allow students to concentrate on learning, practicing, and problem-solving with the fundamental building blocks of computer programming, while removing the typical barriers that a traditional Java development environment causes (including confusing error messages and complex object-oriented structure).

Code12 is named after the 12 basic programming concepts that we feel are vital for introductory students to learn and practice:

  1. Function Calls
  2. Comments
  3. Variables
  4. Expressions
  5. Function Return Values
  6. If-else
  7. Object Data Fields
  8. Object Method Calls
  9. Function Definitions
  10. Function Parameters
  11. Loops
  12. Arrays

Code12 is designed to teach these 12 programming concepts, ideally in this order, using the Java language in a way that transitions meaningfully to full Java and and an understanding of both procedural and object-oriented programming over time. The Code12 documentation also includes examples and short lessons for these concepts.

Intentionally omitted is class definitions and object-oriented design, as we strongly feel that this should be left until after students have a grounding in the concepts above and as much practice as possible with general programming and problem solving. Nevertheless, you can't get far in Java without some object-oriented programming, so Code12 is designed to provide that transition without needing to switch programming languages completely.

New programmers cannot learn everything at once, so Code12 allows students to progress through the basics without being confused or distracted by other complexities that they haven't learned yet or don't yet understand. To do this, Code12: