Principles of Computation with Java – OLI

This is an interactive course in Java for first-time programmers. It offers a scaffolding approach to learning, starting with the basics of computing and gradually progressing to fairly sophisticated problem solving such as binary search and insertion sort. All through this learning path, there are many assessment quizzes and programming activities to keep the learners engaged.

The course is divided into six modules. In the first module, the learners will know how to set up the Java programming environment, including an IDE, using Eclipse as an example. The next four modules cover variables, data types, control flow using iterations and decisions, and array handling. The last module focuses on understanding the overall process of program development, starting with design and then coding, compiling, executing, testing, and debugging.

Note: Please use Mozilla Firefox or Google Chrome as your browser for this course, as some of the embedded activities do not display properly in Internet Explorer or Microsoft Edge.

These materials are available as an OLI course.

  • Open Learning Initiative (OLI) courses are designed by learning scientists at Carnegie Mellon University. They use data and research insights to develop, test, and improve OER course materials that effectively support learning.

Why Teach with Open Course Materials?


  • Save time: Start with curated, outcome-aligned content and supplemental instructor resources like quiz banks, assignments, slide decks, etc. 
  • Customize your course: Freedom to tailor course content to fit your learning outcomes and instructional approach.
  • Enjoy awesome support: Faculty-friendly onboarding, training, and support. 


  • Learn by doing: Self-checks, online homework, and other interactive tools strengthen learning.
  • Engage from day one: Avoid falling behind with access to course materials from the first day of class.
  • Retain materials: Download a digital copy of course content to keep forever.
  • Become a better learner: Real-time feedback and nudges guide students on where to focus and how to improve.