Software Engineering

6B06102 Software Engineering

Core subjects: mathematics, computer science. Threshold score: 80.

The educational program “Software Engineering” includes disciplines on the basics of IT technologies and software tools that allow students to position themselves as professionals in the field of IT technologies, including the development and maintenance of software of various scales. Based on the results of the training, students will freely master the skills of managing IT technologies in a company, as well as several programming languages, and will be able to develop software for large companies, such as banks, insurance companies, government and national organizations, and others. The program will also develop skills in developing an application for mobile devices, databases and a web application.

Contacts

Admission Committee

(7172) 64-57-10
info@astanait.edu.kz

Mon-Fri 9:00 – 18:00

Objective of Educational Program

Provide practice-oriented training of highly qualified specialists in the field of software development, qualified developers of software and information systems and software architects, experts in software quality, software testers for the IT industry of the Republic of Kazakhstan.

List of a specialist’s positions

Career opportunities
  • Software Engineer;
  • Software developer;
  • Backend and Frontend developer;
  • Software tester;
  • Manager and architect of IT systems and projects;
  • Mobile developer;
  • DevOps Engineer;
  • Blockchain Technologist.

057 – Information technology

Group of educational programs

Bachelor in Information and Communication Technologies in the educational program "6B06102-Software Engineering"

Awarded degree

3 years

Duration of study

Learning outcomes

  • Apply domestic and foreign standards for software development in organizations.
  • Apply mathematical tools for analyzing software systems and data based on statistical and probabilistic models, build algorithms for solving problems.
  • Apply practical programming skills and explain the general methodological foundations of program development, the principles of algorithm construction, compile system programs for various levels of computer system architecture and software, including programming at the lower level and programming microcontrollers.
  • Apply hardware and software services to ensure the continuity of the process of developing software systems.
  • Demonstrate knowledge of the architecture of computer systems, manage operating systems.
  • Independently analyze modern sources, draw conclusions, argue them, make decisions based on information and apply the features of academic vocabulary.
  • Apply project management tools at various stages of the project life cycle, make a qualitative and quantitative assessment of project risks, determine the effectiveness of the project.
  • Implement basic network communication between devices, calculate and apply addressing schemes, configure and configure network devices required to ensure the functionality of information and communication technologies.
  • Develop secure server-side client applications and programs.
  • Explain and understand the regulatory framework, including documents, standardization, certification procedures in the development of information and communication technologies and entrepreneurship.

A competent graduate model

Documents

DEVELOPMENT PLAN

Educational Program 6B06102 “Software Engineering”

Academic disciplines

Cycle of general education disciplines

Compulsory component / University’s component

History of Kazakhstan

The course considers the modern history of Kazakhstan as part of the history of mankind, the history of Eurasia and Central Asia. The modern history of Kazakhstan is a period in which a holistic study of historical events, phenomena, facts, processes is carried out, the identification of historical patterns that took place on the territory of the Great Steppe in the 20th century and to the present day.

Philosophy

The course involves the study of the discipline of philosophy as a special form of spiritual studies in its cultural and historical development and modern sound. The main directions and problems of world and domestic philosophy are studied. Philosophy is a special form of knowledge of the world, creating a system of knowledge of the general principles and foundations of human life, about the essential characteristics of a person’s relationship to nature, society and spiritual life, in all its main direction.

Foreign language 1 and 2 (English)

The course includes an intensive English language program focused on grammar and speaking skills. The course includes topics reflecting the latest developments in information technology, and a terminological dictionary makes them directly relevant to the needs of students.

Kazakh (Russian) language 1 and 2

The course occupies a special place in the system of training bachelors with an engineering education. For students of a technical university, the study of professional Kazakh / Russian languages is not only the improvement of the skills and abilities acquired at school, but also a means of mastering the future specialty.

Information and Communication Technologies

The course includes the study of modern information technologies, including methods and means of communication between people in ordinary and professional activities using information technologies. These technologies are studied in relation to the search, collection, storage, processing and dissemination of information.

Political science

The course is devoted to general political knowledge for specialties in the field of information technology. The course includes political self-awareness, improvement of one’s political outlook and communicative competencies. Political knowledge education is communicative, interactive, student-centered, result-oriented and relies heavily on students’ independent work.

Sociology

