COMP-3356 Details

COMP 3356 - C/C++ Programming

Course description

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.)
Previous
Next