Course detail

Introduction to Programming Systems

FIT-IZPAcad. year: 2017/2018

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)

Language of instruction

Czech

Number of ECTS credits

7

Mode of study

Not applicable.

Learning outcomes of the course unit

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 acquainted with testing principles of programs. Student will learn how to document, to present, and to defend the reached results.

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.

Prerequisites

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.

Co-requisites

Not applicable.

Planned learning activities and teaching methods

Not applicable.

Assesment methods and criteria linked to learning outcomes

  • Student has to get at least 20 of the points from the projects, practise 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.

Course curriculum

Syllabus of lectures:
  1. Introduction to the arrangement of studying. Structure and goals of classes. 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. Programs debugging.
  8. Text files, standard input and output.
  9. Structured data types.
  10. Recursion in programming.
  11. Pointer types and dynamic variables. Linked structures.
  12. Advanced programs debugging, verification, validation and documentation of source code.
  13. Modular construction of program.

Syllabus of numerical exercises:
Demonstration lessons:
  1. The elementary program development tools
  2. Programs compilation and running
  3. Simple programs in C language
  4. Data types, data types casting
  5. Control structures
  6. Functions, working with strings
  7. Basic debugging methods, debugging and profiling tools
  8. Programs input and output
  9. Recursion
  10. Working with memory
  11. Source code documentation, testing basics
  12. Modular programming, basics of plug-ins

 
Syllabus of computer exercises:

  1. Operating instructions, log in intranet, registration at laboratory, email instruction, news groups IZP, Unix for beginner, Dev C++ environment.
  2. Next seminars correspond to the content of individual lectures and demonstrate the presented topics. Defences of 3 projects. Computer practises contents: Making of programs, functions. Controll structures, strings and stdio. Pointer type, storage allocation. File operations. Recurzive problems solving. Matrix operations.

Syllabus - others, projects and individual work of students:
  1. Basic program construction in C language.
  2. Recurrence problem solving.
  3. Computations with matrixes.
  4. Project source code documentation.

Work placements

Not applicable.

Aims

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 computers memory. To make the acquaintance of testing principles of programs. To possess active basic algorithms. To learn how to document, to present, and to defend the reached results.

Specification of controlled education, way of implementation and compensation for absences

  • Realisation and delivery of 3 home assignments.
  • Demonstration of home assignments during computer practises.
  • 10 computer practices.
  • Delivered and controlled the source code documentation of one project.
  • Mid-term written test.
  • Final written examination.

Recommended optional programme components

Not applicable.

Prerequisites and corequisites

Not applicable.

Basic literature

BS ISO/IEC 9899:2011, Information technology. Programming languages. C, 2012, ISBN 978 0 580 80165 5. 
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. 

Recommended reading

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.
Teaching materials available on WWW.
Schildt, H.: Nauč se sám C, SoftPress s.r.o, Praha, 2001, ISBN 80-86497-16-X.
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.
BS ISO/IEC 9899:2011, Information technology. Programming languages. C, 2012, ISBN 978 0 580 80165 5.
The C Standard : Incorporating Technical Corrigendum 1, by Standards Institute British, John Wiley & Sons, 2002, ISBN 0470845732.
Virius, M.: Jazyky C a C++, Grada Publishing, 2011, ISBN 978-80-247-3917-5.
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.

Classification of course in study plans

  • Programme IT-BC-3 Bachelor's

    branch BIT , 1. year of study, winter semester, compulsory

Type of course unit

 

Lecture

39 hours, optionally

Teacher / Lecturer

Syllabus

  1. Introduction to the arrangement of studying. Structure and goals of classes. 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. Programs debugging.
  8. Text files, standard input and output.
  9. Structured data types.
  10. Recursion in programming.
  11. Pointer types and dynamic variables. Linked structures.
  12. Advanced programs debugging, verification, validation and documentation of source code.
  13. Modular construction of program.

Fundamentals seminar

12 hours, compulsory

Teacher / Lecturer

Syllabus

Demonstration lessons:
  1. The elementary program development tools
  2. Programs compilation and running
  3. Simple programs in C language
  4. Data types, data types casting
  5. Control structures
  6. Functions, working with strings
  7. Basic debugging methods, debugging and profiling tools
  8. Programs input and output
  9. Recursion
  10. Working with memory
  11. Source code documentation, testing basics
  12. Modular programming, basics of plug-ins

 

Exercise in computer lab

20 hours, optionally

Teacher / Lecturer

Syllabus

  1. Operating instructions, log in intranet, registration at laboratory, email instruction, news groups IZP, Unix for beginner, Dev C++ environment.
  2. Next seminars correspond to the content of individual lectures and demonstrate the presented topics. Defences of 3 projects. Computer practises contents: Making of programs, functions. Controll structures, strings and stdio. Pointer type, storage allocation. File operations. Recurzive problems solving. Matrix operations.

Project

7 hours, optionally

Teacher / Lecturer