COMP 3356 - C/C++ Programming
This course provides an introduction to programming in C, designed for students with some Python programming (COMP-3005 and COMP-3006, ideally). Topics covered include C based:
- Source to binary, compilation, assembling, linking
- Data types and arithmetic operations
- Program input and output
- Logical operators and conditional expressions
- Iterative constructs (loops with conditionals)
- Functions and argument passing
- Nested loops and recursion
- References and pointers (pass by reference)
- Memory allocation - the stack and the heap
- Arrays and lists, C strings
- Structures and basic classes
- File based input/output
- Intro to debugging programs
- Common programming security issues
Course learning objectives
After completing this course, successful students will be able to:
- Take a concrete programming problem statement and translate it into a program to solve the problem.
- Create a source file from scratch, compile it, and execute it.
- Identify and implement program constructs to concisely solve the problem (loops, logical operations and arithmetic).
- Know how to allocate and de-allocate computer memory programmatically, and where that memory is stored.
- Use correct types for variables and comprehend their different representations.
- Utilize built-in types for storing data items (e.g., C-style arrays and lists)
- Build simple data structures (structs and classes) for organizing more complex variables.
- Be able to read and write input and output to and from a program, either using user input (stdin/stdout) or files.
- Understand safe/unsafe functions and common types of programming errors (buffer over/underflow, numerical overflow, format string errors, double-free, use-after-free, etc.)