The course includes knowledge of sociological subject areas, research methods and directions. The course will discuss in detail the main sociological theories and the most effective ways to gain in-depth knowledge about various aspects of our modern society. Of particular importance of this course for students is the opportunity to develop the sociological imagination, to understand the basic concepts of sociology as a science.

Psychology

The course presents the issues of psychology in a broad educational and social context. The knowledge, abilities and skills acquired and formed as a result of mastering the course content give students the opportunity to apply them in practice in various areas of life: personal, family, professional, business, public, in working with people – representatives of different social groups and age categories.

Cultural Studies

The course will help to become the basis for studying the entire complex of social sciences and humanities, as well as an addition to general courses in history and philosophy. The course includes topics such as morphology, semiotics, anatomy of culture; the culture of the nomads of Kazakhstan, the cultural heritage of the proto-Turks, the medieval culture of Central Asia, the formation of Kazakh culture, Kazakh culture in the context of globalization, the cultural policy of Kazakhstan, etc.

Physical Education

The course is devoted to the formation of personal physical culture and the ability to use various means of physical culture for the preservation and promotion of health.

Technological Entrepreneurship

The discipline introduces students to modern concepts and tools of entrepreneurship and obtaining the theoretical knowledge and practical skills necessary to launch their own startup, taking into account the basics of life safety. On the basis of law and anti-corruption culture, the process of obtaining a patent, the legality of ownership of technological development is being studied, taking into account the legislation of the Republic of Kazakhstan in the field of intellectual property. Students apply strategic analysis in the field of economics, management, communication and technological entrepreneurship.

Entrepreneurship

As part of the academic discipline, the student studies the essence of entrepreneurial activity on the basis of the current legislation of the Republic of Kazakhstan. The course will demonstrate the role and place of small businesses in the current conditions of functioning of the economy of the state and society. The discipline will allow you to understand the basic principles and content of the business plan of business entities, form a thinking based on a modern anti-corruption culture, explain the organizational forms of entrepreneurial activity, including taking into account sustainable development, ecology and personnel life safety.

Cycle of fundamental disciplines

University’s component

Linear algebra

The course includes: Matrix theory, systems of linear equations, vector theory, analytic geometry, limit and differentiation of functions of one variable

Calculus 1 and 2

Academic discipline includes knowing the analysis of features represented in various ways and understanding the relationships between these different representations; understanding the meaning of the derivative in terms of rate of change and local linear approximation, and using derivatives to solve various problems.
The academic discipline introduces students to important branches of calculus and its applications in computer science. During the educational process, students should familiarize themselves with and be able to apply mathematical methods and tools (differential equations, series, double and triple integrals) to solve various applied problems.

Discrete Mathematics

Discrete mathematics is the part of mathematics devoted to the study of discrete objects (here, discrete means, consisting of separate or unrelated elements). More generally, discrete mathematics is used whenever objects are counted, when relationships between finite (or countable) sets are studied, and when processes involving a finite number of steps are analyzed. The main reason for the growing importance of discrete mathematics is that information is stored and processed by computers in a discrete manner.

Probability and statistics

The course teaches the study of patterns of random phenomena and their properties, and use them for data analysis. As a result of studying this discipline, students will know the basic concepts of probability theory and mathematical statistics and their properties, as well as be able to use probabilistic models in solving problems, work with random variables, calculate sample characteristics, and evaluate the reliability of statistical data.

Web Technologies 1 (Front End)

The course teaches students to use a programming language to develop functional websites and interfaces, and also allows them to master the basics of working and interacting with a database. The course teaches the development of functionality and user interface running on the client-side of an application or website. In the process, students will have the opportunity to create and develop a convenient, simple and demanded website.

Web Technologies 2 (Back End)

The course teaches students to use a programming language to develop logical elements of functional websites, and also allows them to master the basics of working and interacting with a database. In practice, students use any of the universal languages: PHP, Ruby, Python, Java. In addition, backend development involves DBMS (MySQL, PostgreSQL, SQLite, MongoDB, etc.).

Algorithms and data structures

The course examines classical algorithms (search, sorting, etc.) and data structures (queue, stack, tree, graph) used in programming. The principles of constructing algorithms, tools for their description, the concepts of complexity and performance, the main classes of algorithms are considered.

Computational Mathematics

