Learning outcomes
Dutch-taught Master of Computer Science: Software Engineering
1. Analysis for large-scale informatics projects. Identifying tasks that qualify for automation, understanding underlying business processes, determining the corresponding consumer needs. This requires the necessary knowledge for fluent communication with people working in other disciplines.
2. Design of large-scale informatics systems. Abstraction and decomposition of the specific problem to arrive at a feasible solution. Identifying components that could contribute to a solution (e.g. software library, type of network, kind of database). Documenting the chosen solutions on different levels of abstraction.
3. Restructuring existing informatics systems. Identifying problematic components, selecting solution strategies, implementing the necessary adjustments without compromising the existing system’s functioning.
4. Quality control. Planning the necessary check-ups while carrying out informatics projects in order to attain the previously specified quality standards (as to reliability, practicality of maintenance, safety …). Drawing lessons from informatics projects that have been carried out, in order to optimize quality norms wherever necessary.
5. Selecting techniques, methods, languages, architectures, taking into account their inherent limitations and the fact that information on concrete solutions is usually commercially coloured. Making strategic decisions in this respect: e.g. how do we protect our network? What type of database? What role for formal specifications? Scientific motivation of the decisions that have been made.
6. Reporting the progress and status of computer science projects to clients (meaning non-information scientists) and experts from other fields, both orally and in writing.
7. Leading a team of information scientists, including (a) assessment of the necessary means (time, budget, instruments, manpower, competences), (b) division of tasks on the basis of technical competences, (c) time planning of the tasks, (d) following and adjusting the planning.
8. Society. Has a sense of responsibility. Makes connections between social trends and developments in computer science and considers the consequences of actions.
9. Profundity. Has theoretical and practical experiences with instruments, techniques and methods used in scientific research of a specific subfield of information sciences.
10. Research and development in a product-oriented environment. This means (a) being able to set up experiments to determine if certain techniques are usable for a company; (b) recognising opportunities to improve products and production processes; (c) estimate costs/benefits of new techniques and methods; (d) using new techniques to gain a strategic advantage over the competition.
11. Fundamental research. Have the necessary skills needed to independently start scientific research, for instance in order to obtain a PhD. This means (a) having insight in current research questions within a subfield of Information Sciences; (b) being able to see the implications of recent research results; (c) being able to independently apply publicised results or techniques in a new context.
12. Modeling. Using models to descibe and quantify all aspect of a computer system. Having an overview of the most common modeling formalisms and their main characteristics (pro and cons, specific field of application, …). Having applied some of them in both the design of a new system and the analysis or improvement of an existing system. Using these models for communication with people active in other disciplines.
13.Tools. Having experience with the available tools for analysis, verification, simulation and transformation of software systems. Having insight in their internal mechanisms, which transpires in the successful combination, adaptation or building of such tools (e.g. making additions to open-source instruments).