Introduction to Programming in C# / .Net Core Basics for Non-Developers
Learn to Think Like a Programmer: Jumpstart your C#/.Net Core coding skills in this engaging, skill-focused programming basics course. Getting started with Programming, OO and C#/.Net Core Basics for Non-Developers is a fast-paced, five day course designed to provide you with a first look at how to code to a very basic level. You’ll gain light hands-on programming experience, while you begin your journey to develop a programmer's mindset.
Description
Overview
Getting Started with Programming, OO and C#/.Net Core Basics for Non-Developers is a fast-paced, five day course designed to provide you with a first look at how to code to a very basic level. You’ll gain light hands-on programming experience, while you begin your journey to develop a programmer's mindset. This course aligns with the Microsoft Official Curriculum (MOC) 10975.
NOTE: Although this course is geared for non-developers, it is helpful for attendees to have a technical background and to be comfortable working with computers, having the goal of becoming a C#/.Net Core software developer. Some prior exposure to coding or scripting would also be beneficial.
Throughout the course you'll explore the intricacies of the application development cycle, program structure, and language syntax. You’ll learn and practice core coding skills including fundamental OO concepts, vital programming constructs, string and character manipulation, dynamic memory allocation, standard input/output, and exception handling. This course quickly introduces developers to essential programming concepts as well as implementing software in C# using the .Net framework and Visual Studio. Students will learn about project organization, debugging, and programming. The focus of this course is 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.
Becoming a modern software developer is like learning a new language; it requires study, practice, and dedication well beyond this course to apply your new skills effectively. While this five day program won't transform you into an experienced developer, it will lay a solid foundation in coding basics using C#, while teaching you to think like a programmer. Although this course is technical in nature, our instructors will guide you every step of the way, providing a supportive environment for you to explore, ask questions, and prepare for your next learning milestones.
Course Objectives
After completing this course working in a dynamic, intensive coding environment students will learn to:
- 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
- Use Threat Modeling to identify potential vulnerabilities in a real-life case study
Who Should Attend
This course is designed for individuals who fall into the following categories:
- Beginners looking to learn coding fundamentals and C# programming
- Non-developers transitioning to software and application development roles
- Recent college graduates entering the programming field
- Technical managers overseeing development projects and teams
Course Outline
Module 1: Introduction to Core Programming Concepts
- Computer Data Storage and Processing
- Application Types
- Application Life-Cycle
- Code Compilation
Module 2: Core Programming Language Concepts
- Syntax
- Data Types
- Variables and Constants
Module 3: Program Flow
- Introduction to Structured Programming Concepts
- Introduction to Branching
- Using Functions
- Using Decision Structures
- Introducing Repetition
Module 4: Algorithms and Data Structures
- 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
- Introduction to Program Errors
- Introduction to Structured Error Handling
- Introduction to Debugging in Visual Studio
Module 6: Introduction to Object-Oriented Programming
- Introduction to Complex Structures
- Introduction to Structs
- Introduction to Classes
- Introducing Encapsulation
Module 7: More Object-Oriented Programming
- Introduction to Inheritance
- Introduction to Polymorphism
- Introduction to the .NET Framework and the Base Class Library
Module 8: Introduction to Application Security
- Authentication and Authorization
- Code Permissions on Computers
- Introducing Code Signing
Module 9: Core I/O Programming
- Using Console I/O
- Using File I/O
Module 10: Application Performance and Memory Management
- Value Types vs Reference Types
- Converting Types
- The Garbage Collector
Prerequisites
Although this course is geared for non-developers, it is helpful for attendees to have a technical background and to be comfortable working with computers, having the ultimate goal of becoming a C#/.Net Core software developer. Before enrolling in this course, you should have the following:
- 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