Modern programming language

Tezekpaeva Shynar Tolegenovna

The instructor profile

Description: The course aims to equip students with confident programming skills to enable them to work successfully in various areas of IT

Amount of credits: 5

Пререквизиты:

  • Algorithmization and programming

Course Workload:

Types of classes hours
Lectures 15
Practical works
Laboratory works 30
SAWTG (Student Autonomous Work under Teacher Guidance) 30
SAW (Student autonomous work) 75
Form of final control Exam
Final assessment method Oral examination by tickets

Component: Component by selection

Cycle: Base disciplines

Goal
  • The aim of the course is to provide undergraduates with the fundamental knowledge and skills necessary to master popular programming languages
Objective
  • To teach students the basic principles of programming, including syntax, semantics and language structure, so that they can write simple programs and solve basic problems
  • To teach students to design and implement software solutions using the principles of object-oriented programming and structural design
  • To familiarise students with modern tools and technologies such as databases, network programming and web development to create a complete software product
  • Prepare students to work in teams by teaching them how to collaboratively develop, test and maintain software, as well as the principles of project management
Learning outcome: knowledge and understanding
  • Understand basic programming principles, including syntax, semantics and structure of programming languages
  • Know basic data structures (arrays, lists, sets, dictionaries) and algorithms (search, sorting) and their application in problem solving
  • Understand OOP concepts such as classes, objects, inheritance and polymorphism and be able to explain their meaning and application
Learning outcome: applying knowledge and understanding
  • Be able to apply their knowledge to design and implement software applications using selected programming languages
  • Be able to integrate and utilise third-party libraries and frameworks to accelerate development, including working with web development, data science and machine learning tools
  • Be able to apply testing and code debugging techniques to detect and correct errors, and ensure the reliability and stability of their software solutions. This includes writing tests and using debuggers to analyse program behaviour
Learning outcome: formation of judgments
  • Be able to analyse and evaluate different algorithms and data structures in terms of their execution time and memory usage, drawing reasonable conclusions about choosing the most optimal solution for a particular problem
  • Be able to analyse and evaluate different algorithms and data structures in terms of their execution time and memory usage, drawing reasonable conclusions about choosing the most optimal solution for a particular problem
  • Be able to critically evaluate the quality of written code, its readability, modularity and security, suggesting ways to improve and optimise it, and adhering to best development practices
Learning outcome: communicative abilities
  • Be able to present their projects and ideas clearly and persuasively, both orally and in writing, using appropriate technical terminology and visual aids
  • Develop teamwork skills, including active listening, constructive criticism and the ability to collaborate to achieve common goals in software development
  • Be able to create quality documentation for your code and projects, ensuring that the information is accessible to other developers and users. This includes writing comments, usage instructions and technical specifications
Learning outcome: learning skills or learning abilities
  • Develop the ability to independently learn and master new programming languages, frameworks and tools using a variety of resources such as documentation, online courses and developer communities
  • Be able to critically analyse and evaluate information obtained from various sources and apply it to solve practical problems in programming
  • Develop skills in planning their learning activities by setting realistic goals, allocating time for studying and completing assignments, enabling them to learn the material effectively and manage projects
Teaching methods

Training using online platforms of VKTU named after D.Serikbayev

Practice-oriented approach

Application of modern programming systems

Assessment of the student's knowledge

Teacher oversees various tasks related to ongoing assessment and determines students' current performance twice during each academic period. Ratings 1 and 2 are formulated based on the outcomes of this ongoing assessment. The student's learning achievements are assessed using a 100-point scale, and the final grades P1 and P2 are calculated as the average of their ongoing performance evaluations. The teacher evaluates the student's work throughout the academic period in alignment with the assignment submission schedule for the discipline. The assessment system may incorporate a mix of written and oral, group and individual formats.

Period Type of task Total
1  rating Laboratory work 1 0-100
Laboratory work 2
Laboratory work 3
2  rating Laboratory work 4 0-100
Laboratory work 5
Laboratory work 6
Total control Exam 0-100
The evaluating policy of learning outcomes by work type
Type of task 90-100 70-89 50-69 0-49
Excellent Good Satisfactory Unsatisfactory
Execution of laboratory tasks
Interim tests or quizzes
Development and presentation of the completed project
Evaluation form

