Subject · Information security

Fundamentals of programmingSyllabus

İF-2204y6 creditsAutumn semesterMandatory1

Syllabus

The subject's official programme: general information, outcomes, topic plan, reading list and assessment.

General information

Subject code
İF-2204y
Credits
6
Student workload
120
Semester
Autumn semester
Academic year
1
Subject type
Mandatory
Form of education
Full-time
Language of instruction
Azerbaijani
In-class hours
a) 30 saat - mühazirə b) 30 saat - laboratoriya
Out-of-class hours
a) 60 saat - TSİ b) 60 saat - MRTSİ

About the subject

The subject provides students with the formation of theoretical knowledge and practical skills on the basic concepts and principles of programming. data types, condition and cycle operators, arrays, pointers, functions, recursion and structures are studied within the subject. students are introduced to the concepts of class and object, as well as the basic principles of object-oriented programming. the application of data structures and algorithms, their runtime and memory usage analysis are among the main directions of the subject. skills in using programming environments, program compilation, error detection, code testing and version control are also developed. the subject focuses on the application of acquired knowledge in solving practical problems such as processing and analyzing structured data and automating certain tasks.

Teaching methods

  • lecture
  • laboratory work
  • teamwork
  • problem-based learning
  • project-based learning
  • presentations

Course learning outcomes (CLO)

  1. CLO 1: Able to write programs freely in any programming language, knows the concepts of condition, period, function, object, class in programming. understands data types and how they are located in memory. the compilation process figures out what bytecode is machine code.

  2. CLO 2: It knows data structures such as array, linkedlist, stack, queue, graph, tree, classical algorithms on those data structures, it is able to execute the listed data structures and algorithms in any programming language.

  3. CLO 3: It can analyze the running time of algorithms and the memory they use. it is able to make the right decisions about which algorithm to apply, taking into account the capabilities and limitations of the system.

  4. CLO 4: Is familiar with one of the environments used for professional writing of programs, is able to compile the program in that environment, "debug" process, manage versions of program codes (for example, with the "git" system).

  5. CLO 5: He knows the methods of testing software modules and is able to write test scenarios. must be aware of software readability and quality criteria.

  6. CLO 6: Using the learned knowledge, he should be able to create converters between different file formats, different parsers, programs for analyzing logs, extracting data using interfaces of different systems.

