Syllabus of the courses "Programming"
Quality Assurance System and Credit Transfer
System S-JEP-12435-97 TEMPUS project
Course group "Programming"
Introduction to Programming
Basic notions: computational problem, algorithms, program, hardware-software environment.
Stages of problem solving with computer:
 Specification Algorithm
 Design
 Implementation (coding)
 Correctness proof
 Requirements analysis (time and space efficiency)
 Testing Running
 Maintenance
Control structures
Structure charts
Sequential control and its implementation in Pascal
Notion of data type
Programming language syntax and syntax-diagrams
Syntax: Identifier, Program, Statement-part
Boolean data type
Numeric data types: Integer, Real
Expressions, evaluation of expressions
Logical expressions.
Input and output operations
Structure of programs
Selection control structures
 Simple selection
 Multiple selection constructs
 Case selection constructs
Implementation of selection structures in Pascal
Iteration control structures
 While iteration
 Repeat-until iteration
 Counting iteration
 Loop iteration
 Discrete iteration
Procedure control structure
 Simple recursion
Block structure
 Procedure statement
 Well-structured flowcharts, connection to structure charts
Notion of abstract data type
Basic data types
 Ordinal types
 Integer types
 Boolean
 Char
 Scalar types
 Subrange types
 Real types
 Single, Double, Extended, Comp
Composite data types
 String
 Array
 Record
 Set
Implementation of data types in Pascal
Dynamic and flexible arrays
Memory model
Function and procedure types
Type compatibility
Typed constants
File data types
 Text files
 Typed files
 Untyped files
Basic data-processing problems and their solutions
C development environments
Compilation of C/C++ programs
Basic notions of C/C++
Data types in C/C++
Operations of the integer and real data types
Input and output in C/C++
Implementation of the control structures in C/C++
Selection control structures
 Simple selection
 Multiple selection constructs
 Case selection constructs
Iteration control structures
 While iteration
 Repeat-until iteration
 Counting iteration
 Loop iteration
 Discrete iteration
Function operations in C/C++
Structures of C/C++ programs
Basic data type in C/C++
Integer types
 int, signed, unsigned, short, long
Character types
 char, signed, unsigned
Enum type construct
Real types
 float, double, long
Composite types and type constructs in C/C++
 Pointer arithmetic
Handling in and out parameters in C/C++
Array types in C/C++
Record types in C/C++
Union types
Function pointers
Processing command line arguments
Involved declarations
Type coercion
Input and output in C/C++
Files data types in C/C++
Low level input/output
Pre-processing C/C++ programs
Recommended textbooks:
Marton László: Bevezetés a Pascal nyelvű programozásba. Győr, Novadat, 1994.
Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai. Bp. 1998.
Fercsik János: A PASCAL programozási nyelv. Bp. Műszaki K., 1996.
Brian W Kernighan and Dennis M Ritchie, A C programozási nyelv, Műszaki Kiadó, 1985.
Brian W Kernighan and Dennis M Ritchie, A C programozási nyelv,
Az ANSI szerint szabványosított változat, Műszaki Kiadó, 1996
Bell, Douglas: Programozás C++ nyelven. Bp. : Panem, 1998,
Programming languages
Formal languages elements. Programming languages theory. Syntax trees. Semantics.
Objects and various object types.
Data control.
Subprograms. Memory organization.
Elements of programming methodology.
Program structure.
Object definition. Object Oriented view of the world.
Classes, Instances, Messages, Object Interface, Methods, Single and Multiple
Inheritance, Information Hiding, Encapsulation.
Data Abstraction, Abstract Data Types, Class and Instance Variables, Dynamic Binding,
Polymorphism, Abstract Classes, Meta-classes. Object Oriented System Analysis and Design.
Object Oriented methods, Object Oriented User Interfaces.
Object Oriented Programming Languages, Advantages, Disadvantages.
Programming and exercises in C++ Language.
Function as programming mean. Upper class functions.
Function types and polymorphism. Lambda Function.
Functional Programming languages and machines. LISP-like language.
Elements of logic programming.
Programming in Prolog
Algorithms and data structures
Basic notions: computational problem, specification, algorithms, instance of a problem,
correctness of algorithms, analysis of algorithms
Data models
Efficiency of Algorithms, running time of algorithms
Asymptotic notations
Simple sorting algorithms: selection sort, insertion sort
Merge sort
Lower bounds for sorting
Sorting in linear time:
 Counting sort
 Bucket sort
 Radix sort
Medians and order statistics
Selection in worst-case linear time
External sorting
 Sorting with merging
 Sorting with partitioning
Dynamic programming
 Optimal binary search trees
Greedy strategy
 Activity-selection problem
 Huffman codes
Elementary abstract data types and data structures
 Linked lists
 Stacks
 Queues
 Priority queues
Dynamic set abstract data type
Trees, binary search trees
Balanced binary search trees
 AVL trees
 Red-Black trees
 Self-adjusting binary search trees
 B-trees
 Skiplists
Hash tables
 Direct-address tables
 Open addressing
Hash functions
Binomial heaps
Data structures for disjoint sets: Union-Find abstract data type
Representations of graphs
Elementary graph algorithms
 Breadth-first search
 Depth-first search
 Topological sort
 Strongly connected components
 Minimum spanning trees The algorithm of Kruskal and Prim
 Single-source shortest paths
 Dijkstra's algorithm
 All-pairs shortest paths
 Floyd-Warshall algorithm
String matching
 Knuth-Morris-Pratt algorithm
 Boyer-Moore algorithm
Recommended textbooks:
T. H. Cormen, C.E. Leiserson, R.L. Rivest: Algoritmusok, Műszaki Könyvkiadó, 1998.
D. E. Knuth: A számitógépprogramozás művészete, 1. Kötet, Műszaki Könyvkiadó, 1988.
D. E. Knuth: A számitógépprogramozás művészete, 3. Kötet, Műszaki Könyvkiadó, 1990.
A. V. Aho, J. E. Hopcroft, J. D. Ullman: Számitógép-algoritmusok tervezése és analizise, Műszaki
Könyvkiadó, 1982.
G. Gonnet, R. Baeza-Yates: Handbook of algorithms and data structures. In Pascal and C. ,
Addison-Wesley. 1991.
R. Sedgewick: Algoritms in C++, Addison-Wesley. 1991.
E. Horowitz, S. Shani: Fundamentals of Computer Algorithms, Computer Science Press, 1998.