Computer Graphics and Game Development

Coordinated by: Department of Software and Computer Science Education
Study branch coordinator: Doc. Alexander Wilkie, Dr.

Specializations:

 Computer graphics
 Computer game development

The study branch consists of two closely related specializations, Computer graphics and Computer game development. The specialization Computer graphics offers training in a wide range of visual sciences, including geometric modeling, rendering (image synthesis) as well as the basics of image analysis and computer vision. The specialization Computer game development focuses - apart from computer graphics techniques - mainly on artificial intelligence and intelligent agent systems, as well as on software engineering skills necessary for the development of large-scale gaming projects. Both specializations place emphasis on general programming skills, both at the system level closer to the hardware, as well as on the higher level of modern programming languages.

Graduates have expertise in the design and development of graphical systems and computer games, but they can work in any position which requires logical thinking, analytic and algorithmic approaches or the use of methods of computer science. Depending on the chosen specialization, graduates have a deep knowledge of computer graphics and image analysis, and their expertise covers the development of large-scale gaming projects, real-time applications, programming of portable devices, as well as the foundations of artificial intelligence and computer graphics in the context of computer games. Graduates can apply this knowledge to solve specific practical tasks. They can work in research and development both in the private sector and in academia.

8.1 Obligatory courses

Code Subject Credits Winter Summer
NTIN090 Introduction to Complexity and Computability   5 2/1 C+Ex
NTIN066 Data Structures I   5 2/1 C+Ex
NMAI060 Probabilistic Methods   3 2/0 Ex
NPRG027 Credit for Project   6 0/4 C 0/4 C
NPRG023 Software Project   9 0/6 C 0/6 C
NSZZ023 Diploma Thesis I   6 0/4 C 0/4 C
NSZZ024 Diploma Thesis II   9 0/6 C 0/6 C
NSZZ025 Diploma Thesis III   15 0/10 C 0/10 C

8.2 Elective courses

The student needs to obtain at least 47 credits for the courses from the following set:

Code Subject Credits Winter Summer
NPGR007 Advanced 2D Computer Graphics   5 2/1 C+Ex
NPGR010 Computer Graphics III   6 2/2 C+Ex
NPGR001 Computer vision and intelligent robotics   3 2/0 Ex
NPGR021 Geometric Modelling   6 2/2 C+Ex
NPGR026 Predictive Image Synthesis Technologies   6 2/2 C+Ex
NPGR027 Shading Languages   5 2/1 C+Ex
NPGR028 High Performance Ray Tracing   3 2/0 Ex
NPGR033 Computer Graphics for Game Development   6 2/2 C+Ex
NPGR024 Seminar on Scientific Soft Skills   3 0/2 C
NPGR029 Variational methods in image processing   3 2/0 Ex
NSWI115 Computer Games Development   6 2/2 C+Ex
NPRG056 Developing Applications for Mobile Devices   3 0/2 C
NSWI035 Principles of Distributed Systems   3 2/0 Ex
NPRG054 High Performance Software Development   5 2/2 C+Ex
NPRG042 Programming in Parallel Environment   6 2/2 C+Ex
NAIL069 Artificial Intelligence I   5 2/1 C+Ex
NAIL070 Artificial Intelligence II   3 2/0 Ex
NPRG059 Advanced Programming Praxis   2 0/1 C
NSWI041 Introduction to Software Engineering   5 2/2 C+Ex
NAIL068 Human-like Artificial Agents   6 2/2 C+Ex
NAIL071 Planning and Scheduling   3 2/0 Ex
NPRG043 Recommended Programming Practices   6 2/2 C+Ex
NMAI061 Methods of Mathematical Statistics   5 2/1 C+Ex
NAIL106 Multiagent Systems   6 2/2 C+Ex
NPGR016 Applied Computational Geometry   5 2/1 C+Ex
NPRG014 Concepts of Modern Programming Languages   3 0/3 C
NPFL114 Deep Learning   7 3/2 C+Ex

8.3 Other recommended courses

