Courses Detail Information

ECE2800J – Programming and Introductory Data Structures


Weikang Qian;Paul Weng

Credits: 4 credits

Pre-requisites: ENGR1010J Obtained Credit||ENGR1510J Obtained Credit


Techniques for algorithm development and effective programming; Testing and program correctness; Program language syntax and static and runtime semantics; Procedure abstraction, recursion, and parameter passing methods; Abstract data type, inheritance, template, and polymorphism; Structured data types, pointers, arrays, linked data structures, stacks, and queues.

Course Topics:

  1. Linux basics and compiling program on Linux
  2. Review of C++ Basics, such as array, pointer, etc.
  3. Procedural abstraction, function call mechanism, and recursion
  4. Function pointer
  5. Enum
  6. Program arguments
  7. Testing
  8. Debugging
  9. IO
  10. Exception
  11. Abstract data type and class
  12. Inheritance and virtual function
  13. Interface (i.e., abstract base class)
  14. Representation invariant
  15. Dynamic memory allocation and dynamic arrays
  16. Overloaded constructor, destructor, copy constructor, and overloaded assignment operator
  17. Operator overloading and friend mechanism
  18. Linked list (including linked list traversal)
  19. Stack and queue
  20. Polymorphism, template, and STL