Overview
This course is the third course in a series that aims to prepare you for a role working as a programmer. In this course, you will be introduced to the four main concepts in programming: Advanced String Operations and Dates, Modeling Classes, Development of Classes and Collections. Labs will allow the students to apply the material in the lectures in simple computer programs designed to re-enforce the material in the lesson. Learners will need to have a local machine with any one of the following operating systems; Windows 7 SP1 or higher, macOS 10.1.13 or higher, or almost any version of Linux from the last several years. The learner will either need to download the free community edition of Visual Studio or the open source .NET Core installation.
Syllabus
- File Input and Output
- In this module, we look at how we can persist data to files so that it will exist beyond a single execution of a program. We will look at how we can write data to files in both text and binary formats. We follow-up with ways to read that data back into the state of an executing program.
- Inheritance
- In this module, we look at how to implement the is-a relationships we modeled earlier in our UML diagrams through the use of Inheritance. Inheritance provides additional ways to abstract code in taxonomies where base classes share code with specialized versions of the classes. We will add a discussion about exceptions work in Visual Basic now that we can discuss inheritance.
- Polymorphism
- In this module, we extend our implementation of the is-a relationships so that our code can work with specializations of a class without knowing the specifics of the specialization. This level of abstraction is known as polymorphism. Polymorphism provides additional ways to abstract code to work on objects in a taxonomy.
- Interfaces
- In this module, we continue our deep dive into the implementation of the is-a relationships. In our early work, we developed taxonomies for the purposes of abstraction. Now we want to think about the situation where a class could be in several taxonomies. This level of abstraction is known as an interface in modern programming. Interfaces provide signatures but not implementation so that we can use Polymorphism on objects that fall in multiple taxonomies.
Taught by
Aspen Olmsted