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
Supervisor
Department
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:
- Analyze the specifications of a simple engineering problem, identify its inputs and outputs, and propose an algorithmic solution.
- Develop and execute a Python program utilizing basic data types, operators, conditional statements, and loops.
- Decompose a program into functions, appropriately employ composite data types, and implement simple algorithms.
- Read, process, and save data using files, and perform basic numerical and matrix computations using the NumPy library.
- 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.
- 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.