Logo ČVUT
CZECH TECHNICAL UNIVERSITY IN PRAGUE
STUDY PLANS
2023/2024

Procedural Programming

Login to KOS for course enrollment Display time-table
Code Completion Credits Range Language
B0B36PRP Z,ZK 6 2P+2C Czech
Vztahy:
During a review of study plans, the course A0B36PR1 can be substituted for the course B0B36PRP.
It is not possible to register for the course B0B36PRP if the student is concurrently registered for or has already completed the course A0B36PR1 (mutually exclusive courses).
Garant předmětu:
Jan Faigl
Lecturer:
Jan Faigl
Tutor:
Jan Bayer, Jakub Dupák, Jan Faigl, Jan Feber, Ingrid Nagyová, Martin Zoula
Supervisor:
Department of Computer Science
Synopsis:

The course accompanies basic programming emphasizing the data representation in computer memory. Furthermore, the concepts of linked data structures and processing user inputs are developed. Students master the practical implementation of simple individual tasks. The course emphasizes acquiring programming habits for creating readable and reusable programs. At the same time, the effort is to build students an overview of the program operation, data model, memory access, and management. Therefore, the C programming language is used that provides a direct link between the program data structures and their representation in the computer memory. Students will get acquainted not only with program compilation and linking but also with debugging and profiling. Labs aim to acquire practical skills of implementing simple individual tasks, emphasizing functionality and accuracy of implementation. Student independence is developed by a set of homework with the possibility of optional and bonus assignments. The final task is an integration of a larger program using existing implementations. Evaluation of coding style motivated by writing legible, understandable, and maintainable codes is also a part of the selected tasks.

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://cw.felk.cvut.cz/wiki/courses/b0b36prp
Time-table for winter semester 2023/2024:
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
roomT2:H1-131
Dupák J.
09:15–10:45
(lecture parallel2
parallel nr.203)

Dejvice haly
AlgDejvice
roomT2:H1-130
Nagyová I.
12:45–14:15
(lecture parallel2
parallel nr.201)

Dejvice haly
AlgDejvice - Veřejná
roomT2:H1-131
Zoula M.
14:30–16:00
(lecture parallel2
parallel nr.207)

Dejvice haly
AlgDejvice
roomT2:H1-130
Bayer J.
09:15–10:45
(lecture parallel2
parallel nr.204)

Dejvice haly
AlgDejvice - Veřejná
roomT2:H1-131
Zoula M.
12:45–14:15
(lecture parallel2
parallel nr.202)

Dejvice haly
AlgDejvice
roomT2:H1-130
Nagyová I.
14:30–16:00
(lecture parallel2
parallel nr.208)

Dejvice haly
AlgDejvice - Veřejná
roomT2:H1-130
Feber J.
11:00–12:30
(lecture parallel2
parallel nr.205)

Dejvice haly
AlgDejvice - Veřejná
roomT2:H1-131
Dupák J.
11:00–12:30
(lecture parallel2
parallel nr.206)

Dejvice haly
AlgDejvice
Tue
Wed
Thu
roomT2:D3-209
Faigl J.
12:45–14:15
(lecture parallel2)
Dejvice
T2:D3-209
roomKN:E-205
Faigl J.
14:30–16:00
(lecture parallel2
parallel nr.444)

Karlovo nám.
Koníčkova konzultačka
roomKN:E-107
Faigl J.
12:45–14:15
(lecture parallel2)
Karlovo nám.
Zengerova posluchárna K1
Fri
Time-table for summer semester 2023/2024:
Time-table is not available yet
The course is a part of the following study plans:
Data valid to 2024-06-20
Aktualizace výše uvedených informací naleznete na adrese https://bilakniha.cvut.cz/en/predmet4702606.html