University of Maryland Global Campus

CMSC 215: Object Oriented Programming

A study guide to UMGC's CMSC 215, the applied Java course on classes, records, inheritance, interfaces, generics and object-oriented design.

Updated October 2026 · 5 min read

CMSC 215 at the University of Maryland Global Campus is an applied study of object-oriented programming in Java, taken after the first Java course.

UMGC's current title is Object Oriented Programming. The goal is to develop modular, reusable and scalable software using classes, records, inheritance, interfaces and generic types.

Key topics include object-oriented design principles, the Unified Modeling Language (UML), polymorphism, type-safe generic programming, exception handling and secure coding practices.

The prerequisite is CMSC 115 (or CMIS 141). Students who could write a working program in one long main method now have to design several cooperating classes. Deciding what each class is responsible for is the core difficulty, and it is usually graded alongside the code.

Course at a Glance

ItemDetails
UniversityUniversity of Maryland Global Campus (UMGC)
Course codeCMSC 215 (3 credits)
LevelUndergraduate, intermediate
PrerequisiteCMSC 115 (or CMIS 141)
LanguageJava
Credit noteCredit for only one of CMSC 215 or CMIS 242
Typical workHands-on exercises and projects with UML designs and test evidence

What CMSC 215 Covers

TopicWhat it means
Classes and recordsModelling objects with state and behaviour; records for simple immutable data
InheritanceBuilding specialised classes from a general one
InterfacesContracts that unrelated classes can share
PolymorphismOne reference type, many concrete behaviours
GenericsType-safe classes and methods that work with many types
UMLClass diagrams that show design before code
ExceptionsHandling errors without crashing or hiding problems

Key Concepts Explained

Polymorphism Through Inheritance

Example: An abstract class Employee declares double pay(). SalariedEmployee returns a monthly salary; HourlyEmployee returns hours times rate. A payroll loop over an Employee[] array calls pay() on each, and Java runs the right version for each object, so adding a new employee type needs no change to the loop.

Interfaces Versus Inheritance

Use inheritance for a true "is a" relationship. Use an interface when unrelated classes share a capability, such as Comparable for anything that can be sorted.

Generics

Generics let the compiler check types for you. A Box<T> class can hold any type, but a Box<String> will refuse an Integer at compile time, preventing a class of run-time errors.

Example: A generic method static <T extends Comparable<T>> T max(List<T> items) finds the largest element of any list whose elements can be compared: numbers, strings or your own classes that implement Comparable.

From UML to Code

Many CMSC 215 projects ask for a UML class diagram as well as code. Draw it first: list each class, its fields and methods, and the relationships (inheritance arrows, interface realisation, associations).

A good diagram exposes design problems early. If one class has twenty methods and the others have two, responsibilities are probably unbalanced. Keep the diagram and code in step; a marker will notice if they disagree.

Typical Assignments and How to Approach Them

Assignment typeWhat it testsHow to approach it
Class hierarchy projectInheritance and polymorphismDesign the base class around shared behaviour
UML diagramDesign thinkingMatch every class and relationship to your code
Generic container or methodType-safe programmingTest with at least two different types
Test plan and documentationShowing correctnessCover normal, boundary and error cases, including exceptions

Records and Exceptions

Java records offer a compact way to model simple data carriers. A declaration such as record Point(int x, int y) {} automatically provides a constructor, accessors, equals, hashCode and toString, and its fields cannot be changed after creation.

Exceptions deserve the same care as design. Throw specific exceptions with clear messages when input is invalid, catch them where you can do something useful, and never use an empty catch block. UMGC lists secure coding practices among the topics, and validating input before using it is one of the simplest.

Where Students Get Stuck

Study Tips for CMSC 215

How We Help with CMSC 215

Send the project instructions, your UML, your code and the rubric. A Java tutor can explain OOP concepts, review your class design, help you debug, or provide a commented model of a similar problem to study.

GradeEssays is independent of the University of Maryland Global Campus. Our help is tutoring and model material within UMGC's academic integrity policy; code you submit must be your own and follow your instructor's rules, including on AI tools.

Get Your CMSC 215 Design and Code Working Together

Share the instructions and your attempt. A Java tutor explains OOP design choices and helps you debug.

Start My OOP Help

Free revisions for 14 days · Full refund if late · Written from scratch for your order

Frequently Asked Questions

What is CMSC 215 called now?

UMGC lists CMSC 215 as Object Oriented Programming, an applied study of object-oriented programming in Java.

What is the prerequisite for CMSC 215?

UMGC lists CMSC 115 (or CMIS 141).

Can I take both CMSC 215 and CMIS 242?

No. UMGC states that students may receive credit for only one of CMSC 215 or CMIS 242.

Does CMSC 215 use UML?

Yes. UMGC lists the Unified Modeling Language among the key topics, alongside design principles.

What comes after CMSC 215?

CMSC 215 (or CMIS 242) is the prerequisite for CMSC 315 Data Structures and Analysis and CMSC 325 Game Design and Development.

Can you write my CMSC 215 project?

We explain, review and help you debug, and can provide model examples of similar problems, but the code you submit must be your own.