Course detail

Basics of programming - algoritms

FEKT-CIZPAcad. year: 2011/2012

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, type, assignment, control structures, procedure and functions, parameter passing, input/output, exceptional state processing. Basic data structure: simple data types, structured data typed: array, record, file, strings. Dynamic data structures, concept of pointers. Strategy for selecting appropriate data structure. Recursion, concept of recursion. Global and local variables. Simply recursion procedures. Modular Design and abstraction. Concepts will be illustrated by using appropriate programming language. (ISO/IEC 9899: Programming languages - C).

Language of instruction

English

Number of ECTS credits

6

Mode of study

Not applicable.

Learning outcomes of the course unit

Student acquaints with the methods of analysing and designing simple computer algorithms. Student will introduced to the fundamental concepts of programming languages. Student gets up how to write programs in high programming languages. Student gets up how to use EBNF to describe programming language syntax. Student acquires basic English terminology of programming, syntax, and semantics of programming language.

Prerequisites

The subject knowledge on the secondary school level is required.

Co-requisites

Not applicable.

Planned learning activities and teaching methods

Teaching methods depend on the type of course unit as specified in the article 7 of BUT Rules for Studies and Examinations.

Assesment methods and criteria linked to learning outcomes

Evaluated home assignments with the defence: 35 points. Mid-term written examination: 15 points. Final written examination: 50 points.

Course curriculum

Properties of algorithms, notations for describing algorithms.
Problem solving techniques. Design and implementation of algorithms
Principles of high level programming languages. Symbols and separators, constants, identifiers, variables, numbers repesentation, labels.
The concept of data. Simple data types. Expression and statements.
Control structures. Blocks, scope and activation.
Functions, parameters of functions.
Text file standard input and output.
Structured data types.
Recursion.
Pointer types and dynamic variables. Linked structures.
Sorting.
Searching.
Program verification, debugging, 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 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.

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

The content and forms of instruction in the evaluated course are specified by a regulation issued by the lecturer responsible for the course and updated for every academic year.

Recommended optional programme components

Not applicable.

Prerequisites and corequisites

Not applicable.

Basic literature

Herout, P.: Učebnice jazyka C, Kopp, České Budějovice, 2003, ISBN 80-85828-21-9.
Kadlec, V.: Učíme se programovat v jazyce C, Computer Press, Praha, 2002, ISBN 80-7226-715-9.
Wirth, N.: Algoritmy a štruktúry údajov, Alfa Bratislava, 1988.

Recommended reading

Cormen, T., Leiserson, Ch., Rivest, R., Stein, C.:Introduction to Algorithms, Second Edition Publisher: The MIT Press; 2nd edition (September 1, 2001), ISBN: 0262032937

Classification of course in study plans

  • Programme EECC Bc. Bachelor's

    branch BC-TLI , 3 year of study, winter semester, elective interdisciplinary

Type of course unit

 

Lecture

39 hod., optionally

Teacher / Lecturer

Syllabus

Properties of algorithms, notations for describing algorithms.
Problem solving techniques. Design and implementation of algorithms
Principles of high level programming languages. Symbols and separators, constants, identifiers, variables, numbers repesentation, labels.
The concept of data. Simple data types. Expression and statements.
Control structures. Blocks, scope and activation.
Functions, parameters of functions.
Text file standard input and output.
Structured data types.
Recursion.
Pointer types and dynamic variables. Linked structures.
Sorting.
Searching.
Program verification, debugging, documentation.

Exercise in computer lab

26 hod., optionally

Teacher / Lecturer

Syllabus

Development of C programs in MS Windows and Linux. Getting started. Editing programs. Program structure. Help. Tools for debugging.
Simple programs in C, processing of command line parameters. Standard I/O.
Analyze, design of the 2nd project. Illustration of documentation.
Working with arrays and files.
Standard libraries. Simple programs in C language developed with Dev-C++tool.
Pointers, processing dynamically allocated data structures.