Zeinalipour > Courses > EPL232 > Labs

Lab Schedule

Lab Description Material
01 Tools Moodle, Cygwin, Eclipse CDT, GCC Basics
Exercises Basic Programs & Fundamentals (operators, conditionals)
02 Tools Google style guide (naming, formatting, comments), Using Doxygen to generate javadoc style comments for C programs
Exercises Fundamentals (files, loops, functions) through examples with string.h
03 Exercises Fundamentals (tables, pointers) with emphasis on pointers 03
04 Tools Eclipse CDT and Debugging (manual + example project)
Exercises Re-implement string.h library using pointers (string length, string copy, string concat, substring, string compare)
05 Exercises Dynamic allocation, structs, enum, union (implementing a shape, a sparse matrix data structures, small database)
06 Exercises Stacks and Queues to solve different problems (Josephus problem, Balancing parentheses)
07 Exercises Multiple file organization, makefile (infix to postfix expression, Balancing parentheses)

Exercises Macros, conditional compilation, pre-processor directives
Linked lists operations: length(), print(), next(), previous(), retrieve(), locate(), insert(), delete()

09 Tools Dynamic code analysis: Valgrind, gprof 09
10 Exercises Binary files, hexdump command, binary files and linked lists, __attribute__((packet))
Low-level programming: Bit twiddling hacks, compute the sign of an integer, detect if 2 integers have opposite signs, swap bytes of an short
11 Exercises Unix commands 11
12 AS4 in-lab grading
13 Exercises Unix commands 12