10975: Introduction to Programming Training in Novato

Enroll in or hire us to teach our 10975: Introduction to Programming class in Novato, California by calling us @303.377.6176. Like all HSG classes, 10975: Introduction to Programming may be offered either onsite or via instructor led virtual training. Consider looking at our public training schedule to see if it is scheduled: Public Training Classes
Provided there are enough attendees, 10975: Introduction to Programming may be taught at one of our local training facilities.
We offer private customized training for groups of 3 or more attendees.

Course Description

 
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.
Course Length: 5 Days
Course Tuition: $2090 (US)

Prerequisites

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

Course Outline

 

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.

Lessons

    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.

Lessons

    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.

Lessons

    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.

Lessons

    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.

Lessons

    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.

Lessons

    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.

Lessons

    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.

Lessons

    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.

Lessons

    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.

Lessons

    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

Course Directory [training on all levels]

Upcoming Classes
Gain insight and ideas from students with different perspectives and experiences.

C# Programming Uses & Stats

C# Programming is Used For:
Windows Applications Business Enterprise Applications Software Development Web Applications
Difficulty
Popularity
Year Created
2000
Pros
In Demand: 
C# along with Java is one of the top languages in demand for employers. 
 
.Net Library:
C# is integrated with the .Net Library thereby providing access to a vast archive of functionality and support. 
 
Team Friendly:
Multiple developers can easily work together on a project. 
 
Compiled Language:
The code that is stored on a public-facing server is in binary form. In other words, if your server gets hacked, the hacker doesn't automatically have access to your source code. 
 
Transferable:
C# roots are derived from C which means that the structure is transferable to other languages like Java, Objective C, PHP and C++. 
Cons

Steep Learning Curve:
For beginners, C# is not the easiest program to start with. 

Windows Application Exclusively:
Any .NET application needs a Windows platform to execute which means that companies using Linux servers would need Windows hosting to run a .Net application. 
 
Lack of Support for Older .NET:
Many enterprise organizations keep older operating systems because of the many problems that an upgrade can bring to the platform. Microsoft stops supporting older .NET frameworks after a few operating systems upgrades. 
C# Programming Job Market
Average Salary
102000
Job Count
32916
Top Job Locations

New York City 
Mountain View
San Francisco 

Complimentary Skills to have along with C# Programming

Since the .NET development ecosystem spans a wide array of capabilities and tools, it is difficult for .NET developers to know which .NET development skills and training to pursue in order to increase their marketability — and earning potential.  For that reason, learning supplemental languages such as Java, JavaScript, Python, C/C++, and others is expected in today’s competitive skill-set driven playing field.

Interesting Reads Take a class with us and receive a book of your choosing for 50% off MSRP.