Course detail

Computer Science

FSI-1IN-A Acad. year: 2027/2028 Winter semester

This course provides an introduction to algorithmization and imperative programming in Python, focusing on solving simple engineering problems. Students learn to analyze problems, design algorithms, and implement them using basic and composite data types, control structures, and functions. The course covers file handling, numerical data processing, basic matrix and numerical computations (using the NumPy and SciPy libraries), and data visualization (using Matplotlib).

Instruction combines lectures with practical computer-based exercises, during which students independently implement and test programs designed to solve simple technical problems. Emphasis is placed on algorithmic thinking, the correctness and readability of the code, and the interpretation of the obtained results.

Language of instruction

English

Number of ECTS credits

5

Entry knowledge

Basic user-level computer literacy—including familiarity with files and directory structures—and the ability to use common software applications are expected. Students should have a grasp of high school-level mathematics, particularly regarding mathematical expressions, functions, and graphs. No prior programming experience is required.

Rules for evaluation and completion of the course

The maximum score is 100 points (ECTS), distributed across 2 interim tests (totaling 50 points) and one final project (50 points). To successfully complete the course, a student must earn a total of at least 50 points, including at least 25 points from the final project. Failure to meet any of these conditions results in failing the course.

Attendance at lectures is encouraged, while attendance at practical sessions (exercises) is mandatory. Instruction follows a weekly schedule. The procedure for making up missed practical sessions is entirely at the instructor's discretion.

Aims

Upon successfully completing the course, the student will be able to:

  1. Analyze the specifications of a simple engineering problem, identify its inputs and outputs, and propose an algorithmic solution.
  2. Develop and execute a Python program utilizing basic data types, operators, conditional statements, and loops.
  3. Decompose a program into functions, appropriately employ composite data types, and implement simple algorithms.
  4. Read, process, and save data using files, and perform basic numerical and matrix computations using the NumPy library.
  5. Create and describe graphical representations of data or computational results using the Matplotlib library, and interpret the findings within the context of the problem being solved.
  6. Verify the correctness of the developed program using selected input data, identify common programming errors, and propose solutions to fix them.

Study aids

Study materials for lectures and computer exercises are provided via the BUT e-learning system. They include instructional presentations, practical task assignments, sample programs, and data files.

The study programmes with the given course

Programme B-STI-A: Fundamentals of Mechanical Engineering, Bachelor's, compulsory

Programme B-STI-Z: Fundamentals of Mechanical Engineering, Bachelor's, recommended course

Type of course unit

 

Lecture

26 hours, optionally

Syllabus

1. Introduction to computer science and Python.
2. System modeling, problem analysis.
3. Basic data types, operations and functions.
4. Control structures.
5. Variables and composite data types.
6. Algorithmization.
7. Numpy, Scipy, matrix operations.
8. Matplotlib, visualization.
9. Recursion.
10. Working with files.
11. Testing, debugging, exceptions, prompting.
12. Symbolic and numerical calculations (SymPy).
13. Current trends, final summary and discussion.

Computer-assisted exercise

26 hours, compulsory

Syllabus

1. Python language, simple expressions.
2. Operators and variables.
3. Functions.
4. Control structures I.
5. Control structures II.
6. Variables and composite data types.
7. Algorithmization.
8. Numpy, Scipy, matrix operations.
9. Matplotlib, visualization.
10. Recursion.
11. Working with files.
12. Final test.
13. Credit.