55337AC: Introduction to Programming
This course is intended for anyone who is new to software development and wants, or needs, to gain an understanding of programming fundamentals and object-oriented programming concepts. They will typically be high school students, post-secondary school students, or career changers, with no prior programming experience. They might want to gain an understanding of the core programming fundamentals before moving on to more advanced courses such as Programming in C#. The focus will be on core programming concepts such as computer storage, data types, decision structures, and repetition by using loops. The course also covers an introduction to object-oriented programming covering classes, encapsulation, inheritance, and polymorphism. Coverage is also included around exception handling, application security, performance, and memory management. 55337AC is the equivalent of the retired MOC Course 10975AC - Introduction to Programming.
This course is intended for anyone who is new to software development and wants, or needs, to gain an understanding of programming fundamentals and object-oriented programming concepts. They will typically be high school students, post-secondary school students, or career changers, with no prior programming experience. They might want to gain an understanding of the core programming fundamentals before moving on to more advanced courses such as Programming in C#.
Before attending this course, students must have:
- Ability to use computers to start programs, open and save files, navigate application menus and interfaces
- Ability to understand logical concepts such as comparisons
- Understand number theory
- Ability to create, understand, and follow structured directions or step-by-step procedures
- Ability to understand and apply abstract concepts to concrete examples
- Explain core programming fundamentals such as computer storage and processing.
- Explain computer number systems such as binary.
- Create and use variables and constants in programs.
- Explain how to create and use functions in a program.
- Create and use decisions structures in a computer program.
- Create and use repetition (loops) in a computer program.
- Explain pseudocode and its role in programming.
- Explain the basic computer data structures such as arrays, lists, stacks, and queues.
- Implement object-oriented programming concepts.
- Create and use classes in a computer program.
- Implement encapsulation, inheritance, and polymorphism.
- Describe the base class library (BCL) in the .NET Framework.
- Explain the application security concepts.
- Implement simple I/O in a computer program.
- Identify application errors and explain how to debug an application and handle errors.
- Identify the performance considerations for applications.
Module 1: Introduction to Core Programming Concepts
This module provides background and foundational information on how computers process information, discusses the different types of applications that a programmer might be creating, and then provides information on how code is compiled and interpreted by a computer.
- Computer Data Storage and Processing
- Application Types
- Application Life-Cycle
- Code Compilation
Module 2: Core Programming Language Concepts
This module covers programming language syntax and the importance of using good syntax and following the syntax rules for the chosen language. This module also discusses the core data types and how to store these data types in computer memory by using variables and constants.
- Data Types
- Variables and Constants
Module 3: Program Flow
This module covers how code is executed in a computer program, such as top to bottom, in structured programming and branching in code execution. The module teaches these concepts through the use of functions, decision structures, and looping constructs.
- Introduction to Structured Programming Concepts
- Introduction to Branching
- Using Functions
- Using Decision Structures
- Introducing Repetition
Module 4: Algorithms and Data Structures
This module introduces the concept of an algorithm by outlining all the steps required including the decisions to be made as the routine progresses. The module also discusses how to translate these set of steps into pseudocode for evaluation of the algorithm that will be translated into actual code.
- Understand How to Write Pseudo Code
- Algorithm Examples
- Introduction to Data Structures
Module 5: Error Handling and Debugging
This module helps students understand that errors are a part of programming and they must understand how to anticipate errors, handle those errors in code, and present a good user experience. This module introduces structured exception handling as the mechanism to deal with errors.
- Introduction to Program Errors
- Introduction to Structured Error Handling
- Introduction to Debugging in Visual Studio
Module 6: Introduction to Object-Oriented Programming
This module covers an introduction to the concepts related to object-oriented programming (OOP). The content has been split across two modules with this module focusing on basic OOP concepts that will provide sufficient knowledge to understand complex data structures starting with structs and then moving on to classes. This module helps the students gain an understanding of how to encapsulate data and related functionality within a class.
- Introduction to Complex Structures
- Introduction to Structs
- Introduction to Classes
- Introducing Encapsulation
Module 7: More Object-Oriented Programming
This module teaches students about inheritance and polymorphism in classes and function overloading. Function overloading and polymorphism can go hand-in-hand as often times when you inherit from a class, you want to override or change the existing behaviour to suit the needs of your class.
The module also introduces the base class library of .NET so that students can start to think about the existence of functionality in other class files and how they can search the .NET libraries to find this functionality and take advantage of it.
- Introduction to Inheritance
- Introduction to Polymorphism
- Introduction to the .NET Framework and the Base Class Library
Module 8: Introduction to Application Security
This module helps students think about security in their applications. It introduces the concepts of authentication and authorization for users, and also introduces the concept of permissions for running code. It explains that operating systems might prevent certain aspects of the program from executing, such as saving a file to a directory to which the user running the app might not have permission to write. The module briefly covers code signing and why programmers might want to consider using it.
- Authentication and Authorization
- Code Permissions on Computers
- Introducing Code Signing
Module 9: Core I/O Programming
This module introduces some core input/output (I/O) concepts that programmers will use while creating applications. Starting with console I/O, this module introduces input and output to the Console window.
The module also talks about reading from and writing to the filesystem.
- Using Console I/O
- Using File I/O
Module 10: Application Performance and Memory Management
This module enables students to understand that memory on a computer is a finite resource. It talks about how good application design and good coding discipline with memory management will help programmers learn to develop applications that are fast, responsive, and do not negatively impact other applications.
- Value Types vs Reference Types
- Converting Types
- The Garbage Collector