C968 Software I – C# is a Western Governors University course that builds object-oriented programming skill in C# and opens the C# sequence of WGU's software program.
WGU describes the course as building object-oriented programming expertise and introducing new tools for C# application development. You learn about and put into action class design, exception handling and other object-oriented principles and constructs to develop software that meets business requirements.
The challenge is moving from small exercises to a complete application. Classes, user interface, validation and error handling all have to work together, and evaluators check that every requirement in the task is met.
Course at a Glance
| Item | Details |
|---|---|
| University | Western Governors University (WGU) |
| Course code | C968 |
| Level | Undergraduate, competency-based |
| Language | C# (.NET) |
| Followed by | C969 Software II – Advanced C# |
| Typical work | Building a working application to a set of business requirements |
What C968 Covers
| Topic | In plain language |
|---|---|
| Class design | Deciding which classes exist, their properties, methods and relationships |
| Encapsulation | Keeping data private and exposing it through properties and methods |
| Inheritance and abstraction | Shared base classes with specialized subclasses |
| Polymorphism | Treating different subclasses through a common type |
| Exception handling | Catching and handling errors so the program does not crash |
| User interface and validation | Forms that check input and give clear messages |
Key Concepts Explained
Abstract Classes and Inheritance
An abstract base class holds what all subclasses share and cannot be created on its own. Each subclass adds what makes it different.
Example: In a small library system, an abstract Item class has Id, Title and Price. Book adds Author; Dvd adds RunningTime. A single List<Item> can hold both, and code that lists titles works for every item type. That is polymorphism in action.
Validation and Exception Handling
Two layers protect an application. Validation checks input before it is used; exception handling deals with problems that still occur.
Example: Instead of int.Parse(txtQty.Text), which throws if the box is empty, use int.TryParse(txtQty.Text, out int qty) and show a message if it fails. Then check business rules, such as minimum not exceeding maximum, before saving. Wrap risky operations in try and catch blocks that show a helpful message instead of crashing.
Data Binding
In Windows desktop applications, binding a grid to a collection such as BindingList<T> keeps the display in sync when items are added or removed, which saves manual refresh code.
Planning the Application Before Coding
Strong C968 work starts on paper. List every requirement in the task, then decide which class, form or method meets each one. A simple class diagram shows properties, methods and inheritance at a glance and prevents rework later.
Plan the user flows too: add, modify, delete and search, plus what happens with invalid input, empty results and confirmation before deleting. Many returned submissions fail on these small behaviors rather than on the main logic.
The Four OOP Principles in One View
| Principle | What it means | Where it shows in an app |
|---|---|---|
| Encapsulation | Hide data behind properties | Private fields, public properties with checks |
| Inheritance | Reuse a base class | Subclasses sharing common fields |
| Polymorphism | One interface, many forms | A list of base types holding subclasses |
| Abstraction | Expose only what is needed | Abstract classes and interfaces |
Being able to point to each principle in your own code helps if the task asks you to explain your design. It also helps you answer the question evaluators implicitly ask: does the structure follow from the requirements, or was it improvized?
Typical Work and How to Approach It
| Element | What it tests | How to approach it |
|---|---|---|
| Class structure | OOP design | Match classes to the requirements exactly |
| Forms and controls | UI development | Label clearly and keep behavior consistent |
| Input validation | Robustness | Test every field with bad and empty values |
| Exception handling | Error control | Catch specific exceptions with clear messages |
Where Students Get Stuck
- Logic in the forms. Keep business rules in classes, not scattered through button handlers.
- Unhandled crashes. Evaluators try bad input; test it yourself first.
- Missed requirements. Tick off each requirement against the running program before submitting.
- Naming. Clear class, method and control names make your code easier to grade and to debug.
Study Tips for C968
- Use the Visual Studio debugger with breakpoints instead of guessing.
- Commit working versions often so a mistake never costs hours.
- Write a short test list (add, edit, delete, search, invalid input) and run it after each change.
- Read the official Microsoft C# documentation for any class you use.
How We Help with C968
Send the task instructions, rubric, your project and any evaluator comments. A C# tutor explains object-oriented design, walks through your code, helps you find and fix bugs, and shows how to validate input and handle exceptions properly.
GradeEssays is independent of Western Governors University. We teach and review; the application you submit must be your own work under WGU's academic integrity rules, and we never log in to student accounts. Revisions within the scope of your original request are free.
Get Your C968 Code Working
Share your task, code and evaluator notes. A C# developer explains the issues and walks you through fixes.
Start My C968 HelpFree revisions · Full refund if late · Written from scratch for your order
Frequently Asked Questions
Object-oriented programming in C#: class design, exception handling and other OOP principles used to build software that meets business requirements.
Yes. The course assumes foundational object-oriented programming knowledge from earlier courses.
Validation checks input before it is used; exception handling deals with errors that still happen at run time.
It holds shared properties and behavior for related subclasses and prevents creating a generic object that makes no sense on its own.
Yes. We explain what is going wrong and how to fix it, so you can complete the work yourself.
No. We are independent of Western Governors University.