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
Topics
Properties
2.7.1 Calculated Properties
[13 minutes]
2.7.2 Properties and Valid Object State [4 minutes]
2.7.3 Properties vs Fields [4 minutes]
2.7.4 Read-Only Properties [4 minutes]
2.7.5 Understanding Properties [4 minutes]
2.7.6 Why Classes Use Properties [4 minutes]
2.7.7 Adding Logic to Property Accessors [4 minutes]
2.7.9 Converting a Public Field to a Property [4 minutes]
2.7.11 Property Access Modifiers
[13 minutes]
2.7.12 Property Getters and Setters
[15 minutes]
2.7.18 Tracing Property Getter and Setter Calls [4 minutes]
3.5.6 Defining and Implementing Abstract Properties [4 minutes]
5.1.3 How and When to Use Auto Properties [4 minutes]
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.7 Reusing and Specializing Behavior Through Inheritance [4 minutes]
3.4.8 Understanding Inheritance
[9 minutes]
3.4.10 Inheritance Connectors in UML [4 minutes]
3.4.14 Base and Derived Classes
[12 minutes]
3.4.17 Defining a Derived Class
[17 minutes]
3.4.19 Inherited Member Accessibility [3 minutes]
3.4.21 Protected Members
[12 minutes]
3.4.22 Using Members Inherited From object
[11 minutes]
3.4.24 Inspecting an Object's Runtime Type With GetType()
[11 minutes]
3.5.7 Implementing an Abstract Base Class [3 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.6 Refactoring Type Checks Into Polymorphism [5 minutes]
3.7.7 Replacing Repeated Conditional Logic With Polymorphism [5 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.16 Storing Polymorphic Objects in a Collection [4 minutes]
3.7.17 Verifying Polymorphic Behavior [3 minutes]
3.7.19 Testing Multiple Runtime Types [4 minutes]
Interfaces
0.2.3 Abstraction: What Matters in the Model?
[10 minutes]
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.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.18 Testing Multiple Interface Implementations [4 minutes]
3.6.19 Revising a Class Design to Use an Interface [5 minutes]
Console
4.2.1 How to Create a Console Application [4 minutes]
4.2.2 How to Utilize Console Writing and Reading [4 minutes]
Strings
3.5.8 Overriding ToString()
[11 minutes]
4.2.3 How to Manipulate a String [4 minutes]
4.3.4 How to Use String.Format [4 minutes]
4.3.7 How to Use String Interpolation [4 minutes]
5.3.4 How to Compare Strings [4 minutes]
10.2.3 Low Level Strings [3 minutes]
10.3.1 Working With Strings [3 minutes]
Error Handling
1.1.17 Understanding Exceptions in C# [4 minutes]
1.1.18 Diagnosing a NullReferenceException [4 minutes]
2.1.1 Common Exception Types [4 minutes]
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.12 Reading Exception Messages and Stack Traces [4 minutes]
4.2.4 How to Use Try/Catch [4 minutes]
4.2.5 How to Determine Using Exceptions or Conditions [4 minutes]
4.3.8 How to Throw an Excpetion [4 minutes]
4.3.9 How to Catch an Exception [4 minutes]
4.3.10 How to Catch Multiple Exceptions [4 minutes]
5.1.1 How to Use Inner Exceptions [4 minutes]
5.1.2 How to Create and Use Custom Exceptions [4 minutes]
WPF
1.2.14 Using WPF Buttons
[9 minutes]
1.2.15 Basic Event Handlers for Buttons
[12 minutes]
3.2.11 Displaying WPF Message Boxes [4 minutes]
3.7.1 Event-Driven Execution and Event Handlers [5 minutes]
3.7.9 Connecting WPF Control Events to Handlers [4 minutes]
4.2.7 How to Use Messages Boxes [4 minutes]
4.3.1 How to Utilize the Windows Presentation Foundation [4 minutes]
4.3.12 How to Use Window Events [4 minutes]
4.3.14 How to Add and Use List Boxes [4 minutes]
4.4.4 How to Add and Use New Windows [4 minutes]
4.4.5 How to Add and Use Grids [4 minutes]
4.4.6 How to Add and Use Text Boxes [4 minutes]
4.4.7 How to How to Edit WPF Object Properties and Events [4 minutes]
4.5.3 How to Add and Use Combo Boxes [4 minutes]
5.1.4 How to Use the WPF Canvas [4 minutes]
5.1.5 How to Use Resources and Resource Keys [4 minutes]
5.1.6 How to Use the WPF ViewBox [4 minutes]
6.3.2 How to Use the Dispatcher [4 minutes]
11.4.1 INotiyPropertyChanged [4 minutes]
11.4.2 Data Binding [3 minutes]
Principles
0.2.1 What Is a Model? [2 minutes]
0.2.21 Reading a Programming Specification [4 minutes]
2.1.2 Reading Implementation Requirements [4 minutes]
3.7.5 Recognizing Code That Needs Refactoring [5 minutes]
3.7.15 Refactoring Code Without Changing Behavior [5 minutes]
3.7.21 Evaluating a Proposed Design Change Against Requirements [5 minutes]
4.3.3 Why we Use the DRY Principle (Don't Repeat Yourself) [3 minutes]
4.4.2 How to Apply the Program to Interfaces, Not Implementations Principle [4 minutes]
4.4.8 How to Implement the Dependency Inversion Principle [5 minutes]
5.1.10 Why we Implement the Interface Segregation Principle [4 minutes]
5.2.1 How to Use Algorithms [4 minutes]
5.2.2 Why we Use the Single Responsibility Principle [3 minutes]
5.2.3 Why we Use the Open/Closed Principle [3 minutes]
5.2.4 Why we Use the Encapsulate What Varies Principle [3 minutes]
Patterns
4.3.13 Why Use Composition over Inheritance [4 minutes]
4.5.1 How to Implement the Factory Pattern [4 minutes]
4.5.2 Why we Use the Factory Pattern [3 minutes]
5.2.5 How to Apply the Strategy Pattern [4 minutes]
5.2.6 Why we Use the Strategy Pattern [3 minutes]
5.5.4 How to Use the State Pattern [4 minutes]
5.5.5 Why we Use the State Pattern [3 minutes]
6.2.4 How to Implement the Observer Pattern [4 minutes]
6.2.5 Why we Use the Observer Pattern [3 minutes]
11.4.3 MVVM [3 minutes]
Events
2.2.4 Counting Iterations and Events [3 minutes]
2.5.7 Preventing Invalid Object State [3 minutes]
5.1.7 How to Use Timers [4 minutes]
5.1.8 How to Add an Event Handler to an Event [4 minutes]
6.2.1 How to Use Event Driven Programming [4 minutes]
6.2.2 How to Use Delegates [4 minutes]
6.2.3 How to Use Actions [4 minutes]
6.3.1 How to Use Funcs [4 minutes]
6.4.2 How to Use Predicates [4 minutes]
6.4.3 How to Use Lambda Expressions [4 minutes]
Sorting
5.3.1 How to Understand Sorting in C# [4 minutes]
5.3.2 How to Use Bubble Sort [4 minutes]
5.3.5 How to Use Selection Sort [4 minutes]
5.3.7 How to Use Insertion Sort [4 minutes]
5.3.9 How to Use a Binary Search [4 minutes]
5.5.3 How to Use Quick Sort [4 minutes]
Data Structures
2.4.2 Collections of Objects
[26 minutes]
5.4.1 How to Use Hierarchical Data Structures [4 minutes]
5.4.2 How to Use Stacks [4 minutes]
5.4.3 How to Use Queues [4 minutes]
5.4.4 How to Use Dictionaries [4 minutes]
5.4.5 Why we Use Dictionaries [3 minutes]
5.4.7 Data Structures 2.0 6-Part Series (MSDN) [90 minutes]
12.5.2 MSDN Data Structures, Part 1 [30 minutes]
12.5.3 MSDN Data Structures, Part 2 [30 minutes]
12.5.4 MSDN Data Structures, Part 3 [30 minutes]
12.5.5 MSDN Data Structures, Part 4 [30 minutes]
12.5.6 MSDN Data Structures, Part 5 [30 minutes]
12.5.7 MSDN Data Structures, Part 6 [30 minutes]
File IO
0.4.15 Files and Persistent Storage [3 minutes]
0.4.16 Writing Information to a Text File [3 minutes]
0.4.17 Reading Information From a Text File [4 minutes]
6.1.3 How to Save Files [4 minutes]
6.1.4 How to Load Files [4 minutes]
Generics
2.4.4 Type Safety in Generic Lists [4 minutes]
10.1.1 Generics Overview [2 minutes]
10.1.2 Generics Walkthrough [3 minutes]
Bits and Bytes
0.4.2 The Binary Number System [3 minutes]
0.4.3 Bits and Binary [3 minutes]
0.4.4 Reading Small Binary Numbers [4 minutes]
0.4.5 The Hexadecimal Number System [3 minutes]
0.4.6 Connecting Binary and Hexadecimal [3 minutes]
0.4.14 Where Is the Information Now? Memory vs. Storage [3 minutes]
1.1.24 Understanding Object Memory [4 minutes]
Encoding and Encryption
10.4.1 Cryptography Overview [2 minutes]
10.4.2 Learning Cryptography [3 minutes]
Multi-threading
10.5.1 Introduction to Multi-threading [2 minutes]
10.5.2 Advanced Multi-threading [3 minutes]
10.5.3 Multi-threading Walkthrough [4 minutes]
10.5.6 Using the Background Worker [4 minutes]
Unit Testing
1.1.3 How to Configure StyleCop [4 minutes]
1.1.4 Using StyleCop for Code Cleanliness
[15 minutes]
Test-Driven Development
Deploying .NET Applications
0.2.7 How to Install Violet [2 minutes]
3.7.23 Verifying Release Readiness [3 minutes]
Reflection
11.1.2 Introduction to Reflection [2 minutes]
Attributes
6.1.2 How to Attach Attributes [4 minutes]
11.2.1 Custom Attributes [3 minutes]
FTP
10.5.4 Overview of FTP [2 minutes]
10.5.5 Uploading Files with FTP [3 minutes]
CLR
10.2.2 .NET Compilation and Execution [3 minutes]
11.1.1 Introduction to the .NET CLR [2 minutes]
Feedback System
0.2.9 Using the Feedback System [4 minutes]
0.2.15 Submitting Violet UML Diagrams to the Feedback System
[20 minutes]
0.2.16 How to Resolve Feedback System UML Object Diagram Errors [4 minutes]
0.2.26 Submitting C# Code to the Feedback System [3 minutes]
0.2.27 How to Resolve Feedback System C# Code Errors [4 minutes]
1.2.5 Resolving Feedback System Class Diagram Errors [3 minutes]
1.3.6 Resolving Feedback System Sequence Diagram Errors [5 minutes]
1.4.6 Resolving Feedback System Activity Diagram Errors [3 minutes]
Visual Studio
0.2.17 How to Install Visual Studio [2 minutes]
0.2.18 How to Configure Visual Studio [4 minutes]
0.2.19 Structure of a Visual Studio Solution
[16 minutes]
0.2.22 Building Solutions in Visual Studio [4 minutes]
0.3.10 Navigating a Solution With Solution Explorer [4 minutes]
0.3.11 Setting Breakpoints in Visual Studio [4 minutes]
0.3.12 Stepping Over Code With F10 [3 minutes]
0.3.13 Using the Visual Studio Error List [4 minutes]
1.1.16 The Visual Studio Errors Window [4 minutes]
1.2.17 Navigating Code With Go to Definition [3 minutes]
1.2.18 Finding Code With Find All References [4 minutes]
2.1.13 The Visual Studio Locals Window [4 minutes]
2.1.14 The Visual Studio Watch Window [4 minutes]
4.1.2 How to Use Visual Studio Build Configurations [4 minutes]
4.1.3 How to Use Conditional Directives [4 minutes]
4.1.4 How to Add Class Libraries and Use the File System [4 minutes]
4.1.5 Why we Use Multiple Projects in a Soultion [3 minutes]
4.1.7 How to Create a Button in XAML [4 minutes]
4.1.9 How to Build and Deploy Visual Studio Projects [4 minutes]
Debugging
0.2.23 Basic Debugging Workflow
[18 minutes]
1.1.15 The Autos Window [3 minutes]
1.1.22 Inspecting Nested Objects in the Debugger [4 minutes]
1.3.12 Using the Call Stack [4 minutes]
1.3.15 Continuing Program Execution With F5 [3 minutes]
1.4.28 Debugging Boolean Expressions [4 minutes]
1.4.29 Tracing Parameter Values in the Debugger [4 minutes]
1.5.15 Debugging if/else if Statements [4 minutes]
1.5.18 Tracing and Debugging Returned Values [4 minutes]
1.5.20 Debugging Nested and Conditional Returns [4 minutes]
2.1.12 Temporarily Changing Values While Debugging [4 minutes]
2.2.7 Off-by-One Errors [3 minutes]
2.2.19 Debugging Loops [4 minutes]
2.2.20 Inspecting Loop Variables in the Autos Window [4 minutes]
2.4.20 Inspecting List Items in the Debugger [4 minutes]
2.6.15 Debugging Constructors Using Breakpoints [4 minutes]
2.7.17 Debugging Properties
[10 minutes]
3.4.23 Debugging Inherited and Overridden Behavior [4 minutes]
3.7.18 Tracing and Debugging Event Flow [4 minutes]
Object Diagrams
0.2.10 Reading UML Object Diagrams
[16 minutes]
0.2.11 Object Instances in UML Object Diagrams [5 minutes]
0.2.12 Fields in UML Object Diagrams
[21 minutes]
0.2.13 Object References in UML Object Diagrams [5 minutes]
0.2.14 Creating Object Diagrams in Violet
[15 minutes]
1.1.2 How to Infer an Object Diagram Design From Descriptive Text
[12 minutes]
1.1.9 How to Map Objects From UML Object Diagrams to C#
[9 minutes]
1.1.10 How to Map Fields From UML Object Diagrams to C# [5 minutes]
1.1.23 How to Translate a UML Object Diagram to C# Code [5 minutes]
1.6.4 Shared References in UML Object Diagrams [5 minutes]
1.6.5 Tracing Aliased References in Object Diagrams [5 minutes]
2.3.5 Representing Arrays in UML Object Diagrams [5 minutes]
2.4.5 How to Represent Lists in an Object Diagram [4 minutes]
3.4.11 Representing Inheritance in Object Diagrams [5 minutes]
Class Diagrams
0.4.9 UML Class Diagrams
[15 minutes]
0.4.10 Attributes and Data Types in UML Class Diagrams [5 minutes]
0.4.12 Contrasting UML Object, Activity, and Class Diagrams [3 minutes]
0.6.18 Modeling Data in a Class Diagram [3 minutes]
0.6.19 ERDs and UML Class Diagrams: Two Views of Structure [5 minutes]
1.2.2 Class Diagrams
[19 minutes]
1.2.3 Fields in UML Class Diagrams [5 minutes]
1.2.4 Creating a Class Diagram in Violet [4 minutes]
1.3.5 Methods in UML Class Diagrams [5 minutes]
1.4.9 Parameters in UML Class Diagrams [5 minutes]
1.5.3 Calling Methods That Return Values [4 minutes]
1.7.6 Object Parameter Types in UML Class Diagrams [5 minutes]
1.7.8 Object Return Types in UML Class Diagrams [5 minutes]
2.3.6 Representing Array Fields in UML Class Diagrams [5 minutes]
2.4.6 Representing Lists in a UML Class Diagrams
[12 minutes]
2.5.11 Private Fields and Methods in a Class Diagram [4 minutes]
2.5.12 Representing readonly Fields in UML Class Diagrams [5 minutes]
2.6.4 Constructor Parameters in UML Class Diagrams [5 minutes]
2.6.5 Constructors in UML Class Diagrams [5 minutes]
2.7.15 Properties in UML Class Diagrams [5 minutes]
3.3.3 Enums in UML Class Diagrams [5 minutes]
3.4.13 Virtual and Overridden Methods in UML Class Diagrams [5 minutes]
3.6.16 Interface Implementation Connectors in UML [4 minutes]
3.6.17 Interfaces in UML Class Diagrams [5 minutes]
4.3.2 How to Read Composition in Class Diagrams [4 minutes]
Sequence Diagrams
1.3.2 Sequence Diagrams
[21 minutes]
1.3.3 Creating a Sequence Diagram in Violet
[13 minutes]
1.3.4 Method Calls in Sequence Diagrams
[13 minutes]
1.3.9 Translating Sequence Diagrams Into C#
[39 minutes]
1.4.8 Parameters in Sequence Diagrams [5 minutes]
1.5.4 Representing Returned Values in Sequence Diagrams [5 minutes]
1.7.7 Object Parameters in Sequence Diagrams [5 minutes]
1.7.9 Object Returns in Sequence Diagrams [5 minutes]
2.6.3 Constructor Arguments in UML Sequence Diagrams [5 minutes]
2.6.6 Object Creation in UML Sequence Diagrams [5 minutes]
2.7.16 Property Access in Sequence Diagrams [5 minutes]
3.3.2 Enums in Sequence Diagrams [5 minutes]
3.4.9 Base-Class Calls in Sequence Diagrams [5 minutes]
3.4.12 Virtual and Overridden Methods in Sequence Diagrams [5 minutes]
Activity Diagrams
0.3.5 Flowcharts and Activity Diagrams [3 minutes]
0.3.6 Start, Action, and End Nodes in Activity Diagrams [3 minutes]
0.3.7 Decision Nodes and Paths in Activity Diagrams [3 minutes]
0.3.8 Creating an Activity Diagram in Violet [4 minutes]
0.3.9 Contrasting UML Object and Activity Diagrams [3 minutes]
0.3.14 Translating an Activity Diagram to C# [5 minutes]
0.4.11 Modeling Information Storage With an Activity Diagram [3 minutes]
0.5.8 Activity Partitions and Swimlanes [3 minutes]
0.5.9 Modeling a Web Request With a UML Activity Diagram [3 minutes]
0.7.15 Modeling AI and Human Judgment With a UML Activity Diagram [3 minutes]
1.4.2 Activity Diagrams [3 minutes]
1.4.3 Activity Diagrams in Violet UML [3 minutes]
1.4.4 Action Nodes in Activity Diagrams [3 minutes]
1.4.5 Decision Nodes in Activity Diagrams [3 minutes]
1.5.2 Representing Method Returns in Class Diagrams [4 minutes]
1.5.6 Representing if and if/else Statements in Activity Diagrams [3 minutes]
1.5.8 Representing if/else if Statements in Activity Diagrams [3 minutes]
1.5.10 Representing Nested Decisions in Activity Diagrams [3 minutes]
2.1.4 Nested if Statements in Activity Diagrams [3 minutes]
2.1.5 Switch Statements in Activity Diagrams [3 minutes]
2.2.10 for Loops in Activity Diagrams [4 minutes]
2.2.11 while Loops in Activity Diagrams [4 minutes]
2.3.7 foreach Loops in Activity Diagrams [4 minutes]
OOP Essentials
0.2.8 Getting Started With Violet [2 minutes]
0.2.20 The Anatomy of a Computer Program
[18 minutes]
0.2.28 Module 2 Quiz Study Guide [2 minutes]
0.3.17 Module 3 Quiz Study Guide [2 minutes]
0.4.18 Module 4 Quiz Study Guide [2 minutes]
1.1.6 Writing Single-Line Code Comments [3 minutes]
1.1.19 How to Comment Out a Line of Code [4 minutes]
2.7.13 Revising Code From Test Evidence [3 minutes]
4.1.6 How to Use the DateTime Type in C# [4 minutes]
10.2.1 C# Basics [3 minutes]
Object Instantiation
0.2.25 Creating Objects With new [4 minutes]
1.1.5 Instantiating Objects
[26 minutes]
5.3.3 How to Use the Object Initializer [4 minutes]
Classes
0.2.2 Object Oriented Programming [3 minutes]
0.2.6 Relationships Between Objects [4 minutes]
0.2.24 From a UML Object to a C# Object [3 minutes]
1.1.11 Referencing the Current Object With this
[15 minutes]
1.1.12 Accessing Object Members With the Dot Operator [3 minutes]
1.1.21 Referencing Nested Objects [4 minutes]
1.2.1 Classes [4 minutes]
1.2.8 Translating UML Classes Into C#
[12 minutes]
1.2.9 Defining Classes
[22 minutes]
1.2.16 Understanding Classes
[12 minutes]
1.6.6 Changing an Object Through a Shared Reference [4 minutes]
1.6.7 Sharing an Object Through Multiple References [4 minutes]
2.5.4 Designing Classes With Focused Responsibilities
[12 minutes]
2.5.6 Introduction to Immutable Objects [2 minutes]
2.5.15 Limiting Chained Object Access [3 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.16 Calling Base-Class Members With base
[9 minutes]
3.7.20 Analyzing Advanced Object-Oriented Code [3 minutes]
4.4.3 How to Use Internal Static Classes [4 minutes]
5.1.9 How to Use the Random Type [4 minutes]
5.3.8 How to Use the Stopwatch [4 minutes]
Fields
0.2.4 Understanding Objects and Fields
[10 minutes]
1.1.8 How to Identify Field Types When Assigning
[18 minutes]
1.1.13 How to Assign Field Values [4 minutes]
1.1.14 Default Field Values in New Objects [4 minutes]
1.1.20 How to Assign Object References [4 minutes]
1.1.25 Understanding Object State
[12 minutes]
1.1.26 Understanding Object References [4 minutes]
1.2.10 Defining Fields
[17 minutes]
1.2.11 Defining a Field Whose Type Is Another Class [4 minutes]
1.3.17 Fields Whose Name is the Same As their Class Name [4 minutes]
1.4.27 Fields Whose Type Is Their Own Class [4 minutes]
1.6.3 Reference Assignment Does Not Copy an Object [4 minutes]
2.5.17 Reducing Direct Field Access [4 minutes]
2.6.11 Initializing Required Object State [3 minutes]
2.6.16 Safely Renaming Fields With Refactoring Tools [5 minutes]
2.7.8 Backing Fields [4 minutes]
4.2.6 Why We Use Static Fields [4 minutes]
6.1.5 How to Use Constants [4 minutes]
Types
0.2.5 Object Identity, Type, and Values
[11 minutes]
0.4.7 Information Has a Type [4 minutes]
0.4.8 Choosing a Data Type for Information
[13 minutes]
0.4.13 Basic Data Types in C#
[9 minutes]
1.2.6 Classes as Custom Types
[13 minutes]
1.2.7 Custom Types vs. Primitive Types
[15 minutes]
1.2.12 Defining an Additional Field of a Custom Type [4 minutes]
1.2.13 Assigning Values to Compatible Types
[14 minutes]
1.6.1 Copying References vs Copying Values [4 minutes]
1.6.8 Tracing Shared Objects in Memory [4 minutes]
4.3.6 How to Parse a Value [4 minutes]
4.3.15 How to Use the IEnumerable Type [4 minutes]
6.5.2 How to Use Anonymous Types [4 minutes]
Scope
1.4.12 Variable Scope [3 minutes]
4.1.1 How and Why to Optimize Using Directives [4 minutes]
Methods
1.3.1 Understanding Methods
[17 minutes]
1.3.8 Writing Void Methods [4 minutes]
1.3.10 Calling a Method on Another Object
[18 minutes]
1.3.11 Stepping Into and Through Method Calls [4 minutes]
1.3.13 Calling Another Method in the Same Object [4 minutes]
1.3.14 Tracing Nested Method Calls [4 minutes]
1.3.16 Designing Single-Purpose Methods [5 minutes]
1.6.9 Tracing the Current Object During Method Calls [4 minutes]
1.7.1 Mutating an Object Passed to a Method [4 minutes]
2.1.8 Using a Method Call as an Expression [4 minutes]
2.5.8 Public Methods as Controlled Access to a Class
[20 minutes]
2.5.13 Defining and Using Private Methods [4 minutes]
2.7.14 Using Methods to Control Field Access [4 minutes]
3.4.18 Defining Virtual and Overridden Methods
[19 minutes]
3.4.20 Method Overriding and Runtime Dispatch [4 minutes]
3.5.5 Defining and Implementing Abstract Methods
[15 minutes]
3.7.8 Runtime Method Selection
[11 minutes]
3.7.10 Calling Overridden Methods Through a Base Reference [4 minutes]
4.3.11 How to Use Static Methods [4 minutes]
5.4.6 How to Overload a Method
[14 minutes]
5.5.1 How to Use Recursion [4 minutes]
5.5.2 Why we Use Recursion [3 minutes]
6.4.1 How to Use Extension Methods [4 minutes]
6.5.1 How to Create Custom Extension Methods [4 minutes]
Variables
1.4.10 Local Variables [3 minutes]
1.4.11 Variables vs Fields [4 minutes]
1.4.13 Local Variable Initialization [3 minutes]
1.4.14 Storing New Objects in Local Variables [4 minutes]
Math
0.4.1 The Decimal Number System [3 minutes]
1.3.7 Arithmetic Operators and Expressions [3 minutes]
1.4.22 Numeric Conversion for Calculations [3 minutes]
1.4.23 Using the Math Class [4 minutes]
2.7.10 Initializing an Object in an Assignment Expression [3 minutes]
4.5.5 How to Use Regular Expressions [4 minutes]
Logic
0.3.1 Programs Follow Instructions [3 minutes]
0.3.2 Precision and Ambiguity in Instructions [3 minutes]
0.3.3 Sequence: What Happens Next? [3 minutes]
0.3.4 Understanding True/False Values [4 minutes]
0.3.15 Reading a Simple if Statement [4 minutes]
0.3.16 Reading a Simple if/else Statement [4 minutes]
1.1.7 Using AI to Assist in Writing Comments [4 minutes]
1.4.1 Program Flow: From Sequence to Decisions [3 minutes]
1.4.15 Boolean Expressions [4 minutes]
1.4.16 Equality vs Assignment [3 minutes]
1.4.17 if Statements [3 minutes]
1.4.18 Relational Operators in Conditional Expressions [4 minutes]
1.4.19 Comparing Strings in Conditional Expressions [4 minutes]
1.4.20 Checking Whether an Object Reference Is Null [4 minutes]
1.4.21 Using the Not (!) Operator [4 minutes]
1.5.7 Making Multiple Decisions with if/else if Statements [3 minutes]
1.5.16 Writing Nested if Statements [3 minutes]
1.5.17 Writing Methods That Return on Every Code Path [4 minutes]
1.5.19 Using Multiple and Early Returns [4 minutes]
1.6.2 Equality vs Identity [3 minutes]
2.1.3 Short-Circuit Evaluation [3 minutes]
2.1.6 Boolean Operator Precedence [4 minutes]
2.1.7 Combining Conditions With && and || [4 minutes]
2.1.9 Nested if Statements [3 minutes]
2.1.10 Simplifying Complex Conditional Logic [4 minutes]
2.1.11 Switch Statements [3 minutes]
2.1.15 Testing Conditional Paths [4 minutes]
2.1.16 Explaining a Logic Revision From Requirements and Evidence [3 minutes]
3.7.22 Justifying a Design or Refactoring Decision With Evidence [5 minutes]
4.5.4 How to Use the Ternary Operator [4 minutes]
Parameters
1.4.7 Understanding Method Parameters [4 minutes]
1.4.24 Arguments vs Parameters [4 minutes]
1.4.25 Defining Methods With Multiple Parameters [4 minutes]
1.4.26 Passing Arguments to Method Parameters [4 minutes]
1.7.2 Passing an Object Reference as an Argument [4 minutes]
1.7.3 Reassigning an Object Parameter [4 minutes]
1.7.5 Using Objects as Method Parameters [4 minutes]
1.7.10 Tracing Object Parameters and Returns [4 minutes]
2.2.14 Passing a Returned Value as an Argument
[13 minutes]
Returns
1.5.1 Returning Values From Methods [4 minutes]
1.5.5 Making Decisions with if and if/else Statements [3 minutes]
1.5.9 Making Decisions with Nested if Statements [3 minutes]
1.5.11 Writing and Using Return Statements in C#
[20 minutes]
1.5.12 Writing if and if/else Statements [3 minutes]
1.5.13 Debugging if and if/else Statements [4 minutes]
1.5.14 Writing if/else if Statements [3 minutes]
1.7.4 Returning Object References From Methods [4 minutes]
Lists
2.4.3 List Traversal Patterns
[20 minutes]
2.4.7 Accessing List Items by Index [4 minutes]
2.4.8 Adding Values to a List [4 minutes]
2.4.9 Checking Whether a List Contains an Item [4 minutes]
2.4.10 Declaring Lists [4 minutes]
2.4.11 Filtering Items in a List [4 minutes]
2.4.12 Handling an Unsuccessful List Search [4 minutes]
2.4.13 How a List Organizes Items by Index [4 minutes]
2.4.14 Instantiating and Using Lists [4 minutes]
2.4.15 Removing an Item From a List [4 minutes]
2.4.16 Replacing an Item in a List [4 minutes]
2.4.17 Searching a List [4 minutes]
2.4.18 Traversing a List With foreach
[14 minutes]
2.4.19 Using the Count Property of a List [4 minutes]
4.1.8 How to Remove an Item from a List [4 minutes]
5.3.6 How to Use IndexOf [4 minutes]
Loops
1.1.1 How to Create a Folder Structure for Diagrams [4 minutes]
2.2.1 Accumulators
[12 minutes]
2.2.2 Choosing and Designing a Loop [5 minutes]
2.2.3 Choosing Between for and while [3 minutes]
2.2.5 Infinite Loops [4 minutes]
2.2.6 Loop Initialization, Condition, and Update [4 minutes]
2.2.8 Tracing Loop Iterations [4 minutes]
2.2.9 Understanding Iteration [4 minutes]
2.2.12 Aggregating Values With a Loop [4 minutes]
2.2.13 for Loops [4 minutes]
2.2.15 Repeating a Task With a Loop [4 minutes]
2.2.16 Stopping a Loop With break
[21 minutes]
2.2.17 Traversing a Sequence With a Loop [4 minutes]
2.2.18 while Loops [4 minutes]
2.3.12 foreach Loops [4 minutes]
Visibility
2.5.1 Introduction to Encapsulation
[10 minutes]
2.5.2 Public and Private Access Modifiers
[22 minutes]
2.5.3 Accessing Private Fields Through Class Methods
[22 minutes]
2.5.5 Encapsulation and Object State
[28 minutes]
2.5.9 Analyzing Encapsulation Problems and Unnecessary Coupling [4 minutes]
2.5.10 Understanding Private Fields [4 minutes]
2.5.14 Defining Private Fields That Reference Objects [4 minutes]
2.5.16 readonly Fields
[10 minutes]
Constructors
2.6.1 Designing Constructors [5 minutes]
2.6.2 Why Classes Use Constructors
[37 minutes]
2.6.7 Constructor Overloading [4 minutes]
2.6.8 Creating Contained Objects in a Constructor [4 minutes]
2.6.9 Default Constructors [4 minutes]
2.6.10 Initializing readonly Fields in a Constructor [4 minutes]
2.6.12 Parameterized Constructors
[17 minutes]
2.6.13 Passing Objects to Constructors [4 minutes]
2.6.14 Rejecting Invalid Constructor Arguments [4 minutes]
2.6.17 Tracing Constructor Execution [4 minutes]
3.4.15 Calling Base-Class Constructors
[18 minutes]
Arrays
2.3.1 Common Array Traversal and Update Patterns [4 minutes]
2.3.2 One-Dimensional Arrays [4 minutes]
2.3.3 Two-Dimensional Arrays [4 minutes]
2.3.4 Rows and Columns in Two-Dimensional Arrays [4 minutes]
2.3.8 Accessing Array Elements by Index [4 minutes]
2.3.9 Array Length and Valid Indexes [4 minutes]
2.3.10 Arrays of Objects [4 minutes]
2.3.11 Declaring and Instantiating Arrays [4 minutes]
2.3.13 Initializing Arrays With Values [4 minutes]
2.3.14 Linear Search in an Array [4 minutes]
2.3.15 Reasoning About Array Indexes [4 minutes]
2.3.16 Replacing Values in an Array [4 minutes]
2.3.17 Traversing a Two-Dimensional Array [4 minutes]
2.3.18 Traversing an Array With a for Loop [4 minutes]
2.3.19 Traversing an Array With a foreach Loop [4 minutes]
2.3.20 Using a Two-Dimensional Array to Represent Objects [4 minutes]
2.4.1 Arrays vs Lists [4 minutes]
4.3.5 How to Use String Arrays [4 minutes]
Artificial Intelligence
0.7.1 What AI Systems Do [3 minutes]
0.7.2 Generative AI [3 minutes]
0.7.3 Prompts, Inputs, and Outputs [3 minutes]
0.7.4 AI Output Is Generated, Not Guaranteed [3 minutes]
0.7.5 Evaluating AI Accuracy, Credibility, and Relevance [3 minutes]
0.7.6 Bias and Missing Context [3 minutes]
0.7.7 Evidence and Verification [3 minutes]
0.7.8 Choosing an Authoritative Source [3 minutes]
0.7.9 Information You Should Not Share With AI [3 minutes]
0.7.10 Responsible and Transparent Use of AI [3 minutes]
0.7.11 Comparing AI Responses [3 minutes]
0.7.12 Accept, Revise, Verify, or Reject [3 minutes]
0.7.13 Human Judgment Is the Final Step [3 minutes]
0.7.16 Module 7 Quiz Study Guide [2 minutes]
Web and APIs
0.5.4 Internet vs the Web: What's the Difference? [3 minutes]
0.5.5 Clients and Servers: The Browser [3 minutes]
0.5.6 What Happens When You Visit a Website? [3 minutes]
0.5.7 Requests and Responses [3 minutes]
0.5.10 Reading a URL [4 minutes]
0.5.11 Query Parameters [4 minutes]
0.5.12 Building a URL From User Input [3 minutes]
0.5.13 Displaying a Web Page [3 minutes]
0.5.14 Manual Interpretation of Web Page [3 minutes]
0.5.15 Module 5 Quiz Study Guide [2 minutes]
12.1.1 Introduction to Web APIs [2 minutes]
12.1.2 Introduction to Web APIs - ASP.NET [2 minutes]
12.1.3 Introduction to Postman [2 minutes]
12.2.1 Invoking Web APIs Using C# [4 minutes]
12.3.1 Creating Web APIs Using C# [4 minutes]
12.4.1 Deploying Web APIs [3 minutes]
Data and Databases
0.6.1 What Is Data? [3 minutes]
0.6.2 Structured vs. Unstructured Data [3 minutes]
0.6.3 Spreadsheets [3 minutes]
0.6.4 Using Google Sheets [4 minutes]
0.6.5 Using Spreadsheets to Manage Structured Data [4 minutes]
0.6.6 Importing Data Into Google Sheets [3 minutes]
0.6.7 CSV Files [3 minutes]
0.6.8 Records, Fields, Rows, and Columns [4 minutes]
0.6.9 Clean Data Is Consistent Data [3 minutes]
0.6.10 Giving Each Record a Unique ID [3 minutes]
0.6.11 Connecting Related Records With IDs [3 minutes]
0.6.12 Entities, Attributes, and Relationships [4 minutes]
0.6.13 Entity Relationship Diagrams [4 minutes]
0.6.14 Sorting, Filtering, and Summarizing Data [3 minutes]
0.6.15 Summarizing Data With a PivotTable [3 minutes]
0.6.16 Visualizing Data With a Chart [3 minutes]
0.6.17 What Can a Visualization Help You See? [3 minutes]
0.6.20 Displaying Structured Data in a DataGrid [3 minutes]
0.6.21 Module 6 Quiz Study Guide [2 minutes]
Input 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]
Enumerations
3.3.1 Preventing Invalid States With Enums [3 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]
4.4.1 How to Use Enumerations [4 minutes]
10.2.4 Enumerated Types and Bit Flags [4 minutes]
LINQ
6.4.4 How to Write and Use LINQ Queries [4 minutes]
Security
10.3.2 Security [3 minutes]
12.5.1 Securing Web APIs with JWT [3 minutes]
Professional and Academic Skills
0.1.1 Welcome to Fundamentals of IT
[9 minutes]
0.1.2 How to Install Slack on a Computer [2 minutes]
0.1.3 How to Install Slack on a Phone [2 minutes]
0.1.4 How to Capture a Useful Screenshot [4 minutes]
0.1.5 How to Install the Virtual Desktop Client [2 minutes]
0.1.6 How to Participate in a Slack Huddle [4 minutes]
0.1.7 Professional Electronic Communication [4 minutes]
0.1.8 How to Ask for Technical Help [4 minutes]
0.1.9 How to Write a Professional Email [4 minutes]
0.1.10 Module 1 Quiz Study Guide [2 minutes]
0.1.11 Designing Computerized Solutions
[14 minutes]
0.1.12 User Stories and Acceptance Criteria [3 minutes]
0.1.13 Tasks and Testing [3 minutes]
0.1.14 How to Play Parcheesi
[14 minutes]
0.7.14 Exploring IT Careers and Pathways
[12 minutes]
0.7.17 Oral Final Study Guide [2 minutes]
HTML and CSS
0.5.1 Hexadecimal Web Colors [3 minutes]
0.5.2 HTML: Structuring a Web Page [3 minutes]
0.5.3 CSS: Styling a Web Page [3 minutes]
Serialization
6.1.1 How to Use Serialization [5 minutes]