Graduate studies in computer science

Master's studies significantly expand and deepen the material learned during undergraduate studies. While undergraduate studies are more professional in nature, graduate studies are already clearly academic in nature. The topics learned in undergraduate studies are analyzed more deeply and precisely. Master's studies prepare students for independent analysis of tools and methods used in computer science. This is done particularly through the student's obligation to participate in scientific seminars.

Compared to the undergraduate study program, greater emphasis is placed on the theoretical foundations of the topics covered and on a significant deepening of the practical issues discussed during the undergraduate studies. If you can say that after your undergraduate studies you will be a good, efficient IT craftsman, then after your graduate studies you will become an artist in this field.

During the master's studies, you will learn about the issues that the employees of the Institute of Computer Science and Mathematics deal with in their scientific work. If you want, you can also participate in ongoing research. For people who want to continue their education in third-cycle (doctoral) studies, it is a good opportunity to learn about the scientific topics of individual departments and faculties of the Institute and choose the most interesting doctoral dissertation.

Master's studies end with writing and defending a master's thesis.

As part of the master's degree in computer science, the student chooses a specialization. This choice allows you to focus on a selected area of
computer science and expand your knowledge within it.

Software Engineering

The specialization prepares you for work in an IT company as a professional software engineer, i.e. in the position of: programmer, business analyst, system analyst, tester, quality engineer. It will also give you theoretical foundations in the field of IT project management (management cannot be learned from lectures, but only through practice; studies will only allow you to learn useful tools and techniques).

In the software engineering specialization, you will broaden your knowledge of programming (in various paradigms). However, to be a good programmer, it is not enough just to know the syntax of a programming language. Studying at this specialization:

  • you will learn to use good practices of writing "clean" code,
  • you will learn techniques for creating high-quality code (e.g. Test Driven Development, eXtreme Programming),
  • you will learn about the professional work environment of a programmer, including IDEs, debuggers, version control systems, defect management systems, collaborative support systems etc.
  • you will learn what advanced design patterns are and how to use them in programming,
  • you will learn algorithmic thinking and problem solving,
  • you will learn the techniques of effective communication with the client and members of the project team,
  • you will learn to work in a team using various software development models, including agile models (e.g. Scrum, Kanban),
  • you will learn how to professionally comment on the code and create documentation, also with the use of tools for automatic generation of documentation.

Applied Computer Science

This specialization focuses on systems engineering. It is a good choice for people who want to relate their career development to positions such as: database administrator, web designer, network administrator. A computer scientist with this specialization is also able to use IT tools to solve various types of problems in organizations (e.g. process optimization, decision making etc.). The specialization also prepares you to take up a job as an IT specialist in non-IT companies, i.e. companies running other activities, but having an IT department.

A graduate of the "applied computer science" specialization, faced with a practical IT problem, is able to analyze it, select the appropriate work tools, configure them, and use them to effectively solve this problem. While studying in this specialization:

  • you will learn about various paradigms and programming languages, including scripting languages,
  • you will learn about issues related to the security of computer systems,
  • you will learn to program embedded systems,
  • you will learn techniques for modeling information systems,
  • you will learn to design, implement, and administer relational and non-relational databases and data warehouses,
  • you will learn to design and administer computer networks,
  • you will learn advanced issues of computer graphics and computer aided design (CAD),
  • you will learn how to analyze, process, and recognize images.

Modeling, artificial intelligence and control

This specialization focuses on issues related to modeling and simulating the operation of various types of systems, from simple systems to complex physical, chemical, biological, or social processes occurring in the real world. A lot of emphasis is also placed on issues related to artificial intelligence, machine learning, and big data.

A specialist in modeling and simulation must have analytical and programming skills. 
In this specialty:

  • you will learn programming languages for computer modeling and simulation,
  • you will learn advanced methods of data set analysis,
  • you will learn how to choose the right model to describe a given phenomenon,
  • you will learn how to test the built model and how to assess its quality (accuracy),
  • you will learn to simulate models that predict the future behavior of the system,
  • you will learn the methods and techniques of machine learning,
  • you will learn to use artificial intelligence algorithms to effectively solve difficult problems for which there are no analytical solutions,
  • you will learn to interpret the simulation results,
  • you will learn cognitive theories on the border of computer science, mathematics, philosophy and psychology, which describe the principles of the functioning of the human brain.

Machine learning

The "Machine learning" specialization is designed to prepare the student to perform the duties of a "Data Scientist" (the Polish equivalent is often used: data analyst) in IT companies, enterprises, and various organizations.

Our goal is to provide knowledge in the field of widely understood machine learning, data analysis, and statistics. During the studies, the mathematical methods and tools necessary for the analysis of inconsistent, diverse data sets related to technologies that are currently evolving very dynamically, in particular big data, will be presented. A graduate of the Machine Learning specialization has knowledge of available programming solutions and information technologies that enable effective data analysis and the use of advanced machine learning techniques.

In this specialization, the student:

  • learns about available programming solutions and information technologies that enable effective data analysis and the use of advanced machine learning techniques,
  • learns advanced methods of machine learning,
  • learns advanced methods of data analysis,
  • learns how to choose the right model to solve various problems of machine learning,
  • learns how to build a machine learning model and how to evaluate its quality,
  • learns to use artificial intelligence algorithms to effectively solve machine learning problems.
Published Date: 09.02.2015
Published by: Maciej Skwirczyński