Software Engineering and Service Design: courses in ITMO University Igor Buzhinsky igor.buzhinsky@gmail.com Computer Technologies Department Department of Computer Science and Information Systems December 1, 2014 Software Engineering and Service Design: courses in ITMO University December 1, 2014 1 / 25
Introduction: about the programme Software Engineering and Service Design Double degree master programme One thesis, two degree certificates Two supervisors (from ITMO and JYU) Students from JYU are offered to complete an autumn semester of their second year of studies in ITMO Courses are taught in English Software Engineering and Service Design: courses in ITMO University December 1, 2014 2 / 25
Introduction: about the studies Courses: Advanced software engineering More technical than in JYU Some programming skills (e.g. Java, C++) are required Knowledge of data structures (e.g. binary search trees) is appreciated Other notes: More attention on what you do, less attention on written reports The grading system is similar (5 = A, 4 = B,...) Software Engineering and Service Design: courses in ITMO University December 1, 2014 3 / 25
Course list 34 ECTS / one semester (fall 2015): Modern Information Theory, 6 ECTS Machine Learning, 5 ECTS Genetic and Evolutionary Computation, 4 ECTS Technologies and Instruments of Language Processors Development, 5 ECTS Advanced Data Structures, 4 ECTS Research Seminar, 7 ECTS Practice, 3 ECTS Concrete list of courses might change, elective courses might appear Software Engineering and Service Design: courses in ITMO University December 1, 2014 4 / 25
Modern Information Theory, 6 ECTS Information theory: basic concepts (e.g. entropy, information, channels, errors) Effective methods of data compression and coding (e.g. how modern archivers work) Lectures (much theory, e.g. theorems), practice and homework (problems), exam Software Engineering and Service Design: courses in ITMO University December 1, 2014 5 / 25
Modern Information Theory: information transmission Noise model: binary symmetric channel Software Engineering and Service Design: courses in ITMO University December 1, 2014 6 / 25
Modern Information Theory: Huffman coding A Huffman code tree for a message with letters a..f Software Engineering and Service Design: courses in ITMO University December 1, 2014 7 / 25
Machine Learning, 5 ECTS Weak artificial intelligence Algorithms for working with structured data (mostly numerical) Prediction: classification and regression Clustering, dimensionality reduction, feature filtering... Lectures (much theory) and practice Software Engineering and Service Design: courses in ITMO University December 1, 2014 8 / 25
Machine Learning: datasets Sample # Name Population Area, km 2 1 Finland 5 470 820 338 424 2 New Zealand 4 537 081 268 021 3 USA 319 309 000 9 857 306............ How can the data be used? Predict specific features (e.g. population happiness) based on their knowledge for some countries Gain additional knowledge by clustering the countries Software Engineering and Service Design: courses in ITMO University December 1, 2014 9 / 25
Machine Learning: clustering Two-dimensional (in general, many-dimensional) data, e.g. population and area of countries Clustering problem: find similar group of data points This example: three main clusters (https://commons.wikimedia.org/wiki/file%3aslink-gaussian-data.svg) Software Engineering and Service Design: courses in ITMO University December 1, 2014 10 / 25
Machine Learning: classification (Random forests) A decison tree for data with two variables, u and v, which separated the data into 2 classes A random forest is comprised of a number of such trees Software Engineering and Service Design: courses in ITMO University December 1, 2014 11 / 25
Genetic and Evolutionary Computation, 4 ECTS About evolutionary computation, a general optimization technique which uses ideas from natural evolution A theoretical course, almost only lectures (and a test in the end) Possibility to make presentations on seminars based on recent research papers (optional, will increase the mark) Possibility to solve open research problems (optional, will increase the mark) Software Engineering and Service Design: courses in ITMO University December 1, 2014 12 / 25
Genetic and Evolutionary Computation: general idea General optimization methodology for both discrete and continuous problems One needs to define a representation of the solution, or individual E.g. a bit string: 010011 A fitness function evaluates the individuals E.g. the number of ones in a bit string Mutation is a way to modify solutions: 010011 000011 Analysis of some algorithms on simple problems Software Engineering and Service Design: courses in ITMO University December 1, 2014 13 / 25
Genetic and Evolutionary Computation: algorithm example Random mutation hill climber x random() repeat (e.g. until the maximum fitness value is reached): x mutate(x) x if f (x ) > f (x) then x else x x'' x x' Software Engineering and Service Design: courses in ITMO University December 1, 2014 14 / 25
Genetic and Evolutionary Computation: multiobjective optimization Several criteria should be optimized Pareto frontier: the set of best solutions which do not dominate each other Algorithms try to approximate it Software Engineering and Service Design: courses in ITMO University December 1, 2014 15 / 25
Technologies and Instruments of Language Processors Development, 5 ECTS How to design a compiler or and interpreter? Formal grammars, abstract syntax trees, control flow... How to parse source code for a defined language, transform it to byte code, execute the byte code Lectures, coursework (design a compiler / interpreter), exam Software Engineering and Service Design: courses in ITMO University December 1, 2014 16 / 25
Technologies and Instruments of Language Processors Development: abstract syntax tree Parse tree Nodes might have attributes (e.g. operator type, variable name, value of a constant) Using the tree, one can construct symbol tables and even generate assembly code Software Engineering and Service Design: courses in ITMO University December 1, 2014 17 / 25
Technologies and Instruments of Language Processors Development: example of an ANTLR grammar program returns[code code] : nl* stmt[$code, null] (new_line stmt[$code, null])* nl* EOF ; stmt [Code code, LabelPair lp] : stmt_list[code, lp] s_if[code, lp] s_while[code] s_for[code] s_def[code] ; simple_stmt [Code code, LabelPair lp] : BREAK CONTINUE PASS ret[code] assignment[code] adjustment[code] ; stmt_list [Code code, LabelPair lp] : simple_stmt[code, lp] (SEMICOLON simple_stmt[code, lp])* SEMICOLON? ; Software Engineering and Service Design: courses in ITMO University December 1, 2014 18 / 25
Advanced Data Structures, 4 ECTS Persistent Data Structures Geometrical Data Structures for Local Search External Memory Data Structures Advanced Tree and Graph Data Structures Lectures and a coursework Software Engineering and Service Design: courses in ITMO University December 1, 2014 19 / 25
Advanced Data Structures: B-tree A tree with sorted data An extension of usual binary search trees: nodes can have multiple children Can be used when each memory access is time consuming Applications: databases and file systems (e.g. btrfs) Software Engineering and Service Design: courses in ITMO University December 1, 2014 20 / 25
Research Seminar, 7 ECTS A new course where students can present their advances about research on Master s theses Is organized by the Computer Technologies laboratory Thesis themes can be provided by ITMO University. Software Engineering and Service Design: courses in ITMO University December 1, 2014 21 / 25
Practice, 3 ECTS 2 options: Practice in an IT company (e.g. as a software developer or tester) Work in the Computer Technologies laboratory (e.g. on a Master s thesis) Software Engineering and Service Design: courses in ITMO University December 1, 2014 22 / 25
SESD on Web: University of Jyväskylä https://goo.gl/womuc5 Software Engineering and Service Design: courses in ITMO University December 1, 2014 23 / 25
SESD on Web: ITMO University https://goo.gl/fe3us7 Software Engineering and Service Design: courses in ITMO University December 1, 2014 24 / 25
Questions Thank you for your attention! Questions? Software Engineering and Service Design: courses in ITMO University Igor Buzhinsky igor.buzhinsky@gmail.com Software Engineering and Service Design: courses in ITMO University December 1, 2014 25 / 25