Bachelor in Game Programming - BSP

Short description

Game programming is a broad field of study where the skills required are relevant to many industries. Game programmers must primarily be good programmers with a broad understanding of computer programming and technology and the ability to work with a very wide range of other disciplines. The core skills required range from understanding real-time graphics techniques to multiplayer networking and computer operating systems. Computer games have driven the development of new technology and push current computing devices to their limit. Computer game programmers have to understand how to get the most out of limited hardware, such as mobile phones, to create enjoyable experiences.

This degree is not an easy option. This degree requires all the programming courses in a standard programming degree, and includes course on graphics, game programming, artificial intelligence, mobile devices, and parallel programming. Graduates of the course are expected to be both good programmers and have the ability to communicate with designers and artists. The degree requires participation in many group projects and presentations.

After graduation, you will have a solid education in programming that allows access to jobs in gaming companies, software engineering, software development and the entertainment industry. The program also provides a good basis for working in: Systems for e-learning, visualization, simulation, interactive web applications and graphics-based computer systems.

Many of the courses are taught English and have an international focus.  The curriculum is based on the International Game Developers Association's curriculum framework, the ACM's computer science curriculum, and the UK SkillSet game industry accreditation guidelines. This international focus allows graduates to work anywhere in the world.

Duration

The program is a 3-year undergraduate computer education that provides 180 study points spread over six semesters. Upon completion you are awarded the degree of a Bachelor in Game Programming. This program is eligible for admission to IT and CS related master's programs in Norway and abroad.

Expected learning outcomes

After completing the study you will have the ability to develop computer games from scratch or using a game engine. Our graduates are able to work as part of a large team to develop interactive applications and computer games. In particular, you will have the ability to implement advanced graphics, artificial intelligence, networking and interaction.

The specific learning outcomes include:

Knowledge

  • A basic knowledge of maths, algorithms and problem solving.
  • Knowledge of the communication and information technology used for computer games.
  • Knowledge of Computer Graphics, Artificial Intelligence, and mobile systems as core elements in computer game technology.
  • An understanding of the business requirements for making computer games.
  • Can explain the need for professional work methods for development of computer games.
  • An understanding of the legal, social, ethical consequences of computer technology and computer games.

Skills

  • The ability to apply what you have learned to solve practical problems in computer programming and game development.
  • Collaboration in teams to develop and present solutions to problems both orally and in written form.
  • The ability to find relevant sources in text and on the Internet to solve algorithmic, design, and technical problems.
  • An understanding of the role of middleware and tools and the ability to use these tools in conjunction with personally developed code.
  • The candidate can use tools which support development of computer games.

General Competence

  • In insight into academic forms of communication and the ability to write reports in English.
  • The ability to develop innovative solutions to tasks, with a focus on rapid prototyping.
  • An understanding of entrepreneurial activity and the ability to be part of startup businesses.
  • The ability to update your own knowledge and continue life-long learning.

Along with these game programming specific abilities our graduates are expected to be good citizens. To understand the role of computers and games in modern society.  Our graduates should contribute to the debate about the role of games in society and be able to make ethical decisions about the nature and content of the games and software they help create.

In your final semester you will develop a game as part of the Bachelor's thesis. This project will form a critical part of your portfolio and CV. The project will also have input from professional game developers, and the results will be reviewed by industry partners. This capstone project will help integrate all the subjects that are part of the bachelor degree and provide vital group work experience.

Internationalization

Students can go abroad in semester 4 provided that they find a study program containing Operating Systems and Software Engineering. Contact the international office at GUC student administration for specific information, help and advice. As many of the courses are taught in English the program is also very well suited to continuing your studies at the Masters level aboard.

Target Group

There is no requirement for particular computer skills before the course starts. The program assumes that students are interested in computer games and fascinated with how they are made. This course is designed to engage any student who meets the admission requirements and are motivated to immerse themselves in this exciting and competitive field.

Students from high school are the primary target group, but the program is also suitable for those who are returning from the workforce looking to develop there programming and game development ability.

Admission Criteria