Code Subject Credits Winter Summer
NPGR005 Special Seminar for Computer Graphics   2 0/2 C 0/2 C
NPGR013 Special Functions and Transformations in Image Processing   3 2/0 Ex
NPGR022 Advanced Seminar On Image Processing   2 0/2 C 0/2 C
NAIL028 Introduction to Robotics   6 2/2 C+Ex
NAIL108 Mobile Robotics   3 1/1 MC
NSWI072 Data Compression Algorithms   3 2/0 Ex
NPGR012 Interactive 3D web graphics   6 2/2 C+Ex 2/2 C+Ex
NPGR030 Optics for computer graphics   3 2/0 Ex
NPGR023 Visualization   5 2/1 C+Ex
NAIL025 Evolutionary Algorithms I   6 2/2 C+Ex
NAIL082 Seminar on Humanlike Artificial Agents   3 0/2 C 0/2 C
NAIL087 Computers and Cognitive Sciences I   6 3/1 C+Ex
NPOZ017 Video Games as a Socio-cultural Phenomenon   3 2/0 Ex
NSWI149 Software Engineering in Practice   3 2/0 C
NPRG058 Advanced Programming in Parallel Environment   3 0/2 C
NSWI159 Practical Course on Game Development   2 0/1 C 0/1 C
NSWI160 Game Development Middleware   6 0/4 C

8.4 State Final Exam

Specialization: Computer graphics

In addition to the two examination areas that are obligatory for all study branches, the student will select three other examination areas. Students have to choose at least two examination areas from the following list of examination areas; the third examination area can be chosen at will also from among all the examination areas offered in the specialization Computer game development, except the area Computer graphics for games. Students will be asked one question from each selected examination area. In total, each student will get five questions.

Examination areas

1. Geometric modeling and computational geometry
2. Image analysis and processing, image compression, computer vision
3. Realistic image synthesis

Knowledge requirements

1. Geometric modeling and computational geometry
Homogeneous coordinates, affine and projective transformations in the plane and in space, quaternions in the representation of the 3D orientation, differential geometry of curves and surfaces, spline functions, cubic splines C2, interpolation by cubic splines, Bezier curves, Catmull-Rom splines, B-splines, de Casteljau and de Boor algorithms, approximation surfaces, surfaces defined by the edges, Bezier surfaces, patch stitching, B-spline surfaces, NURBS surfaces. Design of geometric algorithms and their complexity, triangulation of polygons and point sets, Voronoi diagrams and Delaunay triangulations, convex hull, intersections of geometric shapes, dualization, localization, data structures for efficient spatial search.

Recommended courses

Code Subject Credits Winter Summer
NPGR003 Introduction to Computer Graphics   5 2/2 C+Ex
NPGR016 Applied Computational Geometry   5 2/1 C+Ex
NPGR021 Geometric Modelling   6 2/2 C+Ex
NPGR007 Advanced 2D Computer Graphics   5 2/1 C+Ex

2. Image analysis and processing, image compression, computer vision
Mathematical models of images, 2D Fourier transform and convolution, sampling and quantization of the image, contrast and brightness change, noise removal, edge detection, inverse and Wiener filter, determining the relative position of images - registration, point and object correspondence, geometric distortion removal, edge detection, detection of areas, features for description and recognition of 2D objects, moment invariants, wavelets and their use, statistical theory of pattern recognition, supervised and unsupervised classification, computer vision.

Reproduction of color graphics, halftoning and dithering, alpha blending and image composition, warping, morphing, compression of raster 2D graphics, scalar and vector quantization, predictive compression, transformation compression methods, hierarchical and progressive methods, video compression, temporal prediction (motion compensation), JPEG and MPEG standards, image capture in digital photography.

Recommended courses

Code Subject Credits Winter Summer
NPGR003 Introduction to Computer Graphics   5 2/2 C+Ex
NPGR002 Digital Image Processing   5 3/0 Ex
NPGR029 Variational methods in image processing   3 2/0 Ex
NPGR013 Special Functions and Transformations in Image Processing   3 2/0 Ex
NPGR007 Advanced 2D Computer Graphics   5 2/1 C+Ex
NPGR001 Computer vision and intelligent robotics   3 2/0 Ex