This discipline covers an introduction to mathematical courses necessary for mastering specialized disciplines of computational science based on numerical solutions of deterministic and probabilistic equations of mathematical physics and applied models used in technical production and the financial sector. Namely, it covers the theory of ordinary differential equations, their typification and basic methods of analytical solution and an introduction to partial differential equations.

Computer networks

The course studies the OSI model, the main physical and link layer protocols, types of equipment, design and configuration of local networks, subnets, etc. As a result of mastering, students will know and understand the principles of operation and design of computer networks, master the basic skills of working with operating systems of network devices of the Linux family to configure them.

Software architecture

The course addresses the development of innovative approaches to creating and documenting software architecture. The course aims to highlight existing approaches to the documentation of architectural design, build the relationship between functional objects used as units of architecture, show how they affect the final result of a company’s activity, identify “external” events that also affect, and sometimes determine, the software architecture providing enterprises and recommend the development directions of already existing architectures.

Capstone Project

Capstone includes the design and implementation of a communications network that utilized Voice over Internet Protocol (VoIP) over a wide area Ethernet (WAN) network.

Information Security Fundamentals

The course forms students’ understanding of the field of information security, its constituent components, main threats, protocols and protection tools. During the study, students will acquire basic information security skills and become familiar with professional tools and programs.

Academic writing

This course teaches how to understand the main differences between Russian and Western writing tradition; learn what it means to be constructively critical as a reader and self-critical as a writer; learn the specific of academic vocabulary, grammar and style; practice to create a well-structured paragraph; obtain practical skills in using argument and evidence in your writing; be able to write an academic essay.

Introduction to Programming 1

This course is developed to learn programming fundamentals and writing algorithms in C++ programming language. During this course, students will improve programming skills, writing simple algorithms using C++ technologies.
It gives the student an initial base in the C++ development, with an emphasis on learning basic programming principles, ranging from I/O operations, variable management, using flow control capabilities and implementation.

Object Oriented Programming

The course is designed to learn the basic concepts of object-oriented programming in Java.

Introduction to Programming 2

The course is designed to explore the basics of programming, debugging, and software implementation. The course also analyzes how networking technologies and programs work using the Python programming language.

Database management systems

The course includes and involves the study by students of the most popular relational and non-relational database management systems, as well as a set of general or special-purpose software and linguistic tools that manage the creation and use of databases.

Educational practice

The course is designed to reinforce students the basics of programming and developing software systems using the studied programming language, and during the course a small ready-made application will be developed as a result of the course.

Cycle of fundamental disciplines

Elective component

Analytical methods in Computer Science

The course based on concrete examples. Develop mathematical methods through examples and construct algorithms to solve concrete problems. The course includes the following topics: recursions, sums, integer functions, elementary number theory, binomial coefficients, special numbers, generating functions, discrete probability, asymptotics.

Design and analysis of algorithms

This course is an intermediate class covering the design of computer algorithms and the analysis of sophisticated algorithms. Students learn how to analyze the asymptotic performance of algorithms, and gain familiarity with major algorithms and data structures. They also apply important algorithmic design paradigms and methods of analysis, in addition to synthesizing efficient algorithms in common engineering design situations. Course materials are designed to help students understand the difference between tractable and intractable problems and to become familiar with strategies to deal with intractability.

Introduction to Game Development

The course involves the study of the basic technologies of game development. The idea is to create a game starting from concept to complete completion. Students will learn how to create computer games, learn the interface, and understand the basic concepts.

Introduction to SRE

The course involves the study of methods of designing reliable software and the conditions for their implementation. Students will know the requirements for functional reliability and software architecture of critical systems.

Advanced Programming 1

The course is intended for a more advanced study of the Java or Python programming language, including the study of JSP (Java Server Pages), Servlet, JDBC (Java Database connection), including many basic principles of Java to Enterprise Edition (Advanced Java EE).Exception Handling, Generics, Delegates, Events, Lambda Expressions, Extensions Methods, LINQ, Nullable Types, Dynamics, Asynchronous Programming with Async / Await, and other topics.

Native Mobile Development

This course is designed to learn the basics of mobile development. Mobile applications received as a result of the course can be downloaded to the university repositories and also displayed on the Play Store.

Advanced Programming 2

The course continues the Advanced Programming 1 course and is intended for a more advanced study of the programming language.

Cross-platform mobile development

