Current Programming Media and Languages

Kumargazhanova Saule Kumargazhanovna

The instructor profile

Description: A comparative survey of modern programming language paradigms. Includes an examination of the properties, applications, syntax, and semantics of selected programming languages and consider the implementation of their programming environments: R; Python; Node JS; Haskell.

Amount of credits: 5

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

  • Algorithmization and programming fundamentals

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

Component: University component

Cycle: Base disciplines

Goal
  • To explore a range of modern programming languages and programming techniques.
  • The ability to select suitable software development tools for specified application environments.
  • The ability to select suitable software development tools for given application environments.
Objective
  • To learn to compare and contrast a range of programming paradigms
  • To learn evaluate programming language features critically with respect to the way they support good software engineering practice
  • To learn to discuss the appropriateness of the use of a given programming paradigm within a given environment
Learning outcome: knowledge and understanding
  • Identify the common concepts used to create programming languages
  • Compare and contrast factors and commands that affect the programming state
Learning outcome: applying knowledge and understanding
  • Explain the evolution and key features of the major programming languages
  • Analyze and evaluate new programming languages and new language features
Learning outcome: formation of judgments
  • Illustrate how execution ordering affects programming
Learning outcome: communicative abilities
  • Identify the basic objects and constructs in Object-Oriented Programming
Learning outcome: learning skills or learning abilities
  • Explain the characteristics of pure functional functions in functional programming
  • Description of the structure and components used in logic programming
Teaching methods

интерактивная лекция (проблемная лекция, дискуссионная лекция, лекция-конференция, лекция-консультация, лекция «Пресс-конференция», лекция «Вопросы-ответы-обсуждение»);

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 Лабораторная работа 1 0-100
Лабораторная работа 2
Лабораторная работа 3
Лабораторная работа 4
Рубежный контроль 1
2  rating Лабораторная работа 5 0-100
Лабораторная работа 6
Лабораторная работа 7
Лабораторная работа 8
Рубежный контроль 2
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
Собеседование по контрольным вопросам демонстрирует сиcтемные теоретические знания, владеет терминологией, логично и последовательно объясняет сущность явлений и процессов, делает аргументированные выводы и обобщения, приводит примеры, показывает свободное владение монологической речью и способность быстро реагировать на уточняющие вопросы демонстрирует прочные теоретические знания, владеет терминологией, логично и последовательно объясняет сущность явлений и процессов, делает аргументированные выводы и обобщения, приводит примеры, показывает свободное владение монологической речью, но при этом делает несущественные ошибки, которые исправляет самостоятельно или при незначительной коррекции преподавателем демонстрирует неглубокие теоретические знания, проявляет слабо сформированные навыки анализа явлений и процессов, недостаточное умение делать аргументированные выводы и приводить примеры, показывает недостаточно свободное владение монологической речью, терминологией, логичностью и последовательностью изложения, делает ошибки которые может исправить только при коррекции преподавателем. демонстрирует незнание теоретических основ предмета, несформированные навыки анализа явлений и процессов, не умеет делать аргументированные выводы и приводить примеры, показывает слабое владение монологической речью, не владеет терминологией, проявляет отсутствие логичности и последовательности изложения, делает ошибки, которые не может исправить даже при коррекции преподавателем, отказывается отвечать на занятии
Работа на лабораторных занятиях выполняет лабораторную работу в полном объеме с соблюдением необходимой последовательности действий; в отчете без ошибок приводит программный код и блок-схему. При ответе на вопросы правильно понимает сущность вопроса, дает точное определение и истолкование основных понятий; сопровождает ответ примерами; может установить связь между изучаемым и ранее изученным материалом; выполняет в полном объеме индивидуальное задание на защиту лабораторной работы, выданное преподавателем. выполняет требования к оценке «5», но допущены 2-3 недочета; в отчете присутствуют незначительные ошибки в программном коде и блок-схеме. Ответ обучающегося на вопросы удовлетворяет основным требованиям к ответу на 5, но дан без использования связей с ранее изученным; допущены незначительные ошибки и недочеты, обучающийся может их исправить самостоятельно или с небольшой помощью преподавателя; при выполнении индивидуального задания на защиту лабораторной работы допускает незначительные ошибки в программном коде. выполняет работу не полностью, но не менее 50% объема лабораторной работы; в ходе проведения работы были допущены ошибки. При ответе на вопросы обучающийся правильно понимает сущность вопроса, но в ответе имеются отдельные проблемы в усвоении вопросов курса, не препятствующие дальнейшему усвоению программного материала; при выполнении индивидуального задания на защиту лабораторной работы допускает ошибки в программном коде или блок-схеме. выполняет работу не полностью или объем выполненной части работ не позволяет сделать правильных выводов. При ответе на вопросы демонстрирует не владение основными знаниями и умениями в соответствии с требованиями программы; допущено больше ошибок и недочетов, чем необходимо для оценки 3 или не может ответить ни на один из поставленных вопросов; не может выполнить индивидуальное задание на защиту лабораторной работы, выданное преподавателем.
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
  • History of programming languages
  • Functional and imperative languages
  • Modularity, abstraction, and object-oriented programming
  • Concurrent and distributed programming
  • Logic programming
  • Programming for Data Science
  • Big Data programming
  • Getting data from public sources
  • Data visualization
  • Machine learning
  • Introduction to modern web applications
  • Programming web services
  • Web APIs
  • Web strategies
  • Social Web programming
Key reading
  • Harper R. Practical foundations for programming languages. – Cambridge University Press, 2016.
  • Tattar P. et al. Practical Data Science Cookbook-: Data pre-processing, analysis and visualization using R and Python. – 2017.
  • Cantelon M. et al. Node. js in Action. – Manning Publications, 2017.
  • Hutton G. Programming in Haskell. – Cambridge University Press, 2016.
Further reading
  • Wexelblat R. L. (ed.). History of programming languages. – Academic Press, 2018.
  • Zomaya A. Y., Sakr S. (ed.). Handbook of Big Data Technologies. – Springer, 2019.
  • Holmes S. Getting MEAN with Mongo, Express, Angular, and Node. – Manning Publications Co., 2019.
  • Thompson S. Haskell: the craft of functional programming. – Addison-Wesley, 2020. – Vol. 2.