3. Realistic image synthesis
Representation of 3D scenes, visibility determination, cast shadows, reflection models and shading algorithms, recursive ray tracing, textures, anti-aliasing, acceleration methods for ray-tracing, principle of radiosity methods, physically-based models of light transport (radiometry, rendering equation), Monte Carlo integration, Monte Carlo approaches in lighting simulation, direct methods in volume data visualization, isosurface extraction. Graphics accelerator architecture, data transfer to the GPU, textures and GPU buffers, GPU programming: shaders, basics of OpenGL, GLSL, CUDA and OpenCL. Advanced GPU techniques.

Recommended courses

Code Subject Credits Winter Summer
NPGR003 Introduction to Computer Graphics   5 2/2 C+Ex
NPGR004 Computer Graphics II   5 2/1 C+Ex
NPGR019 Realtime Graphics on GPU   5 2/1 C+Ex
NPGR010 Computer Graphics III   6 2/2 C+Ex
NPGR026 Predictive Image Synthesis Technologies   6 2/2 C+Ex
NPGR027 Shading Languages   5 2/1 C+Ex

Specialization: Computer game development

In addition to the two examination areas that are obligatory for all study branches, students get one question from each of the following examination areas:

1. Multi-agent systems (this area is obligatory for the specialization Computer game development).
2. Either the area Computer graphics for games or any area from the specialization Computer graphics.
3. One of the following areas: Parallel programming, System aspects of computers, Modern concepts of programming, Software engineering, Advanced programming, Web technologies.

In total, each student will get five questions.

 

Examination areas

1. Multi-agent systems (obligatory for the specialization Computer game development)
2. Computer graphics for games
3. Parallel programming
4. System aspects of computers
5. Modern programming concepts
6. Software analysis and architectures
7. Advanced programming
8. Web technologies

Knowledge requirements

1. Multi-agent systems
Autonomous agent architectures; agent perception, agent action selection mechanism, agent memory. Psychological inspiration. Methods for agent control; symbolic and connectionist reactive planning, hybrid approaches. Path search problem, steering rules, terrain representation. Communication and knowledge in multiagent systems, ontologies, speech acts, FIPA-ACL, protocols. Distributed problem solving, cooperation, Nash equilibria, Pareto efficiency, source allocation, auctions. Agent design methodologies, agent languages and environments. Ethological inspiration, models of population dynamics. Methods for agent learning; reinforcement learning, basic forms of animal learning.

Recommended courses

Code Subject Credits Winter Summer
NAIL054 Adaptive Agents   3 0/2 C
NAIL068 Human-like Artificial Agents   6 2/2 C+Ex
NAIL106 Multiagent Systems   6 2/2 C+Ex

2. Computer graphics for games
Homogeneous coordinates, affine and projective transformations in the plane and in space, quaternions, splines, interpolation by cubic splines, Bezier curves, Catmull-Rom splines, B-splines, de Casteljau and de Boor algorithms. Character animation, skinning, rigging. Collision detection.

2D Fourier transform and convolution, sampling and quantization, image anti-aliasing, texture, change of contrast and brightness, alpha-bending and compositing, compression of raster 2D graphics, video signal compression, temporal prediction (motion compensation), JPEG and MPEG standards.

Representation of 3D scenes, visibility, cast shadows, soft shadows, subsurface scattering, lighting models and shading algorithms, recursive ray tracing, physically-based model of light transport (radiometry, imaging equation), path tracing, precomputed global illumination, real-time global illumination, spherical harmonics-based shading, precomputed radiance transfer.

Graphics accelerator architecture, data transfer to the GPU, textures and GPU buffers, GPU programming: shaders, basics of OpenGL, GLSL, CUDA and OpenCL. Advanced GPU techniques. Game engine architecture.

Recommended courses

Code Subject Credits Winter Summer
NPGR003 Introduction to Computer Graphics   5 2/2 C+Ex
NPGR004 Computer Graphics II   5 2/1 C+Ex
NPGR019 Realtime Graphics on GPU   5 2/1 C+Ex
NPGR033 Computer Graphics for Game Development   6 2/2 C+Ex

3. Parallel programming
Modern memory architectures (multiprocessor, GPU, NUMA), relationship between data location and access efficiency. Virtualization support. Converting computations for data parallelism, parallel solutions of non-homogeneous tasks. Efficient parallel implementation of basic algorithms. Synchronization, load balancing.

