Introduction to Programming Systems
|Hour/sem||Lectures||Sem. Exercises||Lab. exercises||Comp. exercises||Other|
|Guarantee:||Kreslíková Jitka, doc. RNDr., CSc., DIFS|
|Lecturer:||Kreslíková Jitka, doc. RNDr., CSc., DIFS|
Martinek David, Ing., DITS
|Instructor:||Bartík Vladimír, Ing., Ph.D., DIFS|
Dvořák Radim, Ing., DITS
Goldefus Filip, Mgr., DIFS
Husár Adam, Ing., DIFS
Jaša Petr, Ing., DIFS
Kislinger Pavel, Ing., DITS
Krajíček Jiří, Ing., DIFS
Kupčík Jan, Ing., DIFS
Kužela Alois, Ing., DIFS
Martinek David, Ing., DITS
Novotný Tomáš, Ing., DIFS
Přikryl Zdeněk, Ing., Ph.D., RCIT
Skřivánek Roman, Ing., DITS
Šárfy Martin, Mgr., DIFS
Vrážel Dušan, Ing., DIFS
Weiss Petr, Ing., DIFS
|Faculty:||Faculty of Information Technology BUT|
|Department:||Department of Information Systems FIT BUT|
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.
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)
|Knowledge and skills required for the course:|
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.
|Subject specific learning outcomes and competences:|
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.
|Generic learning outcomes and competences:|
Student will learn to solve simple problems by computer aided. Student will learn to create the program documentation and defend the results of project solving.
|Syllabus of lectures:|
- 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.
- Pointer types and dynamic variables. Linked structures.
- Program verification, debugging, documentation.
|Syllabus of laboratory exercises:|
1st. week - operating instructions, log in intranet, register at laboratory, email instruction, news groups IZP, Unix for beginner, Dev C++ environment.|
2nd - 5th week - open laboratory for the stand-alone home work solving.
6th - 13th week - the project and program debugging consultation. Defense of 4 projects.
|Syllabus of computer exercises:|
Demonstration lessons: |
- 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.
|Syllabus - others, projects and individual work of students:|
- Conversion of numbers among differend numerical systems.
- Recurrence problem solving.
- Computations with matrixes.
- Sorting according to Czech alphabetical arrangement.
- Cormen, T.: Introduction to Algorithms, The MIT Press, 2001, ISBN 0262032937.
- 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
- Schildt, H.: Teach Yourself C, McGraw-Hill Companies, 2001
- McConnell, S.: Code Complete, Microsoft Press, 2004, ISBN 0735619670
- Kernighan, B. W.: The Practice of Programming, ADDISON-WESLEY, 2003, ISBN 020161586X
- Teaching materials available on WWW
- Realisation of 4 home assignments
- Demonstration of home assignments during lab experiments
- Delivered and controlled documentation of 2 home assignments
- Mid-term written test
- Final written examination.
Evaluated home assignments with the defence: 35 points. Mid-term written examination: 15 points. Final written examination: 50 points.
Student 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.