This course is predefined for advanced mobile operating systems. Mobile applications, received as a result of coursework, can be downloaded in the university repository, also downloaded in the Play Store.

Cycle of major disciplines

University’s component

Software Design Patterns

The course involves the study of one of the most important components of an object-oriented technology for software development – software design patterns. This course is a formalized description of a frequently encountered design problem, its successful solution and recommendations on the application of this solution in various situations.

Computer organisation and architecture

The course involves studying the architecture of a computer, or describing it at some general level, including a description of user programming capabilities, a command system, an addressing system, memory organization, etc., and also includes studying the structure of a computer as the totality of the functional elements of the computer and the relationships between them.

Operating systems

The course develops students’ knowledge of the basic mechanisms and devices of operational systems, the specifics of their interaction with the hardware of a computer, and introduces them to the principles of system programming at the level of Linux operating systems.

Project management

Be able to use project management tools at various stages of the project life cycle, make a qualitative and quantitative assessment of project risks, determine the effectiveness of the project

Research methods and tools

The course aims to provide students with a broad understanding of research methodology, including science theory, qualitative and quantitative methods and the development of a research proposal for a thesis project. By the end of the course, students will be proficient in critical reading of the scientific literature and competent in planning, conducting, evaluating and presenting a research project.

Software quality assurance and testing

The course is designed to learn the fundamentals of software testing and quality assurance, which are an essential step in the development of any software system. The correct approach to testing software systems will allow students to avoid many mistakes when developing real systems.

Cloud Computing

This course is intended to develop software systems and applications with focus on cloud solutions where it is most effective. Students have the opportunity to work with a variety of cloud technology providers such as Amazon, Google, Microsoft. They will learn how to deploy cloud solutions for databases, data analytics, and machine learning. The course contains following topics: “Load Balancing”, “Scalability, Availability and Fault Tolerance”, “BigQuery”, “Machine Learning on Unstructured Datasets”, etc.

Industrial practice

Industrial practice of students

Undergraduate practice

Undergraduate practice of students

Cycle of major disciplines

Elective component

Machine Learning Algorithms

The course goal is to acquire the theoretical and practical knowledge in the field of artificial intelligence in general and in particular in the creating of algorithms capable of learning. The course examines the basic machine learning algorithms, various approaches and technologies for data analysis, their qualities, features and impact in various fields of science and technology. As an outcome of mastering the course, students will be able to apply machine learning methods to visualize their data, build graphs, and present the results qualitatively.

Computer vision

Knowledge in the field of machine learning and deep learning is systematized. Knowledge in modern approaches to object detection, will have experience in solving classification and segmentation problems, learn how to build and train neural networks. The subject will give an overview of computer vision tasks and the basic tools that are needed to solve them.

Computer graphics Fundamentals

The aim of the course is to give students the basics of computer graphics based on computer graphics libraries such as OpenGL, which are the foundation of modern graphics applications. The course includes topics such as: modern OpenGL syntax, GPU acceleration, shaders, textures, introduction to GI, PBR, Vulkan, Raytracing, etc. After completing the course, students can create basic game engines, scientific visualization with using the GPU.

Advanced Databases (NoSQL)

Database design methodology for NoSQL systems. The approach is based on NoAM (NoSQL Abstract Model), a new abstract data model for NoSQL databases that uses common features of various NoSQL systems and is used to define a system-independent representation of application data. Overall, the methodology aims to support the scalability, performance, and consistency needed for next-generation web applications.

Storage systems

The discipline introduces students to the main directions in the development and use of data storage systems. The purpose of teaching the discipline: to create a base for the application of modern methods of data collection and analysis to solve practical problems and to develop students’ ability to create the necessary data warehouse architecture for analyzing large data sets in order to obtain aggregated information.

Blockchain Technologies 1

The course assumes a comprehensive understanding of the basic technology and concepts of blockchain, including distributed ledger technology, consensus mechanisms and smart contracts, provides the skills and knowledge necessary for the design and development of decentralized applications using blockchain technology

Advanced operating systems

This course involves the study of the operating system in providing the user experience provided by modern applications on modern computers

Blockchain Technologies 2

The course will provide practical experience in creating and deploying decentralized applications through a series of practical exercises and projects, preparing for the creation of secure smart contracts, decentralized applications, decentralized financial services, NFT and GameFi projects