SWE 501 - Object Oriented Programming

Description

In recent years, software development elong with design and development became a significant economic activity. For diverse information processing tasks, institutions need to develop their own proprietary software and components. As such software, is very rarely rewritten from scratch; rather it is built using existing components and continually adapted to changing requirements.

Object oriented programming paradigm has been a key concept in software development. Object orientation supports a natural mechanism to ensure compatibility not only to past releases but also to future releases. The primary goal of this course is to provide a self contained introduction to object oriented design and programming. Our focus will be on algorithmic aspects of computer applications currently used primarily in the software industry, and to prepare the student for the development of new applications.

Our treatment will be exclusively based on case studies and examples: after introducing a programming concept, its use will be illustrated in an example.

The student will be introduced to C/C++ programming language and an integrated development environment. The requirement will be a weekly homework that will involve writing C++ code, and the final project will also involve programming in the same environment.

Objectives

After succesful completion of the course, the students will

  • Posses a working knowledge of the C/C++ programming language; be able to use an Integrated Programming environment,

  • Demonstrate knowledge of issues relating to object oriented programming

  • Be able to develop applications in C++ using processes and techniques commonly found in software engineering,

  • Be able to apply object-oriented methods to produce reusable and flexible frameworks for computing applications,

Topics

  • Introduction to computers, programming and algorithms

  • Introduction to C/C++ Integrated Development Environments (IDE): Eclipse + MinGW tools

  • Basic I/O, variables, simple arithmetics, conditional statements,

    • Data types: int, long, unsigned, float, double, char, String, bool

    • Declarations, Constants and Enumeration

  • Loops and functions, Scope, header files, break, continue, Exception handling,

  • Function variables: scope, visibility and lifetime Call by value/call by reference

  • Arrays, strings and pointers Static versus dynamic memory allocation, multidimensional arrays

  • Object oriented programming (OOP) Taxonomies, inheritance, modularity and reusability

  • Introduction to advanced data structures and classes methods and attributes, public, private and protected, This pointer,

  • Principles of object oriented programming Polymorphism, virtual methods, friends.

  • Templates, Introduction to Standard Template Library

  • File structures, File I/O, fstream, read, write, close

Programming Examples and Exercises

  • Game Programming

Administrative

Grading; In class and take home assignments; Final Project

Total Credits

3