Topic plan

  1. 1.
    Basic concepts of programming.Lecture

    The basic concepts of programming and fundamental principles of algorithmic thinking are studied within the subject. the concept of algorithm, its main features and role in the development of programs are explained. compilation and interpretation processes, their working principles and main differences are reviewed. the main classification criteria of programming languages ​​are examined, general features, application areas and advantages of the c++ programming language are given.

  2. 2.
    Variables and data. type conversionsLecture

    Within the scope of the topic, the concept, creation, use of variables and the main operations performed on them are studied. the properties of global and local variables, visibility fields and differences between them are explained. the main characteristics of constants and their purpose in programming, as well as the role of comments in program code, are reviewed. basic data types and methods of conversion between different types are also explored.

  3. 3.
    Operators Lecture

    The main types of operators used in programming and their functions are studied within the subject. performing mathematical operations through arithmetic operators, comparison and the use of logical operators in formulating conditions are explained. the role of assignment operators in setting and changing the values ​​of variables is considered. also, the application of conditional operators in controlling the program execution flow is investigated.

  4. 4.
    Period operatorsLecture

    Within the subject, the main management and cycle operators used in the management of the program execution flow are studied. the application of the switch operator in the management of multivariate conditions, the working principles and usage characteristics of the for, while and do-while operators are explained. rules for using break and continue operators to control the execution of cycles are reviewed. also, the working principle of the goto operator and its application features in the program code are investigated.

  5. 5.
    Arrays and vectorsLecture

    In the framework of the topic, the concepts of array and vector, their main characteristics and purposes of use in programming are studied. the types of arrays, their creation, and the rules for accessing their elements through an index are explained. methods of creating and initializing vectors in the c++ programming language are considered. it also examines the main differences between arrays and vectors in terms of memory management, size flexibility, and usage characteristics.

  6. 6.
    Function. recursionLecture

    Within the scope of the topic, the concept of functions, their definition and their role in the structuring of the program code are studied. rules for creating functions, passing parameters and calling functions are explained. the definition of functions recursively and the working principle of recursive functions are considered. also, the main types of recursion and its application in solving various programming problems are investigated.

  7. 7.
    Indicators Lecture

    Within the scope of the topic, the concept of indicators, the main types of indicators and the rules for announcing them are studied. the principles of initializing pointers and working with memory addresses are explained. dynamic memory allocation and management, as well as the relationship between arrays and pointers, are reviewed. the concept of null pointer and the principles of safe use of pointers are also explored.

  8. 8.
    Lines Lecture

    In the framework of the topic, the concept of strings, the description of strings and the characteristics of their use in programming are studied. methods of creating and storing strings in the c++ programming language are explained. the rules for accessing individual symbols that make up strings through an index are reviewed. the principles of performing basic operations on strings and their elements are also examined.

  9. 9.
    Work with filesLecture

    Within the subject, the basic principles of working with files and file operations are studied in programming. rules for creating, opening, closing and deleting files are explained. file renaming and file management techniques are reviewed. also, the principles of writing data to files through the program and the methods of performing these operations are examined.

  10. 10.
    Oyp. structuresLecture

    The main concepts of object-oriented programming and its role in software development are studied within the subject. the main features, advantages and disadvantages of the object-oriented programming approach are reviewed. the concept of structure, the creation of structures and their use in organizing related data into a single structure is explained. also, the application characteristics of structured and object-oriented approaches in programming are investigated.

  11. 11.
    Loading functions and operatorsLecture

    Within the topic, the concepts of loading functions and operators and their application in object-oriented programming are studied. the principles of loading functions according to the type and number of parameters are explained. rules for reassigning operators for user-defined data types and class objects are reviewed. also, the concept of friend functions, their properties and their role in addressing members of the class are investigated.

  12. 12.
    Polymorphism Lecture

    Within the subject, the concept of polymorphism, which is one of the main principles of object-oriented programming, and its application in programming are studied. the properties of polymorphism that allow different objects to exhibit different behavior through the same interface are explained. the role and working principle of virtual functions in the implementation of dynamic polymorphism is considered. also, the definition of abstract functions and their use in object-oriented programming are investigated.

  13. 13.
    Inheritance Lecture

    In the framework of the topic, the concept of inheritance, which is one of the main principles of object-oriented programming, and its role in software development are studied. the rules for creating and defining successor classes, as well as the relationship between base and successor classes, are explained. the characteristics of the members of the successor classes and the principles of applying to them are considered. also, rules for creating objects based on inherited classes and using them are investigated.

Reading list

  1. Frances buontempo, introducing c++, o'reilly media, 2022, pp. 150
  2. Scott meyers, effective modern c++, 2014, pp. 334.
  3. Bjarne stroustrup, "the c++ programming language, 4th edition", 2013, pp.1366.
  4. Herbert schildt, "c++: the complete reference, 3rd edition", pp. 1008.

Assessment

FormDescriptionScoreRelated CLO
Cari qiymətləndirməCari qiymətləndirmə - fənn üzrə tələbənin semestr müddətində fəaliyyətinin qiymətləndirilməsi olmaqla, mühazirə və məşğələ (laboratoriya) dərs materiallarının mənimsənilmə səviyyəsini qiymətləndirilir.30 balFTN 1-6
DavamiyyətTələbə fənn üzrə dərslərin 25%-dən çoxunda iştirak etmədiyi halda imtahana buraxılmır.10 bal-
Tələbənin sərbəst işiTələbəyə fənn üzrə semestr ərzində 1 sərbəst işin (zəruri hallarda sərbəst işlərin sayı artırıla bilər) yerinə yetirilməsi tapşırığı verilir.10 balFTN--
İmtahanİmtahan şifahi, yazılı, yazılı-elektron, test üsulu ilə keçirilir50 balFTN 1-6