The student's final grade in the course is calculated on a 100 point grading scale, it includes:

  • 40% of the examination result;
  • 60% of current control result.

The final grade is calculated by the formula:

FG = 0,6 MT1+MT2 +0,4E
2

 

Where Midterm 1, Midterm 2are digital equivalents of the grades of Midterm 1 and 2;

E is a digital equivalent of the exam grade.

Final alphabetical grade and its equivalent in points:

The letter grading system for students' academic achievements, corresponding to the numerical equivalent on a four-point scale:

Alphabetical grade Numerical value Points (%) Traditional grade
A 4.0 95-100 Excellent
A- 3.67 90-94
B+ 3.33 85-89 Good
B 3.0 80-84
B- 2.67 75-79
C+ 2.33 70-74
C 2.0 65-69 Satisfactory
C- 1.67 60-64
D+ 1.33 55-59
D 1.0 50-54
FX 0.5 25-49 Unsatisfactory
F 0 0-24
Topics of lectures
  • Introduction to Programming Languages: History, Classification and Basic Concepts
  • Syntax and semantics of programming languages: basic elements, rules and programme structure
  • Data types and variables: basic and composite data types, declaration and initialisation of variables
  • Control structures: conditional operators and loops (if, switch, for, while)
  • Functions and procedures: declaration, parameters, return values and scope
  • Data structures: arrays, lists, sets and dictionaries; selecting the appropriate structure for the problem
  • Object-oriented programming: basic concepts (classes, objects, inheritance, polymorphism)
  • Exceptions and error handling: the exception handling mechanism and its use to improve code reliability
  • Modules and libraries: code organisation, using third-party libraries and creating your own modules
  • Network programming: networking basics, client-server architecture and creating simple network applications
  • Basics of parallel and asynchronous programming: threads, processes and asynchronous operations
  • Testing and debugging code: testing methods, using debuggers and writing tests
  • Working with databases: basics of working with relational databases, SQL and ORM
  • Web application development: basic principles of web development, frameworks and client-server interaction
  • The Future of Programming Languages: Current Trends, New Languages and Technologies, Development Prospects
Key reading
  • Северенс, Ч. Введение в программирование на Python / Ч. Северенс. - 2-е изд., испр. - Москва : Национальный Открытый Университет «ИНТУИТ», 2018. - 231 с.: схем., ил.; [Электронный ресурс]. - URL: http://biblioclub.ru/index.php?page=book&id=429184
  • Буйначев, С.К. Основы программирования на языке Python : учебное пособие / С.К. Буйначев, Н.Ю. Боклаг ; Министерство образования и науки Российской Федерации, Уральский федеральный университет имени первого Президента России Б. Н. Ельцина. -Екатеринбург : Издательство Уральского университета, 2020. - 92 с. : табл., ил. - Библиогр. в кн. - ISBN 978-5-7996-1198-9 ; [Электронный ресурс]. -URL: http://biblioclub.ru/index.php?page=book&id=275962
  • Хахаев, И.А. Практикум по алгоритмизации и программированию на Python : курс / И.А. Хахаев. - 2-е изд., исправ. - Москва : Национальный Открытый Университет «ИНТУИТ», 2019. - 179 с. : ил. - Библиогр. в кн.; [Электронный ресурс]. -URL: http://biblioclub.ru/index.php?page=book&id=429256
Further reading
  • Доусон М. Программируем на Python. – СПб.: Питер, 2014. – 416 с.
  • Лутц М. Изучаем Python, 4-е издание. – Пер. с англ. – СПб.: Символ-Плюс, 2020. – 1280 с.
  • Лутц М. Программирование на Python, том I, 4-е издание. – Пер. с англ. – СПб.: Символ-Плюс, 2018. – 992 с.
  • Хахаев И.А. Практикум по алгоритмизации и программированию на Python. – М.: Альт Линукс, 2018. — 126 с.