Бакалавриат
2023/2024
Программирование на Python
Лучший по критерию «Полезность курса для Вашей будущей карьеры»
Лучший по критерию «Полезность курса для расширения кругозора и разностороннего развития»
Статус:
Курс обязательный (Прикладной анализ данных)
Направление:
01.03.02. Прикладная математика и информатика
Где читается:
Факультет компьютерных наук
Когда читается:
1-й курс, 1, 2 модуль
Формат изучения:
без онлайн-курса
Охват аудитории:
для своего кампуса
Преподаватели:
Вознесенская Тамара Васильевна,
Довгополый Иоанн Алексеевич,
Иванов Антон Павлович,
Копылов Иван Станиславович,
Рудаков Кирилл Александрович,
Смирнов Иван Васильевич
Язык:
английский
Кредиты:
4
Контактные часы:
84
Course Syllabus
Abstract
The course is intended to be taught during the first semester of the program, so it starts from the very beginning and takes into account, that some of the students may have zero experience in programming. The lectures and practical classes are closely inter-related. The lectures are primarily intended to introduce new topics, focus on more theoretical aspects whereas the practical classes are intended for solving specific problems by coding programs in Python.
Learning Objectives
- One of the objectives of this course is for the students to will study the methodology of programming.
- During this course, the students will develop algorithmic thinking.
- 3 During this course, the students will study approaches and toolkits for the development of Python applications.
- During this course, the students will practice application debugging and deployment with respect to various platforms and toolchains.
Expected Learning Outcomes
- Students will acquire skills in Python programming to formalize and solve simple development tasks.
- Students will learn basic concepts and methods of software development.
- Students will learn to select the most appropriate toolset for app development.
- Students will practice application debugging and deployment with respect to various platforms and toolchains.
Course Contents
- Introduction.
- Dynamic typing. Operations of sequence, selection, and iteration.
- Number systems. Float in the computer memory, rounding and other aspects.
- Strings.
- Functions and recursion. Lambda-functions. Named parameters.
- Tuples. Lists. Function map. Methods Split and Join.
- Zen of python. PEP-8. Files. Exceptions and errors. Program debugging.
- Sets. Dictionaries.
- Sort and found. Introduction into the complexity theory.
- Elements of functional programming. Function Enumerate. Module Functools.
- Object-oriented programming. Main ideas: encapsulation, inheritance and polymorphism. Operator Overriding. Function Isinstance. Examples.
- Python for data analysis. Overview.
Assessment Elements
- Ongoing Assessment 0.6The ongoing assessment grade is accumulated throughout all the classes and is related to a participant’s activity. An ongoing control structure is individual for every class. During the classes, there are some activities available for students to be involved in. They include (but are not limited by) writing code and developing project, evaluating practical problems, solving tests, answering questions and so on. If plagiarism is detected, the assessment element will be assigned a score of "0". If the student is suspected of preparing the task not on his own, the teacher has the right to initiate additional verification or defense of this particular assessment element. Then such an assessment element will be graded based on the additional verification or the defense.
- Control work, tests, quizzesStudents’ skills in programming are tested using automated testing. This way, a student is assigned an individual task, prepares it by using a personal computer and, then, submits it by using a special service, such as Yandex.Contest or a repository-based tool. A professor decides whether to request students to defend their work (home, control, exam). The specific solution can be subject to further clarification. If plagiarism is detected, the assessment element will be assigned a score of "0". If the student is suspected of preparing the task not on his own, the teacher has the right to initiate additional verification or defense of this particular assessment element. Then such an assessment element will be graded based on the additional verification or the defense.
- Exam 0.4Exam, which takes place at the end of the first quartile. If plagiarism is detected, the assessment element will be assigned a score of "0". If the student is suspected of preparing the task not on his own, the teacher has the right to initiate additional verification or defense of this particular assessment element. Then such an assessment element will be graded based on the additional verification or the defense. If plagiarism is detected, the assessment element will be assigned a score of "0". If the student is suspected of preparing the task not on his own, the teacher has the right to initiate additional verification or defense of this particular assessment element. Then such an assessment element will be graded based on the additional verification or the defense.
- Homework (Contests)Students’ skills in programming are tested using automated testing. This way, a student is assigned an individual task, prepares it by using a personal computer and, then, submits it by using a special service, such as Yandex.Contest or a repository-based tool. A professor decides whether to request students to defend their work (home, control, exam). The specific solution can be subject to further clarification. If plagiarism is detected, the assessment element will be assigned a score of "0". If the student is suspected of preparing the task not on his own, the teacher has the right to initiate additional verification or defense of this particular assessment element. Then such an assessment element will be graded based on the additional verification or the defense.
Interim Assessment
- 2023/2024 2nd moduleFinal grade = 0.4*E1 + 0.6*OA Where: E1 – Exam mark, OA – Ongoing Assessment 𝑂𝐴=10∗(𝑅𝑃+𝐵𝑃)/𝑅𝑃_𝑚𝑎𝑥 RP – Regular Points: Home work (Contests) – 1 per task Control work, tests, quizzes 𝑅𝑃_𝑚𝑎𝑥= ∑_𝑎𝑐𝑡𝑖𝑣𝑖𝑡𝑖𝑒𝑠 (max𝑝𝑜𝑠𝑠𝑖𝑏𝑙𝑒 𝑅𝑃) BP - Bonus Points: Extra task (with *) at contests (for main groups) Working during the workshop Activity at almost all workshops Other achievements at the teacher discretion
Bibliography
Recommended Core Bibliography
- Pilgrim, M. (2009). Dive Into Python 3. New York: Apress. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=326208
Recommended Additional Bibliography
- Schneider, D. I. (2016). An Introduction to Programming Using Python, Global Edition: Vol. Global edition. Pearson.