Overview
In Object-Oriented Concepts, we will introduce the core concepts behind modern, object-oriented, programming. We will discuss objects, classes, messaging, inheritance, polymorphism, and more. As with Fundamentals of Programming, we will illustrate the concepts using the Python language, but they will be portable to other object-oriented programming languages.
This course includes hands-on labs where you will learn to write and execute programs.
Syllabus
- Getting Started with Fundamentals of Programming
- In this module we'll review what you will be learning, and we'll start off with the basic concepts of programming. We will discuss what programs are, and what common elements you would come across in almost any mainstream programming language. Foremost, we'll try to get across the essential spirit and challenge of computer programming.
- Programming Elements
- Is this module, we will cover all of the fundamental programming elements that we intend to cover for this course. These elements include a few data types, specifically numbers, strings, Booleans and arrays. Given those data types, we'll talk about operators that work on them. We'll put those things together into expressions, and learn to use variables. Moving on, we'll learn to package reusable code in subroutines, and to incorporate both conditional and repetitive execution. Throughout, you'll have hands-on exercises to try these things, yourself. And by the end of the course, you'll be surprised by what we can do with just this handful of concepts.
- Algorithms
- Algorithms are language independent descriptions of the sequences of steps necessary to carry out a task. In this module, we'll look at what that means, talk about the importance of algorithms and logical thinking, and go into some detail on a simple, classic, algorithm.
- Design Patterns
- Design Patterns are language independent architectural blueprints to help address particular problem domains. They describe the types of components that make up the micro-architecture and the interactions both inside the design pattern and with the design pattern. In this module, we'll look at that in more detail, discuss the importance of design patterns, where you would find them, and we'll discuss a few design patterns. In lab, you'll explore a very simple design pattern.
Taught by
Evan Bergman and Noel J. Bergman