CMSC 22: Fundamentals of Object-Oriented Programming
Course Description
This course includes the fundamentals of object-oriented programming (objects, classes,
abstraction, encapsulation, inheritance, and polymorphism), particularly using the Java
programming language. The course starts with introductory concepts and progresses to
touch on advanced topics, as well as the application of acquired skills in object-oriented
programming into the real world.
Course Learning Outcomes
After completion of the course, the student should be able to:
- Understand and apply object-oriented programming (OOP) principles and concepts.
- Develop and write programs using Java, while utilizing tools of an IDE (integrated development
environment), to solve real-world problems.
- Develop and write efficient, readable, well-structured, and properly documented code.
- Test and debug your own code in order to catch bugs and errors (exception-handling).
Course Outline
UNIT 1. Introduction
- What, Who, When, Where, How, Why?
- Getting Started
- IDE (Integrated Development Environment)
- What real-life problem I want to solve
UNIT 2. Noob: Java Basics
- Java Building Blocks
- Operators and Statements
- Core Java APIs
- Methods and Encapsulation
- Class Design
- Exceptions
UNIT 3. 3. Pro: Java In Real-World
- Design Patterns
- Best Practices
- TDD (Test-Driven Development)
UNIT 4. Advanced Topics
- Annotations
- Generics
- Lamda And Nested Classes
UNIT 5. The End
- In Summary
- Where To Go From Here?