Download Applied Informatics - Master of Science in Informatics

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Master of Science in Applied Informatics
Applied Informatics
The Master of Science in Applied Informatics is jointly offered by
the Faculty of Informatics of the Università della Svizzera italiana
and the Department of Innovative Technologies of the University
of Applied Sciences of Southern Switzerland.
Goals and Contents
The Master of Science in Applied Informatics provides students
with an in-depth perspective on advanced topics of computer
systems. The Master combines the study of fundamental aspects
of computer systems with a hands-on approach, preparing
professionals for successfully pursuing a career in research and
development.
The programme allows students to deepen their knowledge in
many directions: students learn how to analyse, select and evaluate computer programmes with the help of a strong theoretical
background, which includes notion of computational complexity
and formal methods like abstract algebra and logic. In parallel
they acquire abilities to understand, design, simulate and optimise intelligent and complex systems where important competences include the capability to learn and to adapt to unpredictable and dynamic situations. Students learn how to design, test
and analyse software programmes providing the required level
of software quality using the appropriate software engineering
148
methodologies. Fundamental aspects of students’ knowledge
include the capability to design and use advanced data management systems, to operate modern operating systems and to use
advanced concepts of modern programming languages. During
the final year, in parallel with their thesis, students acquire skills
in business and management where they understand organisational structures and learn how to manage projects and teams.
Students graduating from this programme develop the ability
to work on applied problems. In their future careers they will
use their knowledge in interdisciplinary areas with enhanced
analytical and technical skills and with the ability to develop
sophisticated solutions and to manage teams of people in challenging tasks.
Teaching
Teaching emphasises close contact between students and staff.
Professors are pursuing research on a variety of topics and are
active participants in Swiss and international research projects
and networks. Visiting professors from renowned universities
complement the top-quality teaching.
Organisation
The programme stretches over three semesters (90 ECTS credits).
Typically, in the first semester students attend classes in order to
acquire the basic knowledge. The second semester is dedicated
to core courses. Students are required to take core courses that
regard specific applied informatics topics and methodology. The
third semester is dedicated to the Master’s project and to acquire
basic knowledge in business and management.
149
Master of Science in Applied Informatics
6
6
6
6
6
Core Courses (24 ECTS)
Computer Systems
Modelling, Simulation and Optimisation
Software Quality
Advanced Data Management Systems
6
6
6
6
3
3
Sem. 2
Basic Courses (30 ECTS)
Algorithms and Complexity
Intelligent Systems
Software Engineering
Programming Languages
Combinatorics
Laboratories (6 ECTS)
Computer Systems Lab
Modelling, Simulation and Optimisation Lab
Sem. 3
Sem. 1
Study Programme*
Business and Management
Project
6
24
Total ECTS
90
* Slight changes in the study programme may occur.
Master of Science in Applied Informatics
Course Descriptions
Basic Courses
Algorithms and Complexity
Algorithms are fundamental to computer science and software
engineering. An important part of computing is the ability to
select algorithms appropriate to particular purposes and to
apply them, or recognizing the possibility that no suitable algorithm may exist. Efficiency is a pervasive theme throughout this
area. The goal of this course is to develop algorithm design
techniques by drawing on problems from across many areas of
computer science and related fields (systems and network, computer vision, operations research, computational biology, data
mining, etc…). The notion of computational intractability, and
NP-completeness in particular, plays an important role. Some of
the time, an interesting problem arising in an application area
will be amenable to an efficient solution, and some of the time
it will be provably NP-complete; in order to fully address a new
algorithmic problem, one should be able to explore both of these
options with equal familiarity. The discovery that a problem is
NP-complete should not be taken as the end of the story, but
as an invitation to begin looking for approximation algorithms,
heuristic local search techniques, or tractable special cases. We
include extensive coverage of these approaches.
Contents: Analysis of algorithms. Algorithm design for tractable problems: maximum-flow, linear programming. Survey of
NP-complete problems, reductions. Approximation algorithm
design for intractable problems: approximation algorithms
150
with provable bounds, local search, randomized algorithms.
Applications: scheduling, bin-packing, minimum spanning tree,
bipartite matching, clustering, vertex cover, traveling salesman,
Steiner trees, etc…
Intelligent Systems
Intelligent Systems solutions arise in a wide range of modern
applications: web search, robotics & embedded computing, pattern recognition, scientific computing, scheduling, optimisation,
game playing, etc. In the theoretical part of this course, foundations of machine learning and computational intelligence will
be covered. In the practically oriented part examples of learning
systems will be covered.
Contents: Elements of statistical machine learning; probabilistic
data models and maximum likelihood estimate; neural networks;
decision trees; support vector machines; reinforcement learning;
unsupervised learning techniques; evolutionary computation.
This course will provide the basis for designing intelligent systems and understanding their behavior.
Software Engineering
Software engineering is the discipline of building software in a
methodical way to ensure that the software satisfies its users’
needs and is maintainable. This class teaches the student to analyze and document user requirements and gives an overview of
the software engineering tools, techniques, and processes.
Contents: Historical Background and Economics; Types of
Software; Software Process; Software Requirements; Modeling
Master of Science in Applied Informatics
and Specification; Architecture and Design; Validation and
Verification; Maintenance and Evolution; Development
Methodologies; Software Tools and Environments; Componentbased Development; Test-Driven Development; Open-source
Development; Software Configuration Management; Software
Quality; Software Cost Estimation; Software Teams; Project
Management.
Programming Languages
Alan Perlis observed in 1969: “A good programming language
is a conceptual universe for thinking about programming.”
Programming languages provide the abstractions, organizing
principles, and control structures that programmers use to write
good programmes. This course will give students a detailed and
in-depth understanding of modern programming languages. It
will show the motivation behind language designs, the strengths
and weaknesses of different language designs, and specific
implementation issues. Studying these issues will enable students
to (1) make the most effective use of language features in the
languages they already use, (2) learn new languages with relative
ease, and (3) evaluate the suitability of a language for a given
task. Case studies from a wide variety of languages, including
both languages in common use and languages that are research
prototypes will be used. The course covers the semantic foundations and paradigms of modern programming languages.
The concepts covered include type systems, polymorphism, type
inference, closures, exceptions, continuations, garbage collection, and new trends in programming languages. The course will
present the material at three levels. It will (1) introduce the above
151
fundamental concepts, (2) discuss how these concepts appear
in languages such as Java, Ada, SML, Smalltalk, and C++, and
(3) discuss the implications of how languages implement these
concepts for compilers and run-time systems.
Combinatorics
This is an introduction to combinatorics, a branch of mathematics with important connections to computer science, probability,
statistics and algebra. Historically, its roots are in recreational
mathematical puzzles and games. Combinatorics is generally
concerned with two types of questions: 1) does a particular kind
of arrangement or pattern exist?, and if so 2) how many ways
can it be made? Often the answer to these questions require
studying the structures and properties of the desired arrangement, and a goal is typically to find an optimal one in some
prescribed sense. In short, combinatorics is concerned with the
existence, enumeration, analysis and optimization of discrete
structures.
This course will involve lots of problem solving, and it will also
involve the reading and writing of mathematically precise proofs.
In fact, even more than mastering the course content, the development of these skills is the primary goal of the course.
Contents: Numbers and counting, partitions and permutations,
graphs, trees, the pigeonhole principle, the inclusion-exclusion
principle, systems of distinct representatives, latin squares,
graph coloring, Ramsey theory, posets, chains and antichains,
the probabilistic proof method, extremal combinatorics, permanents, generating functions, Polya counting.
Master of Science in Applied Informatics
Core Courses
Computer Systems
The goal of this course is to expose students to important topics related to computer systems. The course will cover a broad
range of advanced computer systems and provide students with
different perspectives on key concepts. It will survey operating
systems, database systems, and internet infrastructure systems.
The course contents include: Threads and scheduling; Transaction
isolation concepts; Concurrency control techniques; Volatile
memory (e.g., virtual memory, in-memory database systems,
transactional memory); Storage management (e.g., storage technologies, file systems); Case studies (e.g., UNIX, Mach, System R,
Berkeley DB).
Computer Systems Lab
In this course, students will develop a systems project, which may
include, for example, understanding part of an OS, a DBMS, or a
middleware service; extending one of these systems; or analyzing their performance. This course complements the Computer
Systems course and gives students the opportunity to understand the implications of some techniques through a hands-on
approach.
Modelling, Simulation and Optimisation
Modelling, simulation and optimisation are fundamental to solving problems in a number of fields of science, technology and
life. Students will learn to design, implement, simulate, and optimise models of dynamic systems. Simulation, the exploration of
152
dynamic behavior of models in time and space, is discussed for
both continuous and discrete-event systems. Simulating a model
allows the evaluation of indicators of the performance of the
modelled system, improving our understanding of its behavior
and dynamic complexity. Optimisation techniques allow exploring the space of the system trajectories generated by simulation
in order to find the best way of managing the system under
study.
Contents
The system dynamics approach to modelling: causal-loop diagrams and stocks and flows. Introduction to systems: definition
and properties, linear systems, equilibria and stability. Simulation
of continuous systems, validation and sensitivity. Control and
optimisation of continuous systems. Notes on stochastic modelling: Markov chains and queuing networks. Discrete event systems: simulation, input and output data analysis, experimental
design and the response surface methodology; optimisation via
simulation; verification validation and testing.
Modelling, Simulation and Optimisation Lab
The modelling, simulation and optimisation lab is a set of experimental lectures during which the concepts introduced in the
course are further developed and put into practice. Examples
and small experiments will also be presented during the course
lectures, but in the lab the students will have more time to "get
their hands dirty" and to solve more complex problems.
Two software tools will be presented and used for the lab
courses: MATLAB, a multi-purpose numerical computing environment, and AnyLogic, a multi-method simulation platform
Master of Science in Applied Informatics
that incorporates state-based, dynamic and agent-based simulation methods.
During the lab courses, the software tools will be presented, and
students will use them for solving exercises to in order to become
comfortable with them and the underlying mathematics. A set
of different modelling assignments will be solved during the lab
courses, during which students will build real-world models of
different types (causal loop diagrams, -system dynamics models,
discrete event simulations).
Software Quality
The main goal of this course is to understand and master the
different aspect of software quality. Students will learn quality
goals and tradeoff, different testing and analysis techniques, and
how to plan and monitor the quality process.
The course assumes basic knowledge of software test and
analysis problems and techniques, classic functional testing
techniques, classic structural testing techniques, inspection techniques, and classic testing tools.
The course presents a detailed framework of software quality,
describes core techniques, discusses problems and solutions, and
provides a detailed description of the software quality process.
Contents: Quality activities, tradeoff and limitations; Basic
principles; Finite models; Dependence and data flow models;
Symbolic execution and proof of properties; Finite state verification; Data flow testing; Model based testing; Testing object
oriented software; Fault based testing; Test execution (scaffolding and oracles); Programme analysis; Planning and monitoring
the quality process; Integration and component-based software
153
testing; Acceptance and System testing; Regression testing;
Documentation and standards; Test automation.
Advanced Data Management Systems
The objectives of the course are: Design database systems based
on different data models and technologies; Understand and
design data warehouse architectures; Design and develop data
infrastructure for Business Intelligence applications; Acquire
design methodologies based on different data models paradigm.
Learn data analysis and data mining techniques.
The course includes the following topics: Object databases;
Object relational databases; XML and databases; Design and
implementation of Data warehouses; Data Mining; New paradigms in database design and development; Infrastructure for
high availability data systems.
Business and Management
The class has two separate but connected parts where the aim
of the first part, understanding organisations, is to provide an
overview of organisations from the interaction of people and
groups to a more macro understanding of the role and function
of organisations. The second part introduces participants to the
organisation and structure of project magement as well as the
methods and tools used to create, monitor and evaluate them.
Contents: Principles of organisational behaviour; Individuals
and organisations; The working and function of groups;
Organisational structures; The role of organisations; Functions
of organisations; The organisation, stages and processes of
154
Master of Science in Applied Informatics
a project; Tools and techniques for managing project teams;
Organisational Breakdown Structure and Work Breakdown
Structure; Standard tools for project management; Project
evaluation; PERT (Programme Evaluation and Review Technique)/
CPM (Critical Path Method); Critical Chain Planning; Project
deliverables; Project monitoring and change; Risk management.
Project
The Master’s project is an academic piece of work, an original
contribution to the body of applied informatics. Such a contribution can be theoretical or experimental, but always builds on
a solid research effort, and on the use of appropriate concepts,
methods, and tools acquired during the programme. Faculty
members support and coach the participants during their work
with the Master’s project. This can be started during the second
semester, and should be completed by the end of the third
semester of the programme. The project may be done in collaboration with an industrial company.
General Information
Language
This programme is entirely held in English.
Admission Requirements
The formal requirement for admission is a Bachelor’s degree (or
equivalent) from a recognised academic institution in Computer
Science, Mathematics, Physics, Electrical Engineering, or related
disciplines.
Students with a Bachelor degree of a Swiss university of applied
science are admitted without debits if the final grade is within A
and B. Good knowledge of English is required.
Contacts
Università della Svizzera italiana, USI
Study Advisory Service
Tel. +41 58 666 4795
[email protected]
For further information:
www.mapi.unisi.ch