Increasingly, students of subjects other than Computer Science need to learn computer science basics. In this respect, students of Electronics, Telecommunication, Automatics, Robotics, etc. need to be well prepared to program low-level microprocessor platforms, to know programming concepts of simple and advanced operating systems (e.g. uC/OS, FreeRTOS and Linux), be well prepared for parallel computations, as well as for programming of embedded systems, device drivers, programmable logic devices (FPGA) and graphic cards, to name a few. All of these heavily rely on C/C++. Since the majority of the operating systems and system components are still expressed in pure C, EE students need to be able to understand C, at the same time being able to write new code in the modern object-oriented fashion provided by C++, however. Nevertheless, separately learning both languages as well as basics of data structures and algorithms would require too much time whereas the usual time allowance for these is one or two semesters only.
This book is based on the author’s lectures on Introduction to Computer Science, Methods and Techniques of Programming, and Operating Systems and Object-Oriented Programming Languages, given for undergraduate and graduate students of Electronics, Electronics and Telecommunication, as well as Acoustic Engineering in the Department of Electronics, AGH University of Science and Technology, over the last 20 years.