Software Engineering

Software Engineering

6B06102

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.

Profile subjects: informatics + mathematics

Contacts

Admission Committee

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

Mon-Fri 9:00 – 18:00

Career opportunities

– Engineer-programmer;

– Software developer;

– Back-end and front-end developer;

– Web developer;

– Software tester;

– Manager and architect of it systems and projects;

– Mobile developer.

The purpose of the 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.

Objectives of the educational program

  • Providing highly qualified specialists in the field of software development in private and public companies.
  • Providing students with a wide range of competencies in the field of software development based on the results of the educational program necessary to start working as a Junior Developer of software in various companies, including small enterprises up to 10 people, and ending with large national and private organizations where he works more than 1000 people.
  • The development in students of the flexible (soft) qualities required for the development of the leadership and patriotic sides in them, necessary for their formation as successful and goal-oriented leaders in their industry.

6B06 - Information and Communication Technologies

Education code and classification

057 - Information Technology

Education Programs Group

061 - Information and Communication Technologies

Code and classification of training directions

Requirements for evaluating the learning outcomes of an educational program

The student, after mastering the entire educational program "Software Engineering" (Software Engineering), should be able to work with various software development technologies, development tools and environments for effective software development. Thus, a graduate of the program should be able to perform the following points:
  • Formulate and solve problems arising in the course of production activities that require in-depth professional knowledge.
  • To formulate the problem, both mathematical approaches and computer tools can be used;
  • Choose the necessary approaches and methods for analyzing problems, as well as modify existing ones and develop new ones, depending on the tasks of a particular case;
  • To apply in the process of training psychological methods and means of increasing the effectiveness and quality of training;
  • Proficient in a foreign (English) language, allowing students to conduct research at a high-quality level and to teach special disciplines in universities;
  • To model and design complex systems using mathematical and computer models and methods;
  • Apply quantitative and qualitative methods and techniques for collecting primary information for research, as well as developing effective solutions to problems;
  • Analyze and design software tools for data analysis, as well as the algorithms, models and methods required for developing software systems, effective data analysis and extracting knowledge from data;
  • Manage a team of developers in the process of developing software systems, as well as models and methods of data analysis;
  • Choose standards, methods, technologies, tools and technical means for carrying out work on further maintenance of software systems;
  • Apply methods of design and development of software systems to solve a wide class of applied problems in various fields, including interdisciplinary industries;
  • Program and test various solutions (models, methods), take part in the creation and management of systems at all stages of the life cycle of system development.
  • Create relational and non-relational databases for the effective storage and management of data in various large organizations, government agencies and other companies.
  • Create analysis models for structured, semi-structured and partially unstructured data.
  • To analyze the complexity of calculations and the possibility of parallelization (optimization) of the developed algorithms and programs.
  • Assess the main parameters of the resulting parallel programs, such as numerical indicators of the required computing resources, acceleration, efficiency and scalability.

List of competencies and educational outcomes of the educational program

List of competencies of the educational program

EC1. The ability to understand the driving forces and patterns of the historical process, the place of man in the historical process and the ability to understand philosophy as a methodology of human activity, readiness for self-knowledge, self-activity, the development of cultural wealth as a factor in the harmonization of personal and interpersonal relationships
EC2. The ability to form and develop skills and competencies in the field of organization, planning and management of production, the ability to apply the acquired knowledge to comprehend the environmental reality, the ability to generalize, analyze, predict when setting goals in the professional field and choose ways to achieve them using scientific research methodology
EC3. The ability for written and oral communication in the state language and the language of interethnic communication, as well as in a foreign (English) language. The ability to use foreign sources of information, to have communication skills, for public speaking, argumentation, discussion and polemics in a foreign language
EC4. The ability to be competent in choosing ICT methods and mathematical modeling for solving specific engineering problems, the ability to be ready to identify the natural scientific essence of problems that arise in the course of professional activity, and the ability to involve the appropriate mathematical apparatus to solve it.
PC1. The ability to understand modern standards, the regulatory framework, the basics of economic knowledge, scientific ideas about project management and technological entrepreneurship.
PC2. The ability to professionally operate modern computer equipment, network components, computer programs and complex computing systems (in accordance with the objectives of the program), as well as use the rules of safety, industrial sanitation, fire safety and labor protection standards.
PC3. The ability to have the skills to use and apply algorithms, data structures and modern methods for the creation (development) and further maintenance of various software systems.
PC4. The ability to use the basic provisions and methods to solve managerial problems, the ability to carry out project documentation in a software environment using computer graphics for various types of projects.
PC5. The ability to be competent in choosing mathematical modeling methods for solving specific applied software and technical problems, including the willingness to identify the natural science essence of problems that arise in the course of professional activity, and the ability to involve the appropriate mathematical apparatus to solve it.
PC6. The ability to design the architecture of information system components, including the human-machine interface of hardware and software systems, to choose operating systems and methods of information protection.
PC7. Ability to develop information and software for an information system based on modern methods and development tools.
PC8. The ability to collect, process and analyze data using the methodological and technological infrastructure existing in the organization.
PC9: Ability to manage the stages of the life cycle of the methodological and technological infrastructure of software development, data analysis, IT infrastructure design in various organizations.
PC10: Ability to use modern programming environments for the design and implementation of software solutions and databases for information and communication technologies.
PC11: The ability to apply the elements of probability theory and mathematical statistics that underlie the models and methods of data science, to correctly select the methods of data analysis, machine learning and artificial intelligence to solve practical problems.
PC12: The ability to develop and implement secure and testable solutions based on new methods and technologies for protecting information used when working with information and communication technologies.

