Best way to contact me *

    About this Course

    In this 5-day course, students will learn the basics of computer programming through the use of Microsoft Visual Studio 2013 and either the Visual C# or Visual Basic programming languages. The course assumes no prior programming experience and introduces the concepts needed to progress to the intermediate courses on programming, such as 20483B: 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.

    Audience Profile

    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 20483B: Programming in C#.

    At Course Completion

    At course completion

    • 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.


    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

    Lab : Thinking Like a Computer

    • Creating Step-by-Step Directions for a Morning Routine

    After completing this module, students will be able to:

    • Describe computer data storage and processing concepts
    • Describe application types
    • Describe the lifecycle of an application
    • Describe 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.


    • Syntax
    • Data Types
    • Variables and Constants

    Lab : Working with Data Types

    • Selecting Data Types
    • Declaring and Using Variables for Numeric Types
    • Declaring and Using Variables for Textual Data Types
    • Working with Boolean Variables
    • Declaring and Using Constants

    After completing this module, students will be able to:

    • Define syntax
    • Explain the different types of core data used in programs
    • Declare and use variables and constants in a computer program

    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

    Lab : Creating Functions, Decisions, and Looping

    • Implementing Functions
    • Implementing Decisions in Code
    • Implementing Repetition Structures

    After completing this module, students will be able to:

    • Describe structured programming
    • Create and use functions in your code
    • Create and use decision structures
    • Create and use looping structures

    Module 4: Algorithms and Data Structures

    This module introduces the concept of an algorithm by examining a daily routine such as a morning routine for getting up and going to work, 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 pseudo code for evaluation of the algorithm that will be translated into actual code.


    • Understand How to Write Pseudo Code
    • Algorithm Examples
    • Introduction to Data Structures

    Lab : Working with Algorithms and Data Structures

    • Working with Pseudo Code
    • Creating Data Structures

    After completing this module, you will be able to:

    • Transfer problem statements into pseudo code
    • Create algorithms
    • Translate pseudo code into programming code
    • Create simple algorithms in code
    • Create data structures to store data

    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 with a program. 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

    Lab : Implementing Debugging and Error Handling

    • Create Structured Exception Handlers
    • Using the Visual Studio Debugger

    After completing this module, students will be able to:

    • Implement structured exception handling
    • Debug applications by using Visual Studio 2013

    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 onto 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

    Lab : Implementing Complex Data Structures

    • Creating structs
    • Creating Classes

    After completing this module, students will be able to:

    • Create and use structure types
    • Create and use basic class files
    • Choose when to use a struct vs a class

    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 behavior to suit the needs of you class.


    The module also provides an introduction to the base class library in the .NET Framework so that students can start to think about the existence of functionality in other class files and how they can search the .NET Framework 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

    Lab : Implementing Inheritance

    • Creating a Base Class
    • Inheriting a Base Class

    Lab : Implementing Polymorphism

    • Implementing Polymorphism by Overriding a Function
    • Implementing Polymorphism by Overloading

    After completing this module, students will be able to:

    • Use inheritance in OOP
    • Implement polymorphism in your classes
    • Describe how the base class library is constructed
    • Find class information by using the Object Browser

    Module 8: Introduction to Application Security

    This module helps students think about security in their applications. This module introduces the concepts of authentication for users and also introduces the concept of permissions for the code that is running on a computer. 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 code signing.


    • Authentication and Authorization
    • Code Permissions on Computers
    • Introducing Code Signing

    After completing this module, students will be able to:

    • Describe how authorization and authentication work
    • Describe how to apply access permissions for executing code on a computer
    • Explain how code signing works

    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 and writing files, which is an important concept to know because applications work with the files on the disk systems on computers.


    • Using Console I/O
    • Using File I/O

    Lab : Core I/O Programming

    • Reading and Writing with the Console
    • Reading and Writing Files

    After completing this module, students will be able to:

    • Read input from a console
    • Output data to the console
    • Read and write text files

    Module 10: Application Performance and Memory Management

    This module enables students understand that memory on a computer is a finite resource. It talks about how good application design and good coding discipline with memory conservation and memory management will help programmers learn to develop applications that users will like. This is because these applications will be fast, responsive, and do not negatively impact other applications.


    • Value Types vs Reference Types
    • Converting Types
    • The Garbage Collector

    Lab : Using Value Types and Reference Types

    • Converting Types

    After completing this module, students will be able to:

    • Implement value and reference types correctly in an application
    • Convert between value types and reference types
    • Use the garbage collector


    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


    Online Event


    Live Online Training

    Get the same training you expect in the classroom without leaving your office or home. These are NOT recorded classes. They are LIVE sessions with an expert instructor. We use the latest in video conferencing technologies and audio so you can confidently participate in any class just like being right there in person. We guarantee the effectiveness of our online training delivery approach that we will give you your money back if you are not totally satisfied.  Ask us for a demo.

    Online class requirements:

    • Moderate to fast Internet
    • A phone or computer headset is required in order to hear the instructor/moderator). You can use Computer Audio (VoIP) or you can dial in from a regular phone.  For convenience, we recommend a hands-free headset or phone.
    • Training software must be installed on your computer (trial versions are acceptable)
    • RECOMMENDED: Dual Monitors or computers. For optimal online learning experience, we recommend participants have dual monitors or two computers. Your online classroom credentials allow you to join multiple times from multiple computers. Participants should use one monitor or computer to view the instructor’s shared screen and another monitor or computer to work with the software.

    What happens when you enroll in an online class

    When you register for an online class, you will receive a welcome email followed by login access to the Citrix GoToTraining virtual classroom. A workbook (printed copy or eBook) will be sent to you prior to the start of class.

    Online Training Advantages

    Convenience: You don’t have to travel and can attend from your home, office or anywhere with an internet connection. Our online classes are conducted using GoToTraining, a more robust version of the popular GoToMeeting screen sharing and conferencing platform. To accommodate multiple time zones, courses are typically scheduled from 10am – 5pm Eastern with a one-hour lunch break at 12:30 – 1:30 pm Eastern and a 10-minute break in the morning and afternoon. When conducting custom online course for your group, class times can be modified to accommodate your timezone.

    Interactive Learning: Our online training is fully interactive. You can speak and chat with the instructor and classmates at any time. Various interactive techniques are used in every class. Our small class sizes (typically 4 – 8 students), allow our instructors to focus on individual performance and issues and to work closely with you to meet your unique needs. Classes are designed to be a hands-on learning experience, providing opportunities for you to try your new skills while the instructor is available for review, questions, and feedback. You have the option to give the instructor permission to view your computer to provide one-on-one assistance when needed.

    GSA Schedule: 47QTCA19D008F