Course detail

Computers and Programming 2

FEKT-BPC2AAcad. year: 2016/2017

In the course will learned basic knowleges of C programming.
Learned knowledges: C language basics, keywords, standard libraries, memory management and pointers, structures, working with files, creating and implementation of new libraries, basic algorithms, programming styles, source code management. Program safety and testing. Embedded C specifications.

Language of instruction

Czech

Number of ECTS credits

5

Mode of study

Not applicable.

Learning outcomes of the course unit

The student is able:
- analyze task and make flowchart
- work with keywords, make simple examples of their using
- identify and correctly use proper data types
- work with dynamically allocated memory
- use standart input and output
- work with files
- use basic C libraries
- write simple program usign functions
- use basic algorithms for sortin, searching, linear lists
- understand code of others

Prerequisites

Attending BPC1 course or similar.

Co-requisites

Not applicable.

Planned learning activities and teaching methods

Teaching methods include lectures and computer laboratories. Course is taking advantage of www pages coupled with e-learning (Moodle) system. Student knowledges are tested by exercises during the term.

Assesment methods and criteria linked to learning outcomes

Activity on excercises - up to 10 pts.
3 tests on excercises - up to 30pts each. Tests verify the knowledge of tought topics of lectures and exercises. Task represents the modification and extension of program, started in the homework or previous exercises.
(All tests are taken during semestr, there is no resit).
Requirements for completion of a course are specified by a regulation issued by the lecturer responsible for the course and updated for every year.

Course curriculum

1) Course overwiev. Language history. Program structure and source code creation. Bit operations. Preprocessor.
2) Algorithms - sorting.
3) Standard and formated I/O.
4) Work with files.
5) Enum. State diagram, state machime. Math.h library.
6) Address, data type, pointer, value - and their realations. Pointer arithmetics.
7) Pointer and function.
8) Dynamic memory, alocation (stdlib.h). Fields in more dimensions.
9) Lifetime of variables. Strings, library for string manipulation - string.h.
10) .User defined composite types - struct, union, enum, bitfield.
11) Inline functions. Lists. Binary trees.
12) C99, C1X. _Bool (stdbool.h), complex, literals.
13) Const, volatile, restrict. Programming styles.

Content of seminars: practical exercises based on lecture topics.

Work placements

Not applicable.

Aims

Students are educated algorithmic and programming skils, based on C language. Basic properties and structures of language are explained. Simple programs are written with code design, creation and testing explatnation.

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

RICHTER, M., PETYOVSKÝ, P., HORÁK, K., KALOVÁ, I. elektronicke texty Prakticke programovani v cpp SL. Brno: 2004. (CS)
Herout,P.: Učebnice jazyka C. Kopp. ISBN: 978-80-7232-383-8 (CS)
Kernigham, B.W. Richie, D.M (Virius,M.): Programovací jazyk C. Brno. Computer Press, 2006. ISBN 80-251-0897-X (CS)
Kernigham, B.W. Richie, D.M.: C Programming Language, Prentice Hall, 1988, ISBN 0-13-110362-8 (EN)

Recommended reading

PROKOP, J. Algoritmy v jazyku C a C++. Praha: Grada Publishing, 2008 (CS)
PECINOVSKÝ, R., VIRIUS, M. Učebnice programování: základy algoritmizace. Praha: Grada Publishing, 1997 (CS)

Classification of course in study plans

  • Programme EEKR-B Bachelor's

    branch B-AMT , 1. year of study, summer semester, compulsory

  • Programme EEKR-CZV lifelong learning

    branch ET-CZV , 1. year of study, summer semester, compulsory

Type of course unit

 

Lecture

26 hours, optionally

Teacher / Lecturer

Syllabus

1. Algorithmization (extensions of basic knowledge from the previous semester). Definition of the task, the definition of inputs / outputs, expressing
an algorithm in meta-language, rewritting into programming language.
2. Introduction to C language. Basic types of variables, derived types, constants, arrays.
3. Expressions, arithmetic conversions, arithmetic operators, shift operators, relation operators, logical operators, bitwise operators, assignment
operators, operator priority.
4. Strings and their operators, library functions, standard library string.h.
5. Commands, compound statements, branching commands, cycles and control commands. Flowchart.
6. Function. Declaration of functions, methods of function calling, treatment events, recursion of functions.
7. Advanced data types. Union, enum, dynamic variable, pointer.
8. Objects. Lexical elements, constants and strings, classes, objects, object types.
9. User interface of Microsoft Visual C++ Studio. Graphical components.
10. Algorithms I. Finding maxima and minima, sorting.
11. Algorithms II. Programming with arrays, matrices operations.
12. Algorithms III. Programming with files in Windows.
13. Algorithms IV. Database systems. Records, sorting, searching, statistics. Linking of databases.

Exercise in computer lab

26 hours, compulsory

Teacher / Lecturer

Syllabus

1. Algorithmization (extensions of basic knowledge from the previous semester). Definition of the task, the definition of inputs / outputs, expressing
an algorithm in meta-language, rewritting into programming language.
2. Introduction to C language. Basic types of variables, derived types, constants, arrays.
3. Expressions, arithmetic conversions, arithmetic operators, shift operators, relation operators, logical operators, bitwise operators, assignment
operators, operator priority.
4. Strings and their operators, library functions, standard library string.h.
5. Commands, compound statements, branching commands, cycles and control commands. Flowchart.
6. Function. Declaration of functions, methods of function calling, treatment events, recursion of functions.
7. Advanced data types. Union, enum, dynamic variable, pointer.
8. Objects. Lexical elements, constants and strings, classes, objects, object types.
9. User interface of Microsoft Visual C++ Studio. Graphical components.
10. Algorithms I. Finding maxima and minima, sorting.
11. Algorithms II. Programming with arrays, matrices operations.
12. Algorithms III. Programming with files in Windows.
13. Algorithms IV. Database systems. Records, sorting, searching, statistics. Linking of databases.