TTCP2000: Introduction to Programming and C++ Basics for Non-Programmers
About this Course
Introduction to Programming and C++ Basics for Non-Developers is a five-day, basic-level training course geared for IT candidates who have little or no prior experience in computer programming. You’ll gain light hands-on programming experience, while you begin your journey to develop a programmer’s mindset. Throughout this gentle introduction to programming and C++, students will learn to create applications and libraries using C++ using best practices and sound OO development techniques for writing object-oriented programs in C++. Special emphasis is placed on object-oriented concepts and best practices throughout the training.
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.
NOTE: Although this course is geared for non-developers, it is helpful for attendees to have a somewhat technical background and to be comfortable working with computers, having the ultimate goal of becoming a C++ software developer.
Audience Profile
Although this course is geared for non-developers, it is helpful for attendees to have a somewhat technical background and to be comfortable working with computers, having the ultimate goal of becoming a C++ software developer.
Attendees might include:
· Technically-oriented attendees who want or who want 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
At Course Completion
This “skills-centric” course is about 50% hands-on lab and 50% lecture, designed to train attendees in basic coding with C++, coupling the most current, effective techniques with the soundest industry practices. Our engaging instructors and mentors are highly experienced practitioners who bring years of current "on-the-job" experience into every classroom.
Working in a hands-on learning environment, guided by our expert team, attendees will learn:
· Learn about basic computer architecture (memory, CPU, IO)
· Gain basic knowledge of the C++ programming language, features and functions in today’s development initiatives
· Gain hands-on practice using C++ basic syntax and functions to build basic software applications
· Learn about Object Oriented development and best practices
· Learn and apply core development functions such as dynamic memory, inheritance, value type / reference types, exceptions and more
· Get a light introduction to the C++ Standard Library
· Gain skills required to exit the course with a foundation in basic programming skills and C++ knowledge to carry forward to additional study and practice.
Outline
Getting Started with Computer Programming Basics
1. Getting Started
· Overview of computing
· Understanding data types
2. Programming Tools
· Overview of tools used in C++ programming
· Explain why we use various tools when programing
3. Programming Basics
· C++ Syntax fundamentals
· Basic program elements
· Primitive data types in C++
· Literal types and variables
· Auto variables
· C++ Source files – headers, compile units
· Program flow
· If/else
· Loops
· Intro Functions
4. Data Structures
· Structures
· Arrays
5. Functions
· Return types
· Parameters
· Calling functions
· Overloaded functions
6. Pointers & Memory
· Understanding pointers
· Taking an address
· Dereferencing pointers
· Pointer operations
· Pass by Value/Passing pointers
· Default argument values
· Inline functions
7. Namespaces
· Overview
· The problem
· Defining a namespace
· Using a namespace
· Aliases
· Nested Namespaces in C++ 20
8. Strings
· Overview
· Using strings
· String methods
· String operators
· Strings and char*
9. Input and Output
· Overview
· ostream and istream
· Reading and writing to the console
· Reading and writing files
· Manipulators
Getting Started with OO / Object-Orientation
10. Intro Object-Oriented Features
· Overview of O-O concepts
· Defining a class in C++
· Encapsulation
· Class members
· Member functions
· Class organization
· Inline
· Friends
· this
· Class vs type
11. Dynamic Memory
· Memory concepts
· References
· Passing by value or reference
· new
· delete
· Construction/Destruction
· Initializer lists
· Copy constructor
· const & constexpr
12. A Practical Example
· Planning an application
· Defining an algorithm
· Implementing a solution
13. Templates
· Overview
· Using function templates
· Using class templates
14. Inheritance
· Base Classes
· Derived Classes
· Overriding members
· Abstract members and classes
15. Exceptions
· Throwing
· Catching
· Defining custom exceptions
Survey of C++ library components
16. Intro C++ Standard Library
· I/O classes
· Collections
· Utility
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