COMP-4356 Details
COMP 4356 Introductory C/C++ Programming
Course description
This course provides an introduction to programming in C, designed for students with some Python programming (COMP-4005 and COMP-4006, 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
Upon successful completion of this course, students will know how 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 internal (memory) representations.
- Utilize built-in types for storing data items (e.g., C-style arrays and lists)
- Build simple data structures (e.g., utilizing structs) for organizing more complex variables.
- Be able to examine the binary dump of an executable to determine characteristics of how it was linked and to what it was linked.
- Identify common sources of programming errors leading to vulnerabilities and exploits.
- Read/write file and console I/O.