Introduction to Programming: C/C++
What you'll learn
- Programming Fundamentals
- C Programming
- C++ Programming
- Object-Oriented Programming
- Introductory Software Development
- Computer Science
- Procedural Programming
- Explicit Typing
- Implicit Typing
- Generic Typing
Requirements
- Internet access
Description
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, Switches
Section 2:
-Logic Operators
-Loops: for, while
-Functions
-Recursion
-Arrays, Matrices
Section 3:
-Strings/String Functions, ASCII
-Pointers
-Function Pointers
-The void Pointer, Static
-Structures
-Unions
Section 4:
-Memory Management
-Memory Functions: malloc, calloc, realloc
-Dynamic Strings and Arrays
-Error Handling
Section 5:
-Working With Files, Binary File I/O, Random Generation
-Preprocessor Directives, Scope, Headers
-Conditional Compilation Directives
-Preprocessor Operators
Section 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, Enumerations
Section 7 - Capstone:
-Final exam
-Capstone project
Optional 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)
Who this course is for:
- Students interested in learning programming with any level of experience, but especially beginners or anyone unfamiliar with C or C++ as well.
Instructor
Computer Science, Choral Music, and General Music/Theory Teacher
-Ph.D. Artificial Intelligence, CapTechU (2022-Present [Exp. 2024])
-M.S. Computer Science, UWW (2020-2022)
-G.C. Graduate Certificate - Applied Bioinformatics, UWGB (2022-Present [Exp. 2023])
-B.M. Music Education - Choral Emphasis and Computer Science, Web Development/Administration, UWW (2017-2021)
-A.A.S. Arts and Sciences - General Studies, UWM (2021)
Director of choral and orchestral music, vocalist, pianist, cellist, guitarist, bassist, and computer scientist/engineer. Growing researcher in the field of computer science, particularly machine learning and artificial intelligence, as well as algorithmic theory.
You can view my courses of interest here:
http://danielszelogowski DOT com/education.php#whatiteach
Parent testimonials (from Outschool):
Sandra R. about Intermediate C# Programming/Data Structures and Algorithms: My daughter loved this mini course in Programming. It was detailed, interactive and fun. I’m astonished at how much was taught. This is a great class; Awesome teacher!
Nattanich J. about Crash-Course Introduction to C Programming: This class is great. My son learned a lot and really enjoyed it. Prior experience helped, but won’t be necessary. The teacher was very thorough and explained things clearly. I’m looking for another coding class from this instructor.
Rami R. about Intermediate C# Programming/Data Structures and Algorithms: Great teacher; I had very little programming knowledge and learned a lot during the course.
Rachel B. about Accelerated Introduction to Python Programming: My son enjoyed this class and he notes that the teacher is an expert in the topic. The teacher was very welcoming despite the fact that my son was younger than the age recommendations. My son felt that the teacher covered the material in an efficient way and the class lived up to its description.
Eric N. about Introduction to C/C++ Programming: My son really enjoyed this class! He was very comfortable since Daniel's teaching style lends itself well to learning the basics of programming. The classes were hands-on, the topics well-covered, and the short assignments provided a good way to illustrate the subject matter. We would definitely take more programming classes with this teacher.