- Teacher: Tooba Mansoor
- Teacher: Hafiz Muhammad Shahzad
This course is designed as an entry level programming course for students who have prior programming experience. This course introduces the concepts of object-oriented programming to students with a background in the procedural paradigm. Note: Students who do not have prior programming experience or who are not confident in their programming ability should complete Introduction to Programming prior to undertaking this course. The course begins with a brief review of control structures and data types with emphasis on structured data types and array processing. It then moves on to introduce the object-oriented programming paradigm, focusing on the definition and use of classes along with the fundamentals of object-oriented design. Other topics include an overview of programming language principles, simple analysis of algorithms, basic searching and sorting techniques, and an introduction to software engineering issues. - Brief review of control structures, functions, and primitive data types - Object-oriented programming: Object-oriented design; encapsulation and information-hiding; separation of behavior and implementation; classes, subclasses, and inheritance; polymorphism; class hierarchies - Fundamental computing algorithms: simple searching and sorting algorithms (linear and binary search, selection and insertion sort) - Fundamentals of event-driven programming - Machine level representation of data: Bits, bytes, and words; numeric data representation and number bases; representation of character data - Introduction to computer graphics: Using a simple graphics API - Memory management - Overview of programming languages: History of programming languages; brief survey of programming paradigms - Introduction to language translation: Comparison of interpreters and compilers; language translation phases; machine-dependent and machine-independent aspects of translation
- Teacher: Fahad Sabah