Lecturer(s)
|
-
Cmorej Vlastimil, Ing. Ph.D.
|
Course content
|
Lectures outline (not aligned to the weekly schedules): 1. A brief look into the history of computers and programming languages. 2. Regular expressions 3. Overview of basic programming paradigms 4. Object-oriented programming 5. Lambda calculus 6. Introduction to Haskell 7. Introduction to the Prolog language 8. Comparison of selected algorithms in different paradigms
|
Learning activities and teaching methods
|
- Individual project (40)
- 40 hours per semester
- Preparation for formative assessments (2-20)
- 15 hours per semester
- Contact hours
- 52 hours per semester
- Preparation for an examination (30-60)
- 50 hours per semester
|
prerequisite |
---|
Knowledge |
---|
use theoretical knowledge from data structures |
use theoretical knowledge of discrete mathematics |
understand the meaning of parameters of procedures and functions |
to describe the process of program execution in a computer, especially from the point of view of memory allocation in stack and on heap |
determine the computational complexity of operations |
Skills |
---|
actively program in a higher level programming language |
use some of the common IDE at the basic user level |
use MS Windows and Linux operating systems at the basic user level |
analyze and compare algorithms in terms of class of computational and memory complexity |
implement programs using the principles of imperative programming |
Competences |
---|
N/A |
N/A |
N/A |
N/A |
N/A |
learning outcomes |
---|
Knowledge |
---|
characterize the principles and advantages or disadvantages of programming in different paradigms |
knowledge of the principles creation of object design of the application |
knowledge of encapsulation, inheritance and polymorphism principles |
basics of component theory and modular design |
understand the issue of lambda calculus |
knowledge of the principles of functional and logical programming |
Skills |
---|
interpret and create regular expressions |
design and implement an application using OOP principles |
implement recursive programs in Haskell language |
implement recursive programs in Prolog language |
Competences |
---|
N/A |
teaching methods |
---|
Knowledge |
---|
Lecture |
Lecture with visual aids |
Task-based study method |
Self-study of literature |
Skills |
---|
Practicum |
Skills demonstration |
Individual study |
Competences |
---|
Interactive lecture |
assessment methods |
---|
Knowledge |
---|
Combined exam |
Seminar work |
Continuous assessment |
Skills |
---|
Seminar work |
Skills demonstration during practicum |
Individual presentation at a seminar |
Competences |
---|
Combined exam |
Seminar work |
Recommended literature
|
-
Bramer, M. A. Logic programming with Prolog. Second edition. 2013. ISBN 978-1-4471-5486-0.
-
Martin, Robert C.; Feathers, Michael C.; Ottinger, Timothy R.; Langr, Jeff; Schuchert, Brett L.; Grenning, James W.; Wampler, Dean. Clean code : a handbook of agile software craftsmanship. 2009. ISBN 978-0-13-235088-4.
-
Pecinovský, Rudolf. OOP ? Naučte se myslet a programovat objektově. Brno, 2010. ISBN 978-80-251-2126-9.
-
Scott, Michael Lee. Programming language pragmatics. Fourth edition. 2016. ISBN 978-0-12-410409-9.
-
Sebesta, Robert W. Concepts of programming languages. Eleventh edition, global edition. 2016. ISBN 978-1-292-10055-5.
|