Educational outcomes

EO1. Apply domestic and foreign standards for software development in organizations.
EO2. Apply mathematical tools for analyzing software systems and data based on statistical and probabilistic models, build algorithms for solving problems.
EO3. Apply practical programming skills and explain the general methodological foundations of program development, compile system programs for various levels of computer system architecture and software, including programming at the lower level and programming microcontrollers.
EO4. Apply technical means and software services to ensure the continuity of the software system development process.
EO5. Demonstrate knowledge about the architecture of computer systems, manage operating systems.
EO6. Independently analyze modern sources, draw conclusions, argue them, make decisions based on the information and apply the features of academic vocabulary.
EO7. Apply project management tools at various stages of the project life cycle, perform qualitative and quantitative risk assessment of projects, determine the effectiveness of the project.
EO8. 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.
EO9. Develop secure server client web applications and mobile applications.
EO10. Explain and understand the regulatory framework, including documents, standardization and certification procedures in the field of information and communication technology development and entrepreneurship.

Assessment of learning outcomes

Exam form Recommended ratio, %
1 Computer testing 10
2 Writing 10
3 Oral 5
4 Project 30
5 Practical 30
6 Complex 15

DEVELOPMENT PLAN

Educational Program 6B06102 “Software Engineering”

DEVELOPMENT PLAN

Educational Program 6B06102 “Software Engineering”

Course Curriculum

Cycle of general education disciplines

Required Component

Modern 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.

Module of social-political education: 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.

Module of social-political education: 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.

Module of social-political education: 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 .

Module of social-political education: Culturology

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 Culture

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.

Cycle of general education disciplines

Selectable Component

Technology 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 major disciplines

University component

Database management systems

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

Software Design Patterns

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

Computer organization and architecture

The course is aimed at studying the principles of operation of modern microprocessor technology, which underlies universal and specialized computers, and embedded systems, methods for organizing the interaction of a microprocessor with memory and external devices. In the process of studying the course, students should gain an understanding of the features of the internal structure of a modern microprocessor.

Operating systems

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

Project management

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

Research methods and tools

The aim of the course is to give students a broad understanding of the research methodology, including the theory of science, qualitative and quantitative methods and the development of a research proposal for a diploma project. At the end of the course, students will have the skills of critical reading of scientific literature and will be competent in planning, conducting, evaluating and presenting a research project.

Software quality assurance and testing

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

Cloud Computing

This course is designed for the development of software systems and applications where the main focus will be on the use of cloud solutions where it will show the greatest efficiency. Students will have the opportunity to work with various cloud solution providers, such as Amazon, Google, Microsoft. They will learn how to deploy cloud solutions for databases, data analytics, and machine learning. The course contains the following topics: “Load Balancing”, “Scalability, Availability and Fault Tolerance”, “BigQuery”, “Machine Learning on Unstructured Datasets”, etc.

Production practice

Production practice of students

Pre-graduate practice

Pre-graduate practice of students

Cycle of profiling disciplines

Component of choice

Machine Learning Algorithms

The aim of the course is to gain theoretical and practical knowledge in the field of artificial intelligence in general, and in particular in the construction of algorithms capable of learning. The course examines the basic algorithms of machine learning, various approaches and technologies of data analysis, their qualities, features and impact in various fields of science and technology. As a result of mastering the course, students will be able to use 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.

Cycle of basic disciplines

University component

Linear algebra

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

