Zeinalipour > Courses > EPL232

EPL232: Programming Techniques and Tools

Instructor: Demetris Zeinalipour »
Type: Undergraduate (Compulsory)
Prerequisite: EPL131 - Programming Principles I
When: Tue./Fri., 09:00-10:30 (ΧΩΔ01 #104) and 10:30–12:00 (ΧΩΔ02 #B204)

Recitations: Wed.: 09:00-10:00 (ΧΩΔ02-014) and 10:00-11:00 (ΧΩΔ01 #103)
Laboratory: Tue.: 2 hours, Labs A-E between 14:00–20:00 in ΘΕΕ01 #Β103 and ΘΕΕ01 103 (check your enrollment).
Teaching Assistant: Pavlos Antoniou (Labs: A,B,E) » and Pyrros Bratskas (Labs: C,D) »

*** For the 2019/2020 EPL232 offering please click here ***


Overview

The course teaches intermediate and advanced programming concepts, techniques and tools through a language that compiles to machine code. The course familiarizes the students with advanced programming constructs utilized for handling memory and files. Advanced topics in compilation, debugging, documentation and optimization of software. Methodological aspects in developing large-scale system software that addresses complex problems. Basic commands for programmers in the UNIX operating system.


Content

i) Introduction to C for Programmers: types x86/x64, loops, selections, expressions, arrays, functions, IO, basic program organization, ii) Advanced C programming constructs: program anatomy and processes, memory and addresses (pointers, pointers and arrays, strings and examples), structures, unions and enumerations. Linear and non-linear programming data structures (dynamic memory allocation, lists, queues, doubly-linked lists, trees, applications and examples). iii) Advanced Compilation Topics and Tools: preprocessor directives, compiling multiple files with makefiles, static (.a) and dynamic (.so) linking of object files (.o), error handling (assert.h), static and dynamic code analysis (valgrind and gprof). iv) low-level programming (binary operators and examples, binary files and hexdump). v) Basic commands for programmers in the UNIX operating system: file system, redirection and pipes, permissions and basic filters.
Syllabus (in greek) »


News

  • AS5 (UNIX for Programmers) has been posted!
  • FINAL December 17, 2018 (Monday), 16:30-19:30, ΧΩΔ02-B205.
  • AS4 (Sound Processing) has been posted!
  • MIDTERM October 23, 2018 (Tuesday), 10:30-12:00, ΕΠΛ232.1: ΧΩΔ02-113 and ΕΠΛ232.2: ΧΩΔ02-#B204!
  • AS3 (Dynamic Data Structures + Artificial Intelligence) has been posted!
  • AS2 (Tables, Pointers, Strings) has been posted!
  • AS1 (KenKen Puzzle Solver) has been posted!
  • Moodle Sign-up now using code handed out in class!
  • Welcome to EPL232!

Schedule »


Laboratory »


Assignments

AS1 Intermediate C | Puzzle Solver | Due: 21/9 | PDF | ZIP

AS2 Tables, Pointers, Strings | Due: 9/10 | PDF | ZIP

AS3 Dynamic Structures | N-Shift Solver | Due: 29/10 | PDF | ZIP

AS4 Group Project (Open Source, SVN, Bitwise, Binary Files) | Sound Processing Engine | Due: 22/11 | PDF | ZIP

AS5 UNIX for Programmers | Due: 30/11 | PDF


Competitions »


Text Book


Links »