Home
Assignments
Fundamentals of IT
Programming Concepts 1
Programming Concepts 2
Programming Concepts 3
Object-Oriented Programming A
Object-Oriented Programming B
Object-Oriented Programming C
Object-Oriented Design A
Object-Oriented Design B
Object-Oriented Design C
Advanced .NET Programming A
Advanced .NET Programming B
Advanced .NET Programming C
Content
Fundamentals of IT
Programming Concepts 1
Programming Concepts 2
Programming Concepts 3
Object-Oriented Programming A
Object-Oriented Programming B
Object-Oriented Programming C
Advanced .NET Programming A
Advanced .NET Programming B
Advanced .NET Programming C
Topics
Glossary
Links
Canvas
Socrative
Feedback System
NTC Slack
NTC Email
Software Installations
Programming Concepts 3 Content
Chapter 3.1 - Validation
3.1.1 Choosing a Validation Strategy [3 minutes]
3.1.2 Common Data Validation Techniques [3 minutes]
3.1.3 Fail Fast Design [3 minutes]
3.1.4 Evaluating a Validation Design Against Constraints [5 minutes]
3.1.5 Validation vs Normalization [3 minutes]
3.1.6 Checking for Null, Empty, and Whitespace Strings [3 minutes]
3.1.7 Combining Multiple Validation Rules [3 minutes]
3.1.8 Converting Text Input With TryParse [3 minutes]
3.1.9 Normalizing Letter Case With ToLower() [3 minutes]
3.1.10 Normalizing String Input [3 minutes]
3.1.11 Protecting Applications From Invalid Input [3 minutes]
3.1.12 Removing Leading and Trailing Whitespace With Trim() [3 minutes]
3.1.13 Replacing Hardcoded Validation Values [3 minutes]
3.1.14 Reporting Validation Errors to the User [3 minutes]
3.1.15 Testing Boundary Values [3 minutes]
3.1.16 Validating Before Changing Object State [3 minutes]
3.1.17 Validating Numeric Ranges [3 minutes]
3.1.18 Reading Boolean Input From WPF Check Boxes [4 minutes]
3.1.19 Reading Input From WPF Text Boxes [4 minutes]
Chapter 3.2 - Exception Handling
3.2.1 Exception Propagation [4 minutes]
3.2.2 Understanding the Purpose of Exceptions [4 minutes]
3.2.3 When Not to Catch an Exception [4 minutes]
3.2.4 Catching Specific Exceptions [4 minutes]
3.2.5 Deciding When to Throw and Catch an Exception [4 minutes]
3.2.6 Handling Exceptions With try and catch [4 minutes]
3.2.7 Handling Invalid Values With Exceptions [4 minutes]
3.2.8 Ordering Catch Blocks [3 minutes]
3.2.9 Preserving Exception Information [4 minutes]
3.2.10 Throwing Exceptions [4 minutes]
3.2.11 Displaying WPF Message Boxes [4 minutes]
3.2.12 Reading Exception Messages and Stack Traces [4 minutes]
Chapter 3.3 - Enums
3.3.1 Preventing Invalid States With Enums [3 minutes]
3.3.2 Enums in Sequence Diagrams [5 minutes]
3.3.3 Enums in UML Class Diagrams [5 minutes]
3.3.4 Converting Between Enum Values and Display Text [3 minutes]
3.3.5 Defining Enums [3 minutes]
3.3.6 Enum Members and Default Values [3 minutes]
3.3.7 How Enums Define Named Values [3 minutes]
3.3.8 Parsing Enum Values [3 minutes]
3.3.9 Replacing Magic Values With Enums [3 minutes]
3.3.10 Restricting Values With an Enum [3 minutes]
3.3.11 Using an Enum as a Data Type [4 minutes]
3.3.12 Using Enums in Conditional Logic [4 minutes]
3.3.13 Selecting Enum Values With a WPF ComboBox [4 minutes]
Chapter 3.4 - Inheritance
3.4.1 Composition vs Inheritance [4 minutes]
3.4.2 Defined Type vs. Runtime Type [4 minutes]
3.4.3 Designing an Inheritance Hierarchy
[9 minutes]
3.4.4 Designing Base-Class Responsibilities [5 minutes]
3.4.5 Is-a Relationships
[9 minutes]
3.4.6 Is-a vs Has-a Relationships [4 minutes]
3.4.7 Reusing and Specializing Behavior Through Inheritance [4 minutes]
3.4.8 Understanding Inheritance
[9 minutes]
3.4.9 Base-Class Calls in Sequence Diagrams [5 minutes]
3.4.10 Inheritance Connectors in UML [4 minutes]
3.4.11 Representing Inheritance in Object Diagrams [5 minutes]
3.4.12 Virtual and Overridden Methods in Sequence Diagrams [5 minutes]
3.4.13 Virtual and Overridden Methods in UML Class Diagrams [5 minutes]
3.4.14 Base and Derived Classes
[12 minutes]
3.4.15 Calling Base-Class Constructors
[18 minutes]
3.4.16 Calling Base-Class Members With base
[9 minutes]
3.4.17 Defining a Derived Class
[17 minutes]
3.4.18 Defining Virtual and Overridden Methods
[19 minutes]
3.4.19 Inherited Member Accessibility [3 minutes]
3.4.20 Method Overriding and Runtime Dispatch [4 minutes]
3.4.21 Protected Members
[12 minutes]
3.4.22 Using Members Inherited From object
[11 minutes]
3.4.23 Debugging Inherited and Overridden Behavior [4 minutes]
3.4.24 Inspecting an Object's Runtime Type With GetType()
[11 minutes]
Chapter 3.5 - Abstract Classes
3.5.1 Concrete and Abstract Members [3 minutes]
3.5.2 Understanding Abstract Classes
[11 minutes]
3.5.3 When an Abstract Class Is Appropriate
[11 minutes]
3.5.4 Representing Abstract Classes in UML [5 minutes]
3.5.5 Defining and Implementing Abstract Methods
[15 minutes]
3.5.6 Defining and Implementing Abstract Properties [4 minutes]
3.5.7 Implementing an Abstract Base Class [3 minutes]
3.5.8 Overriding ToString()
[11 minutes]
Chapter 3.6 - Interfaces
3.6.1 Adding an Interface to a Project [4 minutes]
3.6.2 Calling Members Through an Interface Reference [4 minutes]
3.6.3 Declaring Interfaces [4 minutes]
3.6.4 Depending on an Interface Instead of a Concrete Class [4 minutes]
3.6.5 Designing Around an Interface [5 minutes]
3.6.6 Different Classes Implementing the Same Interface [4 minutes]
3.6.7 Hiding Implementation Details Behind an Interface
[9 minutes]
3.6.8 Implementing an Interface in a Class [4 minutes]
3.6.9 Implementing Multiple Interfaces [4 minutes]
3.6.10 Interface References [4 minutes]
3.6.11 Interface Type vs Implementing Type [4 minutes]
3.6.12 Interfaces and Concrete Classes [4 minutes]
3.6.13 Interfaces as Contracts
[15 minutes]
3.6.14 Choosing Between an Abstract Class and an Interface
[14 minutes]
3.6.15 Substituting Interface Implementations [4 minutes]
3.6.16 Interface Implementation Connectors in UML [4 minutes]
3.6.17 Interfaces in UML Class Diagrams [5 minutes]
3.6.18 Testing Multiple Interface Implementations [4 minutes]
3.6.19 Revising a Class Design to Use an Interface [5 minutes]
Chapter 3.7 - Polymorphism
3.7.1 Event-Driven Execution and Event Handlers [5 minutes]
3.7.2 When Casting Is a Design Warning [5 minutes]
3.7.3 Polymorphism Through Base and Interface Types
[16 minutes]
3.7.4 Polymorphism Through Interface References
[18 minutes]
3.7.5 Recognizing Code That Needs Refactoring [5 minutes]
3.7.6 Refactoring Type Checks Into Polymorphism [5 minutes]
3.7.7 Replacing Repeated Conditional Logic With Polymorphism [5 minutes]
3.7.8 Runtime Method Selection
[11 minutes]
3.7.9 Connecting WPF Control Events to Handlers [4 minutes]
3.7.10 Calling Overridden Methods Through a Base Reference [4 minutes]
3.7.11 Calling Shared Behavior Through a Common Type
[9 minutes]
3.7.12 Checking Types Before Casting
[15 minutes]
3.7.13 Converting Between Base and Derived References
[17 minutes]
3.7.14 Polymorphic Collections [3 minutes]
3.7.15 Refactoring Code Without Changing Behavior [5 minutes]
3.7.16 Storing Polymorphic Objects in a Collection [4 minutes]
3.7.17 Verifying Polymorphic Behavior [3 minutes]
3.7.18 Tracing and Debugging Event Flow [4 minutes]
3.7.19 Testing Multiple Runtime Types [4 minutes]
3.7.20 Analyzing Advanced Object-Oriented Code [3 minutes]
3.7.21 Evaluating a Proposed Design Change Against Requirements [5 minutes]
3.7.22 Justifying a Design or Refactoring Decision With Evidence [5 minutes]
3.7.23 Verifying Release Readiness [3 minutes]