Introduction to Programming & Coding | Object Oriented Coding Basics

Jumpstart your software development coding skills with this gentle introduction to OO and programming basics

TTCODE101-O

Basic

Multi Day: Please Contact Us

Course Overview

 

Introduction to Programming & Coding | OO Programming Basics is a skills-focused, hands-on coding course that teaches students the fundamentals of programming object oriented (OO) applications to a basic level, using sound coding skills and best practices for OO development.  This course is presented in a way that enables interested students from any background to embrace the fundamentals of coding, in a gentle paced environment that focuses on coding basics, moving at the comfort level of the attendees. 

 

Technically, 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.

 

Students will leave this course armed with the required skills to begin their journey as a programmer using modern coding skills and technologies.  This course provides students with a solid foundation for continued skills development in popular, robust OO programming languages such as Java, C#, .Net, Python and more.

 

Course Topics Covered (see below for Agenda and Module Details)

  • Module 1: Introduction to Core Programming Concepts
  • Module 2: Core Programming Language Concepts
  • Module 3: Program Flow
  • Module 4: Algorithms and Data Structures
  • Module 5: Error Handling and Debugging
  • Module 6: Introduction to Object-Oriented Programming
  • Module 7: More Object-Oriented Programming – Inheritance and Polymorphism
  • Module 8: Introduction to Application Security
  • Module 9: Core I/O Programming
  • Module 10: Application Performance and Memory Management

Course Objectives

Working within an engaging, hands-on learning environment led by our highly-experienced instructors, students will learn how 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.
  • 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.

Course Prerequisites

This course is intended for anyone who is new to software development and wants, or needs, to gain an understanding of the fundamentals of coding and basics of object-oriented programming concepts.  This course provides a solid launch pad for continued learning in specific programming languages, such as Java, C# (.Net) or C++. 

 

Attendees might include:

  • Anyone who wants exposure to basic coding skills, or who wants to begin the process of becoming an OO application developer
  • Technical team members from non-development roles, re-skilling to move into software and application development roles within an organization
  • Recent college graduates looking to apply their college experience to programming skills in a professional environment, or perhaps needing to learn the best practices and standards for programming within their new organization
  • Technical managers tasked with overseeing programming teams, or development projects, where basic coding knowledge and exposure will be useful in project oversight or communications needs

 

Pre-Requisites

 

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 Agenda

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

 

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

 

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

 

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

 

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 Debugger

 

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

 

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.

  • Introduction to Inheritance
  • Introduction to Polymorphism
  • Lab: Implementing Inheritance
  • Creating a Base Class
  • Inheriting a Base Class
  • Lab: Implementing Polymorphism
  • Implementing Polymorphism by Overriding a Function
  • Implementing Polymorphism by Overloading

 

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

 

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

 

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

Course Materials

Our course materials include more than a simple slideshow presentation handout. Each student will receive a comprehensive course Student Guide, complete with detailed course notes, code samples, software tutorials, diagrams and related reference materials and links. Our courses also include detailed our Student Workbook, with step by step hands-on lab instructions and project files (as necessary) and solutions, clearly illustrated for users to complete hands-on work in class, and to revisit to review or refresh skills at any time.  Students will also receive the course set up files, project files (or code, if applicable) and solutions required for the hands-on work.

Raise the bar for advancing technology skills

Attend a Class!

Live scheduled classes are listed below or browse our full course catalog anytime

Special Offers

We regulary offer discounts for individuals, groups and corporate teams. Contact us

Custom Team Training

Check out custom training solutions planned around your unique needs and skills.

EveryCourse Extras

Exclusive materials, ongoing support and a free live course refresh with every class.

Mix, Match & Master!
2FOR1: Two Courses, One Price!

Enroll in *any* two public courses (for 2023 *OR* 2024 dates!) by December 31, for one price!  Learn something new, or share the promo!

Click for Details & Additional Offers

Learn. Explore. Advance!

Extend your training investment! Recorded sessions, free re-sits and after course support included with Every Course
Trivera MiniCamps
Gain the skills you need with less time in the classroom with our short course, live-online hands-on events
Trivera QuickSkills: Free Courses and Webinars
Training on us! Keep your skills current with free live events, courses & webinars
Trivera AfterCourse: Coaching and Support
Expert level after-training support to help organizations put new training skills into practice on the job

The voices of our customers speak volumes

Special Offers
Limited Offer for most courses.

SAVE 50%

Learn More