Fundamentals of Computing II
Course Aim:
This course aims to build upon the foundational programming and problem-solving skills developed in the first semester. This course focuses on the principles of software engineering, object-oriented programming, and the design and implementation of basic data structures and algorithms. Students advance their computational thinking skills through the development of larger, modular, and maintainable software systems. The course emphasizes the object-oriented paradigms, deepening students' understanding of abstraction, inheritance, encapsulation, and polymorphism using a modern programming language such as Java or C++. Throughout the course, students will design, implement, and utilize basic data structures such as linked lists, stacks, and queues using the object-oriented paradigm.
Course contents:
Introduction to Object-Oriented Programming, Java or C++ Programming Fundamentals (classes, objects, inheritance, encapsulation, polymorphism). Object-Oriented Design Methodology, Basics of Lists, Trees and Graphs, Introduction to Complexity Analysis , Recursion, Case Studies and Applications