Beginner Package Courses
This class is for people who have no programming knowledge/experience whatsoever. Many of us hear about "Computer Science" and "programming" and have no real idea what those disciplines entail. Whether you're a business manager that wants a better understanding of tech-development, an entrepreneur that wants to build great products, or just curious about getting started in software development, then this course is for you!
In this class, we'll cover the details of Console Input/Output and how it relates to interactive computer programs, Boolean operators and expressions and decision making constructs (known as branching). The end goal is to build a fun and interactive, simple, text-based guessing game!
What good is a guessing game that only lets you guess once? How can we have our programs repeatedly execute some code based on a decision? In this class, we'll explore one of the most important aspects of computer programming: loops. In particular, we'll discuss the details of the various looping constructs in C++ and how it can take our guessing game to the next level!
We've been hired to create a program that analyzes the results of a surf competition and determines the top three scores! To solve this problem, we'll learn how to read data from textfiles (File I/O) and also how to easily store large amounts of data using containers!
Now that we're pretty comfortable with writing code, let's get into more hardcore concepts — fully exploring the idea of making parts of our code shorter (thus, more maintainable) and more reusable. We'll discuss the procedural abstraction philosophy ("black-box approach"), function declarations, parameters, return types, overloading, and create plenty of our own functions!
In class 4, we used Vectors as the primary container for data. In this class, we'll take a look at a more primitive/pure container known as an Array. Arrays are more low-level than Vectors in that you get nothing for free; hence, arrays are more difficult to learn and manage. Despite the shortcomings of arrays, they are extremely valuable for complete control of your container's memory requirements. In addition, arrays are more widely supported across other programming languages.
As our programs get more complicated, related data and functions can be grouped. This allows us to start thinking about our code in terms of entities/objects and not simply a long list of instructions to realize some algorithm. Our discussions will form the basis of large-scale system development: Object-Oriented Programming and Design!
Classes are the most essential construct for developing large-scale systems and there are many advanced uses of these simple objects. We'll continue our introduction to Object-Oriented Design (OOD) with a detailed study of classes. In particular, we'll cover object instantiations via custom and automatic constructors, header and implementation files, header guards and the pre-processor, and more.
After successfully completing the beginner package, you will implement a medium-sized, account-based, desktop banking system! The project contains all of the material discussed throughout the beginner package and should be difficult yet exciting. Once you complete this challenging project, you are officially a computer programmer!