Course detail

Algorithms and Programming

CESA-SPRGAcad. year: 2021/2022

The course is designed as an introduction to the problems of algorithms and programming. Students are introduced to the basic concepts of programming, development of algorithms and programs. The emphasis is on the design and implementation of programs. The knowledge of the basic elements of the program is required and students should be able to use these elements. Students are familiar with the programming language Python, which will be used for solving simple problems.

Language of instruction

Czech

Number of ECTS credits

4

Mode of study

Not applicable.

Learning outcomes of the course unit

Students are able to:
- propose algorithms of simple tasks,
- use basic elements of the program (variables, mathematical operations, conditions, loops, etc.),
- use an iterative and recursive procedures,
- designed algorithms written in the programming language Python,
- work with the basic data structures,
- create a search function and basic methods of sorting by known algorithms,
- create own toolboxes of functions,
- to describe and explain custom programs. 

Prerequisites

Secondary-school knowledge of the study area.

Co-requisites

Not applicable.

Planned learning activities and teaching methods

Teaching methods depend on the type of course unit as specified in the article 7 of BUT Rules for Studies and Examinations.

Assesment methods and criteria linked to learning outcomes

Students must obtain at least 50 points out of total 100 points in the sub-activities:
1. midterm test (min. 15 points, max. 30 points),
2. final test (min. 25 points, max. 50 points),
3. home works (10 x 2 points, max. 20 points).
Individual activities to check students' ability to design algorithms for solving simple problems and demonstrate the implementation of the relevant programs. 

Course curriculum

1. Programming, algorithm, introduction to Python
2. Review of basic data types and their use, strings
3. Basic elements of the program, conditions, lists and their use
4. Basic elements of the program, for loops and examples I.
5. Basic elements of the program, while loops and examples II.
6. Function and modules
7. Git basics
8. File handling in Python
9. Review of basic data structures and their use
10. Performance analysis of algorithms, time complexity
11.Search algorithms
12. Sorting algorithms
13. Recursion, divide and conquer 

Work placements

Not applicable.

Aims

The aim of the course is to introduce basic programming habits. Further to introduce Python programming language and basics of algorithmic problem solving. 

Specification of controlled education, way of implementation and compensation for absences

Computer exercises are mandatory, properly excused missed lectures can be compensated individually after discussion with teacher.

Recommended optional programme components

Not applicable.

Prerequisites and corequisites

Not applicable.

Basic literature

BARDOŇOVÁ, J.: Algoritmizace a programování. Brno: VUT v Brně, 2007. (CS)
Lee, Kent D ; Hubbard, Steve ; Cham: Data Structures and Algorithms with Python, Springer International Publishing ; 2015 Undergraduate Topics in Computer Science (EN)
Padmanabhan, T R: Programming with Python, Springer Nature Singapore Pte Ltd. 2016 (EN)

Recommended reading

Wirth N: Algorithms + Data Structures = Programs, Prentice-Hall, New Jersey, 1985, ISBN 0-13-022418-9 (EN)

Elearning

Classification of course in study plans

  • Programme SPC-STC Bachelor's 1 year of study, summer semester, compulsory

Type of course unit

 

Computer-assisted exercise

39 hod., compulsory

Teacher / Lecturer

Syllabus

1. Programming, algorithm, introduction to Python
2. Review of basic data types and their use, strings
3. Basic elements of the program, conditions, lists and their use
4. Basic elements of the program, for loops and examples I.
5. Basic elements of the program, while loops and examples II.
6. Function and modules
7. Git basics
8. File handling in Python
9. Review of basic data structures and their use
10. Performance analysis of algorithms, time complexity
11.Search algorithms
12. Sorting algorithms
13. Recursion, divide and conquer 

Elearning