University of Maryland Global Campus

CMSC 115: Fundamentals of Programming and Software Development

A study guide to UMGC's CMSC 115, the applied Java course on writing, testing, debugging and documenting programs with professional tools.

Updated October 2026 · 5 min read

CMSC 115 at the University of Maryland Global Campus is an applied study of foundational Java programming and software development.

UMGC's current title is Fundamentals of Programming and Software Development (the course was formerly CMIS 141). Students use professional tools to write, test, debug and document programs using variables, control flow, methods, arrays and core libraries.

Algorithmic thinking, basic secure coding, version control and AI-assisted coding are built into the workflow.

The prerequisite is CMSC 105 (or CMIS 102). Moving from Python to Java surprises many students: Java is stricter about types and structure, and the course expects professional habits such as documentation and version control from the start.

Course at a Glance

ItemDetails
UniversityUniversity of Maryland Global Campus (UMGC)
Course codeCMSC 115 (3 credits), formerly CMIS 141
LevelUndergraduate, introductory
PrerequisiteCMSC 105 (or CMIS 102)
LanguageJava
Credit noteCredit for only one of CMIS 141, CMIS 141A or CMSC 115
Typical workJava programs with test cases, documentation and version history

What CMSC 115 Covers

TopicIn practice
Variables and typesDeclaring typed variables such as int, double, String
Control flowif, switch and loops
MethodsParameters, return values and breaking programs into parts
ArraysFixed-size collections and looping through them
Core librariesClasses such as Scanner, Math and String methods
Professional practiceTesting, debugging, documentation, version control, secure coding

Key Concepts Explained

Static Typing

In Java every variable has a declared type, checked before the program runs. Many errors that appear at run time in Python are caught at compile time in Java.

Example: Writing int total = 7.5; fails to compile because 7.5 is a double. Declaring double total = 7.5; fixes it, and the compiler message tells you exactly which line to check.

Methods and Arrays Together

Example: A method static double average(int[] scores) loops over the array, adds each value to a running total and returns total / (double) scores.length. The cast to double avoids integer division, which would silently drop the decimal part.

Version Control

Tools such as Git record each change with a message. Committing small, working steps lets you return to a version that worked when a change breaks something.

Typical Assignments and How to Approach Them

Assignment typeWhat it testsHow to approach it
Programming projectsCorrect, well-structured codePlan methods first, then implement and test each
Test plansThinking about correctnessInclude normal, boundary and invalid inputs
DocumentationExplaining codeClear comments and a short description of design choices
Debugging exercisesReading errors and tracing logicUse the debugger or print statements, one change at a time

Writing a Useful Test Plan

Many CMSC 115 projects ask for evidence that your program works. A simple test table does this well: the input, the expected output, the actual output and whether it passed.

Include at least one ordinary case, the boundaries (such as zero, the largest allowed value or an empty array) and invalid input such as text where a number is expected. When a test fails, record the fix; it shows the marker your debugging process.

Moving from Python to Java

Most students arrive from Python in CMSC 105, and a few differences cause most early errors:

PythonJava
Indentation marks blocksBraces { } mark blocks
Types are inferred at run timeTypes are declared and checked at compile time
Lists grow freelyArrays have a fixed size
No semicolonsEach statement ends with ;

Expect the compiler to reject code more often at first. That is helpful: it catches mistakes before the program runs.

Where Students Get Stuck

Study Tips for CMSC 115

How We Help with CMSC 115

Send the project instructions, your code, error output and the rubric. A Java tutor can explain concepts, help you debug, review your test plan and documentation, or provide a commented model of a similar problem to learn from.

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 meet your instructor's rules.

Get Your CMSC 115 Java Code Working and Understood

Share the prompt and your attempt. A Java tutor walks you through the logic, testing and documentation.

Start My Java Help

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

Frequently Asked Questions

What language does CMSC 115 use?

Java. UMGC describes it as an applied study of foundational Java programming and software development.

What is the prerequisite for CMSC 115?

UMGC lists CMSC 105 (or CMIS 102).

Is CMSC 115 the same as CMIS 141?

CMSC 115 was formerly CMIS 141. UMGC allows credit for only one of CMIS 141, CMIS 141A or CMSC 115.

Does the course use version control?

Yes. UMGC's description includes version control alongside testing, debugging and documentation.

What comes after CMSC 115?

CMSC 115 is the prerequisite for CMSC 215 (object-oriented programming in Java) and CMSC 310 (computer systems and architecture).

Can you write my Java projects?

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