Programming C++ E 1100-2Ind09
The course presents the C++ programming language in UNIX environment.
Program:
1. Classes of programming languages. C++ among other programming languages. Program compilation and execution. Standard libraries. Interfacing with operating system. Tracing program execution. The make tool.
2. Simple programs. Console input and output. Basic data types.
3. Expressions and operators. Mathematical library. Flow of control.
4. Accuracy of calculations. Pointers. Working with strings.
5. Functions (methods). Definition and declaration of a function. Default arguments. Function call. Call-by-value and call-by-reference parameters. Stack. Pointers to functions. Overloading of function name. Function templates. Inline functions. Recursion.
6. Preprocessor. Comments. Own symbols. Language syntax. Streams library. Stream modes. Formatting and raw access. Stream buffers.
7. Standard Template Library. Computational complexity. Sorting and searching. Fundamental data structures: vector, list, binary tree, set, dictionary. Iterators and their hierarchy. Examples of algorithms.
8. Class concept with example of STL library. Class members: fields and methods. Constructors and destructors. Friends.
9. Class inheritance. Polymorphism. Abstract methods and classes. Static members.
10. Exception handling. Exception class hierarchies. Program termination. Throwing and catching an exception. Rethrowing an exception. Uncaught exceptions. Acquiring and releasing of resources. Using exceptions in destructors. Exceptions in standard library.
Roundup errors with examples of Mandelbrot set. How to create an animated presentation.
11. Multithreading. Creation of a new thread. Flow of control in multithreading programs.
Synchronization and exclusive access to resource. Signals - communication between threads.
12. Graphical User Interface. How to create graphical objects. Event driver programming. The Model-View-Controller pattern. Qt library. Tools for creating graphical objects.
13. The C++ among other objective oriented programming languages. Objective-C programming language, its notation, dynamic typing, reflection. Java - packages, garbage collector.
Description by Paweł Klimczewski, May 2008.
Bibliography
1. Bruce Eckel, "Thinking in C++", Prentice Hall
2. Bjarne Stroustrup, "The C++ Programming Language", Addison-Wesley
3. Stanley Lipmann, "C++ Primer", AT&T
4. Nicolai M. Josuttis, "The C++ Standard Library. A Tutorial and Reference", Addison-Wesley