Advanced hardware-oriented C and Assembly Language Programming
General Information- Advanced Elective Module (total of 2 + 2 SWS, 3 + 3 ECTS, see below)
- Fraunhofer IAIS Initiative "Roberta - Lernen mit Robotern" -
- Limited number of seats - entry test must be passed!
- Please carefully read all notes below!
Schedule Spring Term 2020
- Weekly appointments, Monday 11:30 - 13:00 and Thursday 09:45 - 11:15
- Timeslots might still be subject to change.
- Locations T2.2.05 and Computer Science Lab T2.2.07
Requirements and Registration
- This is an advanced software development project for students who enjoy programming.
- Advanced skills in programming, computer science, and calculus are required.
- Your grades in the related lectures should range from good (2) to very good (1).
- In
this course you will do an extensive amount of programming, and you
must be able to independently familiarize yourself with new topics.
- Please note that the official course language is English.
- Prior registration and the successful completion of an entry test are mandatory.
- If you are interested in this course, please send an early email.
Workload:
- All individual elective courses at Pforzheim University are 2 SWS / 3 ECTS.
- This course can only be taken in combination with "Advanced Software-Development Project Implementation".
- The total workload therefore amounts to 4 SWS and 6 ECTS.
- The 6 ECTS are equivalent to 180 hours of extensive programming.
Teaching Objectives
- There are usually many different ways to correctly compute a solution to a given problem, or to write a program that solves a given task.
- However, programs can greatly differ in how quickly they compute a solution, and in how much memory they need to do this.
- We are not talking about the speed of the CPU that executes the code, but about the number of computational steps of the underlying algorithm.
- Are you satisfied with your code as soon as "it does what it is supposed to do"? Then this course is not for you.
- Do you not care if your code does unnecessary computations because "nobody will notice since the processor is fast enough anyway"? Then this course is not for you.
- Are you indifferent to whether your code needs more runtime memory than necessary, because "your machine has enough gigabytes anyway"? Then this course is not for you.
- Or do you want your program to run as fast as possible, independently of the machine it is running on?
- And do you want your program to also run on machines with just a minimum amount of memory?
- And most important, do you enjoy the creativity of being a programmer?
- Then read on, because this might be the place for you...
Course Topics
- Advanced knowledge of the C programming language
- Advanced C programming skills
- Inner workings of a C compiler
- Assembly language programming
- Deeper understanding of how C is mapped to assembly language
- Advanced machine oriented C programming techniques
- Design and implementation of runtime efficient algorithms
- Design of task specific memory efficient data structures
- Low-level bit twiddling hacks
- Video game design and video game development techniques
- All these are highly advanced programming topics which are far from easy.
So...
- If you want to avoid an extremely difficult lecture...
- If you do not want to work very, very hard...
- If you are not interested
in an extraordinary programming challenge...
- If you do not like to embark
on a mission of exploration...
- ... THEN BY NO MEANS NEVER EVER FOLLOW THIS LINK!!!
Latest modification on 01/10/2020, 16:45
|