In this course, students will learn elementary programming concepts with the C language, with an additional section studying C++ and the relation between the two languages. Learning C will allow students to develop the basic skills for procedural programming and the fundamentals of object orientation, as well as a short study of C++. Students can use this knowledge to take on learning higher-level languages such as C#, Java, and Python in an accelerated manner. The class will focus on building programming skills from fundamental keywords to high-level abstraction, in hopes that the student will then continue on to learn a high-level programming language afterward. Students will learn the following aspects of programming using the C language: Section 1:-Introduction, how to succeed in the course-What is C, understanding programming, setup-Hello World-Data Types-Input and Output-Commenting-Operators-Introducing Conditionals-Conditionals-Nested Conditionals, SwitchesSection 2:-Logic Operators-Loops: for, while-Functions-Recursion-Arrays, MatricesSection 3:-Strings/String Functions, ASCII-Pointers-Function Pointers-The void Pointer, Static-Structures-UnionsSection 4:-Memory Management-Memory Functions: malloc, calloc, realloc-Dynamic Strings and Arrays-Error HandlingSection 5:-Working With Files, Binary File I/O, Random Generation-Preprocessor Directives, Scope, Headers-Conditional Compilation Directives-Preprocessor OperatorsSection 6 - C++: -Differences: new data types (strings, boolean), function/argument overloading-Intro to Classes (constructors, objects)-Intermediate Classes: class headers, namespaces, member initializer lists-Advanced Classes: access keywords, 'this', 'friend', inheritance and polymorphism-Abstract Classes/Interfaces, 'virtual', operator overloading-Generic Types/Classes (Templates), Exceptions-Files, EnumerationsSection 7 - Capstone: -Final exam-Capstone projectOptional textbooks: -C Programming Language, 2nd Edition by Brian W. Kernighan and Dennis M. Ritchie (Various prices by format and rental); this book is extremely well-known in the programming community for being fundamental to developing one's skills with programming languages.-The C++ Standard Library: A Tutorial and Reference, 1st Edition by Nicolai M. Josuttis (Various prices by format and rental, very cheap on eBay)