“Introduction to Object-Oriented Programming With Java” is a series of courses built from Georgia Tech’s online for-credit version of CS1331: Introduction to Object-Oriented Programming (OOP).
This course begins with an introduction to the Java programming language. It provides a brief history of Java and presents the foundations of what set it apart from the programming languages (procedural and object-oriented) that existed at the time of its creation. Students will then learn the basics of Java syntax and explore writing interactive programs that incorporate concepts and constructs like: primitive data types, classes, arithmetic operations, conditionals, loops, arrays, console input and output, methods, and reuse.
Following this introduction, students will begin hands-on learning about object-oriented programming. They'll write their own custom classes that represent real-world concepts and objects and learn how to organize different (built-in and custom) classes into a programming solution.
Students will then extend their understanding of reusability with an introduction to inheritance and explore topics like parent-child class (or subclass-super-class) relationships, abstract classes, and UML.
Next, students will learn about interfaces and polymorphism. Intertwined in that discussion is a mini-lesson on the kinds of algorithms that are often used to process data in programs and how one might use them in an OOP context. Students will also learn the basics of evaluating algorithms based on the concept of runtime complexity. Such a skill can ultimately make them better programmers.
Along those lines, students will improve their approach to handling runtime errors by learning about exceptions. They will apply the construct in multiple contexts, including file input and output.
The course series concludes by presenting the fundamentals of a few advanced topics, namely: data structures (primarily lists), recursion, graphical user interfaces (GUIs) with JavaFX, anonymous inner classes, and lambda expressions.