## Curriculum

**Bachelor’s**, **Master’s ** and **PhD** **Degree Programmes**

**Bachelor’s Degree Programme in Computer Science**

The Bachelor of General Computer Science study programme is intended for students who would like to learn the **lasting foundations of computer science** and to become proficient in its methods and approaches. A soundly built theoretical base is invaluable for working with applications and software development, and is a necessity for further study and research in computer science. The bachelor study programme usually takes **three years **and ends with a state final examination, after the successful completion of which the student is awarded the title of Bachelor of Science. The degree awarded is accredited by the Ministry of Education, Youth, and Sports of the Czech Republic and is internationally recognized. The language of instruction is English.

In the** first year**, there are basic mathematical courses (Mathematical Analysis I, II, Linear Algebra I, II, Discrete Mathematics, Combinatorics and Graphs), and introductory courses to programming and computers (Programming I, II, Principles of Computers, Introduction to Networking, Algorithms and Data Structures, Introduction to UNIX).

During the **second year** students learn further mathematical theory (Mathematical Analysis III, Propositional and Predicate Logic, Probability and Statistics), as well as the theoretical basics of programming and computers (Algorithms and Data Structures II, Optimization Methods, Non-Procedural Programming, Automata and Grammars, Database Systems). In the second year, students are also required to learn some practical programming (they have to choose one of the following courses: Programming in C++, Java, C# Language and .NET Framework) and present an Individual Software Project. Students choose other courses according to their individual needs and interests.

During the **third year**, students are expected to work on their bachelor’s thesis. There is only one further mathematical course (Algebra) recommended for the third year. Obligatory courses are complemented by courses chosen by the student him/herself. Here you can download the complete list of obligatory and elective courses for our bachelor’s Computer Science programme.

Graduates from our programme are familiar with the fundamentals of mathematics and computer science. They have both theoretical and practical experience with programming and basic knowledge in more specific areas according to their choice of advanced classes. The skills acquired provide a good background for a follow-up master’s degree, as well as sufficient knowledge for immediate employment. Graduates are able to perform well in any position where logical thinking is required. They may also work as programmers or network administrators.

**Master’s Degree Programmes**

In our master’s programmes, students are given a broad overview of their field, helping them to think independently, to distinguish between important and marginal problems, and to accommodate quickly to novel technologies. The focus is on understanding the core principles of how and why things work and on the** application** of these principles within modern technologies. The strong theoretical basis of the master’s study programme gives our graduates a competitive advantage in a dynamically evolving world where today’s technologies are often obsolete tomorrow.

Studies usually take **two years** and finish with a state final examination and master’s thesis defense. After successful completion the student is awarded the title of Master of Science.

**Master’s Programme in Computer Science**

Currently we offer seven study branches in English:** **

*Theoretical Computer Science.**Computational Linguistics.**Discrete Models and Algorithms.**Computer Graphics and Game Development.**Software and Data Engineering.**Software Systems.**Artificial Intelligence.*

A complete description (obligatory and elective courses) of the Master of Computer Science programme is here.

The study programme is very flexible: students can customize their set of attended courses based on their particular interests and needs. In the** first year** there are mandatory foundational courses such as data structures and theory of complexity and computability. Students of Computational Linguistics also have courses on natural language processing and statistical methods, and they begin work on a group software project, while students of Discrete Models and Algorithms have courses on combinatorics, graph theory, and optimization. Some courses on specific subjects, as described next, are also included in the first year.

The **second year** of studies is organized according to the student’s own selection of courses. This is based on the choice of study plan within the study branch. We offer courses on artificial intelligence and its sub-areas such as machine learning, planning, declarative programming, and neural networks; several linguistics courses; courses on speech recognition and machine translation; and courses on optimization techniques (non-linear, combinatorial, multi-criteria), integer programming, mathematical structures, algorithms and their complexity, and approximation and probabilistic algorithms. Students may attend some of these courses already in their first year, so that in their second year they can focus on finishing their master’s thesis.

**Master’s Programme in Mathematics**

The master’s programme in Mathematics leads students to achieve a deep and solid understanding of higher mathematics. It is designed to encourage analytical thinking, creativity and comprehensive understanding, combined with an ability to apply mathematical methods to real-life problems. It offers degrees in several study branches, ranging from pure abstract mathematics to applications in various fields:

*Mathematical Structures*provides a deep knowledge of advanced algebra, geometry, logic, and combinatorics.

*Mathematical Analysis*focuses on advanced real function theory, complex analysis, functional analysis, ordinary and partial differential equations.

*Numerical and Computational Mathematics*deals with design, analysis, algorithmization, and implementation of methods for computer processing of mathematical models.

*Mathematical Modelling in Physics and Technology*is an interdisciplinary field connecting mathematical analysis, numerical mathematics, and physics to develop and apply mathematical models of natural phenomena.

*Probability, Mathematical Statistics and Econometrics*offers advanced courses in probability theory, optimization, statistical modelling, and random processes, and applies problem-solving methods from economics, technology, natural sciences, and informatics.

*Financial and Insurance Mathematics*focuses on mathematical methods for finance, life and non-life insurance, and financial management.

Graduates find employment not only at universities and research institutes, but also in banks, financial and insurance companies, the pharmaceutical industry, the software industry, and marketing and telecommunication companies.

**PhD Degree Programmes**

- Mathematics
- Computer Science (Informatics)
- Physics

**Study Programme Mathematics**

*Algebra, Theory of Numbers and Mathematical Logic**Geometry, Topology, Global Analysis and General Structures**Mathematical Analysis**Probability and Mathematical Statistics**Scientific and Technical Calculations**Financial and Insurance Mathematics**General Questions of Mathematics and Information Science**Probability and Statistics, Econometrics and Financial Mathematics*

**Study Programme Computer Science**

*Theoretical Computer Science**Software Systems**Mathematical Linguistics**Discrete Models and Algorithms**Computer Graphics and Image Analysis*

**Study Programme Physics**

*Theoretical Physics, Astronomy and Astrophysics**Physics of Plasma and Ionized Media**Physics of Condensed Matter and Materials Research**Biophysics, Chemical and Macromolecular Physics**Physics of Surfaces and Interfaces**Quantum Optics and Optoelectronics**Geophysics**Meteorology and Climatology**Subnuclear Physics**Nuclear Physics**Mathematical and Computer Modelling**Physics Education and General Problems of Physics**Physics of Nanostructures*

**Semesters, Lectures and Exams**

**The academic year** is divided into two semesters — a winter semester, starting in October, and a summer semester, starting in February. In each semester, there are 13 weeks of teaching and an examination period of 5 weeks. The courses are mostly in the form of lectures and recitations. The lectures cover the theoretical underpinnings of the subject, and there is time for applications of the theory in the recitations. The schedule of the faculty consists of 45-minute lessons with 5-minute breaks, and most of the lectures and recitations are organized as 90-minute long blocks of two such lessons once or twice a week. Attendance of lectures and recitations is usually not obligatory, but is strongly recommended. Mastery of a subject is confirmed by course credit and/or by an exam. Course credits (usually for recitations) are awarded at the end of the semester. The conditions for obtaining a course credit differ according to the nature of the course, from completing a test to programming an application or writing a survey. **Exams** are taken during the 5-week examination period and can be** oral **or **written**.

**Want to know more?**

Check our admission procedure, read alumni testimonials, find out about living in Prague or download our Study Guide which contains a detailed description of our programmes.

**Other study options at Charles University in Prague**

Do you want to study in the Czech Republic, but you find the Czech language to be really tricky? If you are interested in economics, sociology, politics or territorial studies, the Faculty of Social Sciences is a great option for you! One bachelor’s degree programme and thirteen master’s degree programmes are taught in English, fully accredited by the Czech Ministry of Education. Find more information about the programmes, admissions and student life at http://fsveng.fsv.cuni.cz.