Logo ČVUT
CZECH TECHNICAL UNIVERSITY IN PRAGUE
STUDY PLANS
2021/2022

Procedural Programming

Login to KOS for course enrollment Display time-table
Code Completion Credits Range Language
BD5B36PRP Z,ZK 6 14KP+6KC Czech
Lecturer:
Ivan Jelínek (guarantor)
Tutor:
Ivan Jelínek (guarantor)
Supervisor:
Department of Computer Science
Synopsis:

Předmět provází základními rysy procedurálního programování s důrazem na paměťovou reprezentaci dat v paměti počítače. Dále jsou rozvíjeny koncepty spojových datových struktur a zpracování uživatelského vstupu. V předmětu je kladen důraz na osvojení si programovacích návyků pro vytváření čitelných a znovu použitelných programů. Zároveň je snahou vybudovat u studentů nadhled nad fungováním programu, datového modelu, přístupem a správou paměti. Proto je ve výuce využit programovací jazyk C, který poskytuje přímou vazbou mezi programem a alokovaným paměťovým prostorem. Studentky a studenti se v předmětu seznámí nejen s překladem zdrojových kódů a linkováním aplikace, ale také s laděním a profilováním programu. Cvičení jsou cílena na osvojení si praktických dovedností implementace samostatných jednoduchých úkolů s důrazem na funkčnost a správnost implementací. Samostatnost je rozvíjena v domácích úkolech s možností realizace volitelných a bonusových úkolů. Závěrečný úkol je integrační úloha většího rozsahu. U vybraných úkolů je součástí hodnocení kódovacího stylu motivované psaním čitelných, srozumitelných a udržovatelných kódů.

Requirements:

The main topics for the course exam are: expressions, control structures, program structuring, procedures and functions, parameter passing mechanism, value and reference calls; Abstract data type; C program translation and language data types; structured data types, arrays, files, pointers, pointers, and arrays.

Syllabus of lectures:

1. Course information, Introduction to programming and data representation

2. Introduction to programming in C

3. Writing code in C, control structures

4. Control structures, expressions, and functions

5. Arrays, pointers, and text strings.

6. Pointers, storage classes, and function calls

7. Structures and unions; Numerical accuracy and internal representation of numerical types

8. Standardní C library; Recursion

9. Linked structures

10. Trees

11. Abstract Data Type (ADT) - stack, queue, and priority queue

12. Priory queue (heap) and its usage in shortest pathfinding in a graph

13. (Reserve) Brief introducion to C++

14. (Reserve) C++ by examples

Syllabus of tutorials:

Practical exercises focus on acquiring and practicing programming habits to create readable and portable codes independently. Task assignments are submitted to the evaluation system and tested for robust handling of the input values. During the semester, students earn points for submitted assignments and tests. The scoring of the task consists of points for the correctness and efficiency of the code and points that take into account the quality of the source codes, their readability, and reusability.

1. Introductory exercises - the first program in C

2. Input and output of the program

3. Control structures, functions, and program debugging

4. Loops

5. Nested loops

6. Arrays and text strings

7. Dynamic allocation

8. Debugging

9. Recursion

10. Structures and linked lists

11. Working with files

12. Dividing Programs into Modules

13. (Reserve) Consultations for semester assignments

14. (Reserve) Consultations for semester assignments

Study Objective:

Gaining experience with programming and gaining programming habits of creating functional and properly implemented programs. Acquiring the writing of readable, understandable, easy-to-maintain, and reusable programs. Understanding foreign codes.

Study materials:

• Kochan: Programming in C, (3rd Edition or later), 2014.

• King: C Programming: A Modern Approach, (2nd Edition or later), 2008.

• Klemens: 21st Century C: C Tips from the New School, 2012.

• Sedgewick, Wayne: Algorithms (4th Edition or later), 2011.

• Cormen, Leiserson, Rivest, and Stein: Introduction to Algorithms, (3rd Edition or later), 2009.

Note:
Further information:
https://moodle.fel.cvut.cz/local/kos/pages/course/info.php?id=6221
Time-table for winter semester 2021/2022:
06:00–08:0008:00–10:0010:00–12:0012:00–14:0014:00–16:0016:00–18:0018:00–20:0020:00–22:0022:00–24:00
Mon
Tue
Wed
Thu
Fri
roomT2:H1-130
Jelínek I.
13:30–15:15
EVEN WEEK

(lecture parallel1)
Dejvice haly
AlgDejvice - Veřejná
roomT2:C4-363
Jelínek I.
13:30–15:15
EVEN WEEK

(lecture parallel1)
Dejvice
Cvicebna
Time-table for summer semester 2021/2022:
Time-table is not available yet
The course is a part of the following study plans:
Data valid to 2022-08-12
For updated information see http://bilakniha.cvut.cz/en/predmet4977806.html