Welcome to the Advanced Programming Cycle of courses!
- Functional Style for the Modern Programmer – 8 – 29 Nov, 2013
- Fundamental Algorithms – 10 – 31 Jan, 2014
- Geometric Computing & Algorithms – 7 – 28 Feb, 2014
Functional Style for the Modern Programmer – Functional programming is a set of programming paradigms enabling high expressivity and reliability of software through enhanced use of functions. It is becoming more and more popular through the proliferation of programming languages that are, by design, either functional (e.g. Haskell, Erlang, Standard ML, F#), or hybrid with strong functional subset (e.g. Lisp, Scheme, Scala, Clojure), or at least support a functional style (JavaScript, Lua, D, Go, etc.). Classic languages, such as C++ and C#, have also acquired functional programming capabilities. The same is soon to happen to Java. This course introduces to the style and techniques of modern functional programming and how it can be practiced in the programming languages of today.
Fundamental Algorithms – Algorithms are programmer’s most reliable and lasting technology. No matter how fast and capable the computers, algorithm efficiency remains relevant. However rich component libraries we may have, programming is still about understanding and implementing algorithms. No software architecture or engineering is a replacement for algorithm literacy. This course presents some of the most fundamental algorithms for generation, traversal and searching within combinatorial structures such as sets, sequences (and strings), binary and general trees, and graphs. Topics also include finding optimal sub-structures and text parsing. Practical issues of implementing such algorithms within modern programming environments are discussed.
Geometric Computing & Algorithms – Geometric computing is a somewhat less known part of algorithmics, but one of increasing importance, two notable areas of application being games and CAD systems programming. This course presents the fundamentals of geometric computing in two stages. First, an original mathematical notation and apparatus are presented for performing basic geometric computations of general use. These are used throughout the second stage where a number of algorithms is discussed, such as for point location, partitioning, finding intersections, and constructing convex hulls of various kinds. Alongside, several data structures, specific to geometric applications are brought to attention.
Ideal for: Advanced programmers, Medium to Senior Developers
Instructor: The courses will be delivered by Boyko Bantchev, Institute of Mathematics and Informatics, Bulgarian Academy of Sciences. Mr. Bantchev has more than 20 years experience in teaching various programming-related subjects, including programming languages, algorithmics, computational geometry and computer graphics.
Upon successful completion of a course attendees will receive a certificate from the European Software Institute CEE.
Confirm your interest to book your place or contact us for any questions concerning registration and further details at hristina (at) esicenter (dot) bg or +359 2 4899740; +359 897 906 431 – Hristina Nikolova (ESI CEE Training Manager)