Skip to main content
Skip header

ECTS Course Overview



Introduction to Programming

* Exchange students do not have to consider this information when selecting suitable courses for an exchange stay.

Course Unit Code460-2052/02
Number of ECTS Credits Allocated5 ECTS credits
Type of Course Unit *Optional
Level of Course Unit *First Cycle
Year of Study *
Semester when the Course Unit is deliveredWinter Semester
Mode of DeliveryFace-to-face
Language of InstructionCzech, English
Prerequisites and Co-Requisites Course succeeds to compulsory courses of previous semester
Name of Lecturer(s)Personal IDName
ABD006Ing. Hussam Abdulla, Ph.D.
GAU01Ing. Jan Gaura, Ph.D.
Summary
The course introduces students to all the basics of software development problems using procedural programming. The topics of simple data taps, dynamic memory allocation, program debugging, file handling, structured data types are discussed. It also explains the use of library functions.
Learning Outcomes of the Course Unit
The aim of the course is to familiarize students with the basics of procedural programming and its real use in solving some programming tasks. Students are familiarized with the overall ecosystem of software development from its writing, through compilation, debugging, but also with how to properly document source codes. An integral part is understanding the principles of dynamic memory allocation and how data is represented in it.
Course Contents
Lectures:

1. Introduction to course organization. Introduction to C programming language. Basic data types, variable, print to standard output. Function definition. Fundamentals of flow control.
2. Representation of strings, working with dynamically alocated memory.
3. Structured data types and their usage. Fundamentals of programs debugging.
4. Working with files. Loading and saving data into text and binary files.
5. Use of recursion.
6. Program testing, source code documentation.
7. Brief introduction to C++ Concepts.

Exercises:

1. Getting familiar with a development environment. Compiling source code.
2. Basic data types, variable, standard output.
3. Definition of function. Fundamentals of flow control. Reading input data.
4. Representing and working with strings.
5. Use of dynamically allocated memory.
6. Utilization of dynamically allocated memory for the implementation of simple data structures.
7. Structured data types and their usage. Using the preprocessor.
8. Fundamentals of program debugging.
9. Working with files. Loading and saving data into text and binary files.
10. Use of recursion and its relation to cycles.
11. Program testing, source code documentation.
12. Using library functions.
13. Brief Introduction to C++ concepts.
14. Final test.
Recommended or Required Reading
Required Reading:
STROUSTRUP, Bjarne. Programming: principles and practice using C++. Second edition. Upper Saddle River, NJ: Addison-Wesley, 2014. ISBN 978-0321-992789.

HOLDEN, Daniel. Build Your Own Lisp, CreateSpace Independent Publishing Platform; 1 edition, 2014, ISBN 978-1501006623.
STROUSTRUP, Bjarne. Programming: principles and practice using C++. Second edition. Upper Saddle River, NJ: Addison-Wesley, 2014. ISBN 978-0321-992789.

VIRIUS, Miroslav. Jazyky C a C++: kompletní průvodce. 2., aktualiz. vyd. Praha: Grada, 2011. Knihovna programátora (Grada). ISBN 978-80-247-3917-5.

HOLDEN, Daniel. Build Your Own Lisp, CreateSpace Independent Publishing Platform; 1 edition, 2014, ISBN 978-1501006623.
Recommended Reading:
Kochan, Stephen, G. : Programming in C (3rd Edition) 3rd Edition, 2004, ISBN 978-0672326660.

GRIFFITHS, David. Head First C, Shroff; First edition, 2012, ISBN 978-9350236925.
Kochan, Stephen, G. : Programming in C (3rd Edition) 3rd Edition, 2004, ISBN 978-0672326660.

HEROUT, Pavel. Učebnice jazyka C. Praha: [Středisko pro podporu studentů se specifickými potřebami ELSA ČVUT], 2015. ISBN 978-80-7232-383-8.

GRIFFITHS, David. Head First C, Shroff; First edition, 2012, ISBN 978-9350236925.
Planned learning activities and teaching methods
Lectures, Tutorials
Assesment methods and criteria
Tasks are not Defined