Java Programming Using Computational Thinking and Engineering Principles is a one-semester course is an introduction to Java Programming emphasizing its foundation in computational thinking, an interdisciplinary method of scientific inquiry. Topics will be taught emphasizing STEM domains and will include, but are not limited to: data types, variables, and arithmetic operations, strings, arrays, streams and files, graphics, and methods and constructions. Students will also gain experience with object-oriented programming and project-based learning utilizing ideas of computer graphics and game programming and its application in building mathematical models that are of interest to scientists and engineers. D77 Java Programming is a prerequisite to D78 AP Computer Science Java and D86 C++ Programming.