Course details

Introduction to Programming Systems

IZP Acad. year 2011/2012 Winter semester 7 credits

Current academic year

Algorithms and problem solving: strategy of problem solving, structured decomposition, concept, and features of algorithm. Basic programming construction: syntax and semantics of high programming language, variables, types, expressions, control structures, procedures and functions, parameter passing, input/output, exceptional state processing. Basic data structures: simple data types, structured data types: array, record, file, strings. Dynamic data structures, concept of pointers. Strategy for selecting appropriate data structure. Recursion, concept of recursion. Global and local variables. Simple recursive functions (procedures). Modular Design and abstraction. Concepts will be illustrated by using appropriate programming language. (ISO/IEC 9899:1999 Programming languages - C)

Guarantor

Language of instruction

Czech, English

Completion

Credit+Examination

Time span

  • 39 hrs lectures
  • 12 hrs exercises
  • 10 hrs pc labs
  • 4 hrs projects

Department

Subject specific learning outcomes and competences

Student acquaints with the methods of analysing and designing simple computer algorithms. The fundamental concepts of programming languages will be introduced to the student. Student will learn how to write programs in high programming languages and how to understand and use the EBNF to describe programming language syntax. Student will also acquire basic English terminology of programming, syntax, and semantics of programming language.

Student will learn the computer-aided solving of simple problems by elaborating projects. Student will learn to create the program documentation and defend the results of project solving.

Learning objectives

To grasp an analysis of problems and to determine basic algorithms for their solving. To acquaint oneself with principles and features of high programming language and to possess them for implementing of algorithms. To learn how to use tools for program debugging. To get basic knowledge of data representation in memory. To make the acquaintance of evaluate algorithm complexity. To make the acquaintance of testing principles of programs. To possess active basic algorithms. To learn how to document, present, and defend the reached results.

Prerequisite knowledge and skills

This course is placed in the winter term of the first year of the bachelors study programme. Thus, we expect that students have the high school level knowledge of using computers.

Study literature

  • McConnell, S.: Code Complete, Microsoft Press, 2004, ISBN 0735619670.
  • Kernighan, B., W., Ritchie, D., M.: Programovací jazyk C, Computer Press, Brno, 2006, ISBN 80-251-0897-X.
  • Schildt, H.: Nauč se sám C, SoftPress s.r.o, Praha, 2001, ISBN 80-86497-16-X.
  • Teaching materials available on WWW.
  • Herout, P.: Učebnice jazyka C, Kopp, České Budějovice, 2009, 6. vyd., ISBN 978-80-7232-383-8.
  • Soubor materiálů prezentovaných na přednáškách je dostupný na WWW.
  • Virius, M.: Jazyky C a C++, Grada Publishing, 2011, ISBN 978-80-247-3917-5.
  • The C Standard : Incorporating Technical Corrigendum 1, by Standards Institute British, John Wiley & Sons, 2002, ISBN 0470845732.
  • Kadlec, V.: Učíme se programovat v jazyce C, Computer Press, Praha, 2005, ISBN 80-7226-715-9.
  • Wirth, N.: Algoritmy a štruktúry údajov, Alfa Bratislava, 1988.
  • Cormen, T.: Introduction to Algorithms, The MIT Press, 2001, ISBN 0262032937.
  • Harbison, P.: C: A Reference Manual (5th Edition), Prentice Hall, 2002, ISBN 013089592X.
  • Schildt, H.: Teach Yourself C, McGraw-Hill Companies, 2001.

Fundamental literature

  • Virius, M.: Jazyky C a C++, Grada Publishing, 2011, ISBN 978-80-247-3917-5.
  • Herout, P.: Učebnice jazyka C, Kopp, České Budějovice, 2009, 6. vyd., ISBN 978-80-7232-383-8.
  • Kadlec, V.: Učíme se programovat v jazyce C, Computer Press, Praha, 2005, ISBN 80-7226-715-9. 
  • Wirth, N.: Algoritmy a štruktúry údajov, Alfa Bratislava, 1988. 
  • The C Standard : Incorporating Technical Corrigendum 1, by Standards Institute British, John Wiley & Sons, 2002, ISBN 0470845732.
  • Harbison, P.: C: A Reference Manual (5th Edition), Prentice Hall, 2002, ISBN 013089592X.
  • Cormen, T.: Introduction to Algorithms, The MIT Press, 2001, ISBN 0262032937. 

Syllabus of lectures

  1. Properties of algorithms, notations for describing algorithms.
  2. Problem solving techniques. Design and implementation of algorithms.
  3. Principles of high level programming languages. Symbols and separators, constants, identifiers, variables, numbers repesentation, labels.
  4. The concept of data. Simple data types. Expressions and statements.
  5. Control structures. Blocks, scope, and activation.
  6. Functions, parameters of functions.
  7. Text files, standard input and output.
  8. Structured data types.
  9. Recursion.
  10. Pointer types and dynamic variables. Linked structures.
  11. Sorting.
  12. Searching.
  13. Program verification, debugging, documentation.

Syllabus of computer exercises

Demonstration lessons:

  1. Development of C programs in MS Windows and Linux. Getting started. Editing of programs. Program structure. Help. Tools for debugging.
  2. Simple programs in C, processing of command line parameters. Standard I/O.
  3. Iterative calculations, analyse, design of the 2nd project. Illustration of documentation.
  4. Working with arrays, matrixes and files.
  5. Standard libraries. Simple programs in C language.
  6. Creation of modules, processing dynamically allocated data structures.

Progress assessment

Student has to hand all projects (to get minimum of 1 point for each project)  and has to get at least 20 of the points from the projects and mid-term test for receiving the credit and then for entering the final exam.

Plagiarism and not allowed cooperation will cause that involved students are not classified and disciplinary action can be initiated.

Controlled instruction

  • Realisation and delivery of 4 home assignments
  • Demonstration of home assignments during lab experiments
  • Delivered and controlled documentation of one project
  • Mid-term written test
  • Final written examination.
Back to top