Software Engineering Curriculum - Intek

Software engineering curriculum

Two and a half years to become the complete software engineer the tech industry deserves - and needs.

The software engineering curriculum is an intensive 2.5-year program, including a final 6-month internship leading to a professional career in the tech industry.

Working through many challenges and industry-level projects, you get applied experience, become a highly efficient software engineer using real-world tools and methodologies, and by learning how to learn, you become valuable to the tech industry not just of today but also of tomorrow.

You develop skills to be a collaborative, empathic professional; someone who is a pleasure to work with and commands the respect of colleagues and partners.

Program details
First year
Second year

First term - 4 months

Includes the three months of the common core, focusing on learning the basics of programming and system administration.

Programming with Python
Understand the essential components of Python and write your first robust programs.
Data structures & algorithms
Solve problems by implementing algorithms (sort, search, graphs) on relevant data structures.
Agile methodology
Get familiar with the principles of Agile software development for efficient team work.
IT: Linux fundamentals
The basics of Linux system administration that are relevant to the modern software engineer.
Software writing, testing & debugging
Programming meta: What is beautiful, readable code? How do you test it? How do you debug it?
Databases & SQL
Design efficient databases and learn to interact with them in your programs.
Git workflow
Use Git effectively to individually and collectively organize and control revisions of your code.

Second term - 4 months

We now focus on software engineering as students learn full-stack web development and the how-tos of web services. Optional additional modules such as mobile development and data visualization are available this term.

JavaScript hyperspace
A two-weeks immersive period to get up to speed with both client-side & server-side JavaScript.
Front-end web development
Build software that runs in the browser and create rich experiences with front-end frameworks.
Professional web applications
Turn business needs into real world web applications, with the help of mature MVC frameworks.
Web security
Become familiar with vulnerability risks in web development and how to avoid them.
APIs & structured data
Learn to use and design different software components that communicate and exchange data.
Discover the algorithms and techniques used to secure computer systems' communication.
IT: Web services & deployment
Install and configure a web server, and deploy your applications on it.

Optional modules

Data visualization
Give sense to data by placing it in a visual context with HTML5 Canvas.
Advanced cryptography
Dig deeper into the maths-intensive world of cryptography.
Mobile development with React Native
Build cross-platform mobile applications in Javascript.

First internship - 4 months

An essential step to becoming effective professionals, students get their first in-company experience. It allows them to hone their skills by solving industry challenges in the context of business needs.

First term - 5 months

Students get closer to the system this year, while continuing to strengthen their base skills. They look at low-level programming and get a broader understanding of how all the elements of the system fit together.

Algorithms: advanced
Delve into artificial intelligence and design intelligent agents to solve real-world problems.
Golang hyperspace
An immersive session to get up to speed with the Go programming language.
Get familiar with the challenges and techniques of designing concurrent systems.
Object-oriented design
Learn to solve problems with object-oriented programming techniques.
Network programming
Understand the TCP/IP protocol and build software over the network.
IT: Capacity planning
Measure, predict and troubleshoot resource usage.
System programming *
Dive into UNIX and build software that interacts with the operating system.
Game development *
Develop a multi-threaded, multi-player game with a graphical interface.
*Students elect to study either System programming or Game development

Optional modules

Machine learning
Add statistics to the game and write software that solves problems implicitly.
IT: Network configuration
Configure a network device to be able to connect to a local- and a wide-area network.
IT: System security
Guarantee the security of systems by understanding their vulnerabilities.

Second term - 5 months

During the last term, students get to specialize in areas relevant to their own interests and career plans.

Open project
Set your own objectives and lead your project by managing resources and dealing with constraints.
IT: Virtualization
Learn to build, share and operate virtual machines and Docker containers.

Specialization - Students can choose 2 or 3 topics from the following:

Security hyperspace
Learn to build secure software by understanding networking and applications risks.
Exotic technologies hyperspace
Explore new technologies that you might not be familiar with.
Video game console emulator
Produce an emulator for a given architecture, capable of playing actual games.
Theory and practices of compilation, leading to the development of your own programming language.
Advanced security
Solve complex security challenges and become a security expert.
Native mobile applications
Develop native mobile apps on iOS and Android with Swift and Java.
Data engineering
Learn to collect and prepare data for effective analysis.
Data science
Help answer business needs by extracting relevant information from datasets.
Functional programming
Get familiar with a new programming paradigm and discover the value of a declarative language.
Advanced system programming
Build your expertise in low-level programming by developing your own debugging tool.

Final internship - 6 months

To bring an end to their curriculum, students go through a second period of professional integration. They get to demonstrate their proficiency before applying for their first job - which will often be a continuation of this final internship.