Session 1: Extended Window Manager using xlib
Speaker: Rengaraj from Zilogic Systems
Rengaraj started the session by giving overview of EWMH (Extended Window Manager). Explained about the architecture and sequence of function flow to handle any window of an application. To facilitate power of EWMH he put sample program using some of the EWMH APIs to control windows that were open.
Followed by Rengaraj session on EWMH audience discussed usage of it in real time. One of them used it at client place to avoid system in single screen for a longer duration. He used EWMH to switch to various screen in random manner.
Session 2: Analysis of Algorithm
Ashok started his note with need for analysis for algorithm and various parameters like time, space complexities to be considered in analysis of algorithm. Sequence of his session segment was on theory followed by practical working of theory and at the end with evaluation of result. Explain various algorithm complexity measuring concepts like Big O, Small O, Theta, Big Omega, Small Omega. Their usefulness, application need were explained in detail. It was widely accepted that
Big O and Small O were used in measuring worst case scenarios
Big and Small Omega were used in measuring best case scenarios
Fibonacci series was taken as an example program to evaluate algorithm. Two implementations were taken for evaluation Iterative and Recursive were taken as example to evaluate. Program was return in python while execution it was observed that iterative method was linearly complex where as recursive was exponentially complex. In a larger set, Recursive took twice the time of iterative method.
Session 3: Experimental Mathematics with Python and Sage
Speaker: Professor Amritanshu Prasad
Professor Amritanshu started the session with full of enthusiasm. Being an academician in math, his session was focused on how sage library simplified some of the complex computation were made easy. He used problem of identifying number of odd numbers in a binomial coefficient. The sequence of numbers followed a pattern. Professor explained the pattern formation using pascal's triangle. Relation of reoccurrences in pascal's triangle were explained well.
Integer partition was analyzed number of ways an integer can be split for e.g., 5 can be split by as shown below
5 = 5 = 4 + 1 = 3 + 2 = 3 + 1 + 1 = 2 + 2 + 1 = 2 + 1 + 1 + 1 = 1 + 1 + 1 + 1 + 1
Occurrences of odd numbers were taken for analysis and its been observed that occurrences appeared in pattern Power of 2.
End of it we observed how sage library was used in computing mathematical problems with ease. Material can be downloaded from the link http://www.imsc.res.in/~amri/experimental_math.pdf
Session 4: Need for Object oriented programing
Speaker: Vijay Kumar
Vijay took an example of implementing circular buffer to explain the need for Object orientation programing.
First he implemented one circular buffer using simple function.
Second a need for 2nd buffer came to existence. This was solved using
dictionary in python. Third though usage of dictionary solved the
reuse to an extent. Readability, maintenance and extendibility were
observed tough to take care. This brought usage of classes to
implement circular buffer. As an extension of class implementation
constructor / initialization of objects were detailed using
function. Followed by it implicit presence of object instance were
shown using self inside class functions.
Code to vijay session can be found in https://github.com/zilogic-systems/workshop-sessions/tree/master/python-oop
Porting of SQL to no SQL DBs using mongo DB was explained by one of the audience
http://www.unnati.xyz and datascience workshop scheduled in Bangalore was explained by Shreyas.