Recommended courses

Code Subject Credits Winter Summer
NPRG042 Programming in Parallel Environment   6 2/2 C+Ex
NPRG054 High Performance Software Development   5 2/2 C+Ex

4. System aspects of computers
Process and thread management, communication (IPC), synchronization, memory models. Memory management (paging, heap structure, garbage collection). Runtime support, calling conventions (ABI), virtualization. Device management. File systems. Performance metrics, methods for performance evaluation, simulation and modeling. All topics considered in the context of contemporary parallel architectures.

Recommended courses

Code Subject Credits Winter Summer
NSWI004 Operating Systems   5 2/1 C+Ex
NSWI131 Performance Evaluation of Computer Systems   5 2/1 C+Ex

5. Modern programming concepts
Modern object-oriented concepts, metaprogramming, reflection, aspects. Features of modern programming languages (for example annotations, iterators, generics, lambda functions). Code quality metrics, documentation, refactoring, testing and debugging. Design patterns. All topics considered in the context of contemporary programming languages.

Recommended courses

Code Subject Credits Winter Summer
NPRG043 Recommended Programming Practices   6 2/2 C+Ex
NSWI068 Object and Component Systems   5 2/2 C+Ex

6. Software analysis and architectures
SW development processes, development phases. Business processes and their modeling using BPMN. UML and its use for analysis and design of structure and behavior of SW. Design patterns. SW testing, impact and change analysis. SW project planning, cost estimation, levels of project management. Legal aspects of SW, principal legal environment for IT projects. Types of SW architecture. Modeling and documentation of SW architecture. Classification of SW architecture quality attributes, their description using scenarios and tactics. Service oriented architectures. Algebraic methods, many sorted algebras, initial models. Formal principles of the UML language. OCL as a specification language, formal base of specification. Formal principles of RDF and OWL, the description logic.

Recommended courses

Code Subject Credits Winter Summer
NSWI130 Software System Architectures   5 2/2 C+Ex
NSWI041 Introduction to Software Engineering   5 2/2 C+Ex
NTIN043 Formal Foundations of Software Engineering   5 2/2 C+Ex

7. Advanced programming
Object concepts of modern languages. Concepts of classless languages. Generic programming and metaprogramming, generics and templates, policies, traits, type inference. Modern constructs of programming languages. Object references and lifetime. Advanced aspects of imperative languages. Exceptions, exception-safe programming. Implementation of object properties, runtime support, calling conventions, garbage collection. Modern language constructs and code performance. Design patterns. Scripting languages, prototype-based languages. Domain-specific languages. Functional programming. Principles of code quality, best practices. Refactoring. Testing, debugging, monitoring.

Recommended courses

Code Subject Credits Winter Summer
NPRG059 Advanced Programming Praxis   2 0/1 C
NPRG014 Concepts of Modern Programming Languages   3 0/3 C
NPRG024 Design Patterns   3 0/2 MC
NPRG043 Recommended Programming Practices   6 2/2 C+Ex
NSWI068 Object and Component Systems   5 2/2 C+Ex

8. Web technologies
Overview of basic web technologies. Network services for web technologies. Web services. Architecture of client-server applications, server-side and client-side scripting, web frameworks. Database systems in web applications, NoSQL databases, multimedia databases. Indexing and document searching, principles of web search engines. Linked Data, integration of semantic data to web pages. Security of information systems in the Internet environment, authentication, authorization, security models, cryptography basics, data security.

Recommended courses

Code Subject Credits Winter Summer
NSWI130 Software System Architectures   5 2/2 C+Ex
NSWI153 Advanced Technologies for Web Applications   5 2/2 C+Ex
NSWI145 Web Services   5 2/2 C+Ex
NDBI034 Multimedia Retrieval   4 2/1 C+Ex
NPRG043 Recommended Programming Practices   6 2/2 C+Ex
 

Charles University, Faculty of Mathematics and Physics
Ke Karlovu 3, 121 16 Praha 2, Czech Republic
VAT ID: CZ00216208

HR Award at Charles University

4EU+ Alliance