The course helps students to acquire more knowledge in object oriented computer programming techniques, and computer graphics. Objectives:The goal of this course is to study key concepts related to computer programming for scientific and engineering applications through an advanced view of computer programming, mainly using Java, and C++. It includes a study of the differences and similarities between Java and C++; the use of current operating systems (e.g. Linux and Unix) and compilers (e.g. gcc), apply computer graphics to produce engineering drawings and illustrations, Carry out graphical user interface design as well as details of Object Oriented Programming. Hands‐on programming should be a key part of the course.
• Knowledge and understanding upon successful completion of the module, a student will: Understand basic principles of object‐oriented program design. Understand the basic and some advanced issues related to writing classes and methods ‐ such as data, visibility, scope, method parameters, object references, and nested classes. Understand the basic ideas behind class hierarchies, polymorphism, and programming to interfaces. Get exposure to exceptions and basic I/O streams. Understand basic principles, main features and operations of abstract data types, in particular of lists, stacks, queues, trees, heaps, hash tables and graphs. Differentiate specifications of abstract data types from particular implementation techniques. Learn about fundamental algorithms associated with the above data types, including tree traversal, tree sort, heap sort and graph traversal algorithms.