After completing this course you will be able to decompose a real-life scenario into programmable objects that are related. Further, you will be able to design programs using abstraction, inheritance and polymorphism, and apply concurrency using threads and synchronization.
After completing this course, you will be able to analyze the complexity of basic algorithms, implement and use common data structures, select appropriate data structures and algorithms for a given situation, and apply basic algorithm design techniques for solving problems.
After completing this course you will be able to describe the abstractions provided by a typical Operating System (OS), use threads for simple concurrent applications, solve standard synchronization problems, identify deadlock situations in codes and correct them, and explain the operations of commonly used file systems.
After completing this course you will be able to understand how the human visual system functions, how a digital image is formed, how to process an image for different purposes, how a camera works, and how stereo vision technics are used to achieve 3D perception.
After completing this course you will be able to modify basic data structures to overcome drawbacks, apply advanced techniques for the analysis of algorithms and apply advanced techniques for the design of algorithms.