Mathematical Analysis 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 working 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 in-demand 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, DBMS (MySQL, PostgreSQL, SQLite, MongoDB, etc.) are involved in backend development.

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 the introduction to mathematical courses necessary for the development of specialized disciplines of computational sciences based on numerical solutions of deterministic and probabilistic equations of mathematical physics and applied models used in technical production and the financial sector, namely, the theory of ordinary differential equations, their typification and basic methods of analytical solution and 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 examines the development of innovative approaches to the creation and documentation of software architecture. The purpose of the course is to highlight existing approaches to documenting architectural design, to build a relationship between functional objects used as units of architecture, to show how they affect the final result of a company’s activities, to identify “external” events that also affect, and sometimes determine the software architecture. providing enterprises and recommend directions for the development of already established architectures.

Capstone Project

Capstone includes the design and implementation of a communication network that used voice over Internet Protocol (VoIP) over an Ethernet-based WAN.

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 receive basic information security skills and become familiar with professional tools and programs.

Academic writing

The aim of the course is to study the norms of the academic language. The course is aimed at developing academic writing skills using professional vocabulary and terminology. The course content includes topics reflecting the latest developments in information technology and data science.

Professional English

The course includes an intensive English language study program related to professional activities. The course includes topics reflecting the latest developments in information technology, and a terminological dictionary makes them directly relevant to the needs of students.

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 basic disciplines

Selectable Component

Introduction to Programming (C++)

The course is designed to study the basics of programming and building algorithms in the C++ programming language.

Introduction to Programming (Python)

The course is designed to study programming, debugging and implementing tasks. During the course, the principles of operation of the main components of programming, gaining access to local and remote network resources, programs using the language (Python) are analyzed.

Object Oriented Programming (Java)

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

Object Oriented Programming (Python)

The course is designed to study object-oriented programming in Python. Students will study the principles of object-oriented programming, additional elements of the Python language (classes, objects, templates, etc.), receive the conceptual apparatus of object-oriented programming (polymorphism, encapsulation, inheritance, constructor, etc.), form an understanding of the principle code reuse in programming.

Coding lab

The course is designed for students to complete a project after the first year of study, a finished minimum product that they can present at various competitions (hackathons). The course does not involve lectures, and all classes will be practice-oriented, with maximum emphasis on obtaining the results of the finished product. During the course, students must apply all the knowledge gained in the first year, including knowledge of the development of ready-made applications. Great emphasis on this course is given to high-quality writing of the program code of the minimum product.

Innovation Lab

The course is designed for students to complete a project after the first year of study, a finished minimum product that they can present at various competitions (hackathons). The course does not involve lectures, and all classes will be practice-oriented, with maximum emphasis on obtaining the results of the finished product. During the course, students must apply all the knowledge gained in the first year, including knowledge of the development of ready-made applications. Great emphasis on this course is given to the quality business component of the minimum product.

Analytical methods in computer science

The course is case-based. They develop mathematical methods using examples and build algorithms for solving specific 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 development of computer algorithms and the analysis of complex algorithms. Students learn to analyze the asymptotic performance of algorithms and become familiar with basic algorithms and data structures. They also apply important algorithmic design paradigms and analysis techniques, in addition to synthesizing efficient algorithms in common engineering design situations. The course materials are designed to help students understand the difference between solvable and intractable problems and introduce strategies for dealing with intractable problems.

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.

Advanced Programming 1

The course is designed for more advanced learning of the Java or Python programming language, including learning JSP (Java Server Pages), servlet, JDBC (Java Database Connection), including many basic principles of Java to Enterprise Edition (extended version of Java EE). Exception handling, Generalizations, Delegates, Events, Lambda Expressions, Extension methods, LINQ, Nullable types, Dynamics, Asynchronous Programming with Async/Await, and other topics.

Native Mobile Development

The course continues the Advanced Programming 1 course and is designed for a more in-depth study of the programming language

Advanced Programming 2

The course continues the Advanced Programming 1 course and is designed for a more in-depth study of the programming language

Cross-platform mobile development

This course is designed for advanced mobile operating systems. The mobile applications obtained as a result of the course work can be downloaded from the university repository, also uploaded to the Play Store.

How to proceed

Educational programs

Students life

Infrastructure

https://ejournal.unperba.ac.id/pages/uploads/sv388/ https://ejournal.unperba.ac.id/pages/uploads/ladangtoto/ https://poltekkespangkalpinang.ac.id/public/assets/scatter-hitam/ https://poltekkespangkalpinang.ac.id/public/assets/blog/sv388/ https://poltekkespangkalpinang.ac.id/public/uploads/depo-5k/ https://smpn9prob.sch.id/content/luckybet89/