SylabUZ

Generate PDF for this page

Computer Programming 2 - course description

General information
Course name Computer Programming 2
Course ID 11.3-WK-MATEP-CP2-S22
Faculty Faculty of Exact and Natural Sciences
Field of study Mathematics
Education profile academic
Level of studies First-cycle studies leading to Bachelor's degree
Beginning semester winter term 2022/2023
Course information
Semester 2
ECTS credits to win 6
Course type obligatory
Teaching language english
Author of syllabus
  • dr inż. Paweł Wolański
Classes forms
The class form Hours per semester (full-time) Hours per week (full-time) Hours per semester (part-time) Hours per week (part-time) Form of assignment
Lecture 30 2 - - Exam
Laboratory 30 2 - - Credit with grade

Aim of the course

Mastering the ability to write Python programs using complex data structures. Ability to implement sorting, selection and search algorithms in programs. Basic knowledge of the NP-complete problem (classes P, NP, NP-complete). To familiarize the student with the basic concepts of object-oriented programming.

Prerequisites

Computer programming 1.

Scope

Lecture

  1. Python programming. Defining your own classes. Objects and references to objects. Constructors. Hermetization.. Object arrays. Reading and writing to text files.
  2. Methods for constructing effective algorithms. Recursion, divide and conquer method, greedy algorithms.
  3. Basic search algorithms. Linear, binary, interpolation search.
  4. Basic sorting and selection algorithms.
  5. Classes of computational complexity of problems. Decision-making and optimization problems. Classes of computational complexity of decision-making problems: P, NP, NP-complete.

Lab

  1. Defining your own classes.
  2. Creating and operating on arrays of objects.
  3. Reading and writing to text files.
  4. Dynamic data structures (stacks, queues, lists).
  5. Writing a program that is a simple database.

Teaching methods

Lecture: problem lecture.

Laboratory: laboratory exercises in a computer lab - writing and running self-written programs in Python, on topics given by the instructor, analysis of these programs and analysis of the algorithms used. Students will work on some programs in groups of 2-3 people. In the last three laboratories, each student works on an independently designed application that is a simple database containing all the skills acquired during classes. The application must be accompanied by documentation consistent with the given specification.

 

Learning outcomes and methods of theirs verification

Outcome description Outcome symbols Methods of verification The class form

Assignment conditions

Lecture. An exam verifying the effects of education in the field of knowledge and skills. The exam consists of two parts, written and oral. The condition for taking part in the oral part is to obtain 30% of the points in the written part. Obtaining 50% of the points in the written part guarantees a positive grade.

Lab. The final grade is based on the points obtained during the classes. Points are obtained for tests written during classes, applications presented during the last classes, and activity during classes.

The course grade consists of the laboratory grade (50%) and the exam grade (50%). The condition for taking the exam is a positive grade from the laboratory. The condition for passing the course is a positive grade in the exam

 

Recommended reading

  1. Python Crash Course, Eric Matthes, No Starch Press,US, 2023

  2. Fluent Python: Clear, Concise, and Effective Programming, Luciano Ramalho, O'Reilly, 2022
  3. Head-First Python (2nd Edition), Paul Barry, O'Reilly Media, 2016
  4. Learning Python (5th Edition), Mark Lutz, O'Reilly Media, 2013

Further reading

  1. http://pl.python.org

  2. https://docs.python.org/3/

Notes


Modified by dr Ewa Sylwestrzak-Maślanka (last modification: 07-02-2024 06:16)