Basics of algorithmization and programming
For more information contact:
Leading specialistOrdynskaya Marina Yurievna, room 607-7., tel. +375 17 397-82-95, +375 29 639-65-63,
e-mail:ordinskaya@bsuir.by
leading specialistKrischenovich Veronika Anatolyevna,room 607-7., tel. +375 17 397-82-95, +375 29 390-88-95,
e-mail:krish@bsuir.by
Deputy DeanGarbuz Vitaly Borisovich, room 402-8., tel. +375 29 686-61-14,
e-mail:garbuz@bsuir.by
Registration is carried out via an electronic form. Training begins as groups are formed.
Price
550 BYN
Duration
60 hours
About the program
Purpose of the course– acquiring skills in solving logical problems, drawing up and reading algorithm diagrams, studying the basic structures of a programming language, developing algorithmic thinking, developing skills in competent program development, deepening knowledge, skills and abilities in solving problems of typical algorithmic problems.
Course program
Algorithmization Basics
Task. Solving the problem. The concept of an algorithm. Properties of algorithms. Methods for describing algorithms. Basic algorithmic constructions. Forms of presentation of algorithms: natural language, flowchart, formal language. Drawing up flowcharts of algorithms. Program. Types of software: system, application, tools (developer tools). Three-level software product model. Hierarchical organization of the program, modularity. Visibility area and lifetime. Software module sections
Data presentation. Program control principle
Fundamentals of algebra logic. Number systems. Connections between number systems. Basics of binary arithmetic. The principle of program control. Basic architecture and structure of a computer. Von Neumann's principle. Units for measuring the capacity of storage devices. Representation of different types of data in a computer: integer data and floating point numbers, fixed and variable length strings, characters, logical values, dates. Ranges for representing numbers in the binary number system. Representation of symbolic information. Code tables. The concept of data type. The concepts of translator, compiler, interpreter. Static and dynamic compilation
Methodologies and programming languages
Stages and stages of program development. Design. Implementation. Programming problems. Programming methodologies. Classification of programming methodologies (structural, object-oriented, logical, functional, constraint programming). Structured programming. Basic principles (step-by-step detailing, modular structured programming). Object-oriented programming. Basic principles (abstraction; encapsulation; inheritance, polymorphism). Programming languages. Classification.
Data structures. Database Design Fundamentals
Basic data structures - arrays and records. Basic operations on data structures. Dynamic data structures. Lists. Stacks. Trees. Information system. The concept of a database. User requirements for databases.
The concept of "interface"
Interface options: UI, GUI, etc. The importance of proper interface development. Methods for building a dialogue with the user.
Variables
Composition and structure of a programming language. Comments. Variables. Determining the variable name. Variable declaration. Initializing a variable by default and from code. Scope and lifetime of variables. Name shading. Assignment operator. Variable types. Type conversion is explicit and implicit. Standard operations with variables. Constants. A pointer or reference to a variable.
Programming language. Operators.
The concept of an operator. Recording operators. Multiline operators, the concept of a block. Condition operator. Drawing up conditions: comparing numeric values, dates, string and logical values. Drawing up complex conditions: using the logical operations OR, AND, XOR, NOT. Priority of operations. Nested operators. Optimization of conditions. Selection operator. Optimization of the selection operator. Loop operator: loops with precondition, with postcondition, with parameter. Loop to traverse the elements of a group. Concepts: loop body, loop condition, counter, iteration. Using a loop counter. Loop early exit operator.
Procedures and functions
Decomposition of a task into subtasks. Top-down and bottom-up programming. The black box paradigm. Subroutine input and output data. Concepts: subroutine, procedure, function. Standard procedures, custom procedures, event processing. Description, declaration, procedure call. Function libraries. Calling a procedure and function. Arguments are formal and factual. Argument type. Passing arguments by value and by reference. The value returned by the function. Ways of interaction between different program fragments. Structural decomposition.
Ways to organize data
The concept of an array. Arrays are one-dimensional and multi-dimensional. The concept of index and array element. Calculating the amount of memory occupied by an array. Typical tasks with arrays: accessing an element, traversing elements, initializing elements. Presentation of text information. The concept of a string. Different ways to organize string data. Working with individual characters. Custom data type (structure). Declaring and using a custom type. Sharing custom data types and arrays.
Solving general algorithmic problems
Finding an element in an array: linear, binary and interpolation algorithms. Finding the largest and smallest element in an array. Various ways to sort array elements: direct selection method, insertion method, bubble sort. Estimation of algorithm complexity and comparison of algorithms. Algorithms for working with strings. Splitting and merging strings, searching and extracting substrings, removing substrings, parsing text. Recursive and iterative algorithms. Recursive mathematical functions using the example of factorial calculation.
Apply for the program
Basics of algorithmization and programming