Admission to the program is general admission plus R1/S2 (2MX) or real competence. If you do not have the required mathematics background, you can apply under the condition that you take the summer courses (R1) in mathematics offered by the university college, which starts a few weeks before the ordinary studies.

Course Structure

As a student in the Bachelor's degree in game programming, you will gain general computer science skills, which characterizes any skilled programmer. It is important to have a comprehensive understanding of the computer environment a game works within, from understanding the hardware and data networks to end users and game experience. The program is built up with elements of both basic computer science courses and games specific topics. The last part of the program heavily specialises in games programming.

The program will therefore have a particular focus on:

  • Programming:  Basics and language-independent skills in structured and object-oriented programming.
  • Graphics:  Theory and techniques in 2D and 3D graphics.
  • AI:  Understanding how computers control agents in virtual worlds.
  • Mobile Devices:  Mobile devices are the fastest growing sector of game development
  • Parallel Programming:  Utilizing the full power of modern CPUs and GPUs 

Many courses use projects to embed theory in practical implementation. The program ends with a major game development project (bachelor thesis) which can be in association with industry or can be used as the basis for forming a new company. The college offers modern laboratories tailored to the needs of the individual topics. You will engage with lecturers from around the world in this highly skilled professional community. In addition, you will be involved in research activities under the direction of the department's professors. You will experience an inspiring and active study environment with students from various IT and media programs.

Some topics are shared with Computer Science and Engineering. This includes topics such as Operating Systems and Data Communications, which provides understanding of the underlying technological platform of different systems and the Internet. Programming skills are built up throughout the study in the topics Basic programming, Object-oriented programming and algorithmic methods courses. Other topics are game specific including Game Design, Mathematics for Game Programming, Graphics Programming, Game Programming and Artificial Intelligence.

20 credits are elective courses. Students will also be able to choose among a wide range of science topics from other IMT studies.

Table of subjects

Bachelor of Game Programming, 1st year 2014/2015

Coursecode Course name C/E *) ECTS each. semester
  S1(A) S2(S) S3(A) S4(S) S5(A) S6(S)
IMT1361 Game Design C 10          
REA1101 Mathematics for computer science C 10          
IMT1031 Fundamental Programming C 10          
IMT1082 Object-Oriented Programming C   10        
IMT2431 Data Communication and Network Security C   10        
REA2061 Mathematics for Game Programming C   10        
Sum: 30 30 0 0 0 0
*) C - Compulsory course, E - Elective course

Bachelor of Game Programming, 2nd year 2015/2016

Coursecode Course name C/E *) ECTS each. semester
  S1(A) S2(S) S3(A) S4(S) S5(A) S6(S)
IMT2021 Algorithmic Methods C     10      
IMT2531 Graphics Programming C     10      
IMT2571 Data Modelling and Database Systems C     10      
IMT2581 Rapid Prototyping and Innovation C     2,5 2,5    
IMT2243 Software Engineering C       10    
IMT2282 Operating Systems C       10    
IMT3591 Artificial Intelligence C       10    
Sum: 0 0 32.5 32.5 0 0
*) C - Compulsory course, E - Elective course

Bachelor of Game Programming, 3rd year 2016/2017

Coursecode Course name C/E *) ECTS each. semester
  S1(A) S2(S) S3(A) S4(S) S5(A) S6(S)
IMT3601 Game Programming C         10  
IMT3662 Mobile Development Theory C         5  
Elective course, 10 ECTS E         10  
Elective course, 10 ECTS E           10
IMT3912 Bachelor's thesis C           20
Sum: 0 0 0 0 25 30
*) C - Compulsory course, E - Elective course

Electives

Coursecode Course name C/E *) ECTS each. semester
  S1(A) S2(S)
IMT3102 Object-Oriented Software Development E 10  
IMT3281 Software Development E 10  
IMT3861 Stormaskiner E 10  
IMT3672 Mobile Development Project E 5  
IMT3801 Multi-threaded Programming E 5  
IMT2291 Web Technology E   10
IMT3511 Discrete Mathematics E   10
IMT3612 GPU Programming E   5
IMT3602 Professional Programming E   5
Sum: 0 0
*) C - Compulsory course, E - Elective course