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)
-M.S. Computer Science, UWW (2020-2022)
-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.
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.
Courses of Interest:
-Music:
• AP Music Theory
• Form and Analysis
• Introductory Guitar
• Introductory Cello
• Beginner-Intermediate Piano
• Introductory Music Theory
• Introductory Conducting
• Choral Conducting
• Instrumental Conducting
• Independent Study and Research
-Computer Science:
• ANY PROGRAMMING LANGUAGE NOT LISTED BY REQUEST
• Independent Study and Research
• AP Computer Science A
• AP Computer Science Principles
• Cryptography and Cybersecurity Protocol
• Databases and Data Warehousing
• Independent Programming Literacy
• Data Structures and Algorithms (Prereq: Intro C# or Java)
• Theory of Algorithms
• Theory of Computation
• Computer Languages and Compilers
• Computer Organization and Systems Programming/Software
• Concepts of Programming Languages
• Embedded Systems and IoT/Digital Electronics
• Software Engineering
• Computer Science History
• Introductory Java (Opt. Prereq: Intro C/C++)
• Introductory C# (Opt. Prereq: Intro C/C++)
• Accelerated Introductory C# (Opt. Prereq: Intro C/C++, or strong programming experience)
• Intermediate C# (Prereq: Intro C#)
• Introductory C/C++
• Intermediate C/C++ - Data Structures and Algorithms (Prereq: Intro C/C++)
• Introductory Assembly [MIPS] (Prereq: Into C/C++)
• Introductory Assembly [x86] (Prereq: Into C/C++)
• Introductory Python (Opt. Prereq: Intro C/C++)
• Introductory Swift (Opt. Prereq: Intro C/C++)
• Introductory Kotlin (Opt. Prereq: Intro Java)
• Introductory Ruby
• Introductory Go [Golang]
• Accelerated Introductory Python (Prereq: Intro C/C++)
• Introductory F# (Opt. Prereq: Intro C/C++ or Intro C#)
• Introductory Web Development: Intro to HTML, CSS, and JavaScript
• Intermediate Web Development: Intro to PHP, jQuery, and Advanced JavaScript
• Advanced Web Development: Intro to SQL, HTML5, ECMAScript 6, CSS3
• Introduction to Artificial Intelligence (Prereq: Intro Python)
• Machine Learning (Prereq: Intro Python and Linear Algebra)
• Data Science (Prereq: Intro Python)
• Cryptography
• Quantum Computing (Prereq: Linear Algebra)
• Web Server and Unix Administration
-Linguistics:
• Introduction to the International Phonetic Alphabet
• Singer's Diction I - The Romance Languages (Prereq: Intro to IPA)
• Singer's Diction II - The Slavic Languages (Prereq: Singers Diction I)
• Singer's Diction III - The Scandinavian Languages (Prereq: Singers Diction II)
-Math:
• Applied Calculus
• Finite Math
• Algebra I
• Algebra II
• Finite Algebra (III)
• College Algebra
• Geometry
• College Geometry
• Discrete Structures
• Linear Algebra
• Abstract Algebra
• Graph Theory
-Psychology:
• AP Psychology
• Cognitive Behavioral Therapy
• Neuro-Linguistic Programming
• Psychotherapy