[GA3001 OOP] Week4: Abstraction, Encapsulation, Inheritance, Polymorphism

This week we focus on


Read this article: All about abstract classes.


Watch this Video:

Inheritance and Polymorphism

Read this important code project post:

  1. Introduction to inheritance, polymorphism in C#
  2. Go deeper in polymorphism
  3. Difference between data hidding, encapsulation, abstraction



[GA3001 OOP] Week2 & Week3

Hi again. These two weeks we need to master the following concepts. Please read them carefully and read all the readings associated with each concept.

Coding Concepts:

A variable by definition is an identifier pointing to a storage location in memory, which contains its value

  • int
  • bool
  • string


Adding properties to a class

C# Application with Visual Studio: Reading Materials: walkthrough: Create a Simple Application with Visual C# or Visual Basic

  • Console Application
  • Namespace
  • The Program Class
  • The System Name Space
  • The Using statement

Object Orients Concepts:

A method is a code block that contains a series of statements. A program causes the statements to be executed by calling the method and specifying any required method arguments.

Read this: Adding methods to a class

  • Properties

A property is a member that provides a flexible mechanism to read, write, or compute the value of a private field. Properties can be used as if they are public data members, but they are actually special methods called accessors. This enables data to be accessed easily and still helps promote the safety and flexibility of methods.

Design Concepts:
  • Code Separation

Separation of concerns (SoC) is a design principle for separating a computer program into distinct sections, such that each section addresses a separate concern. A concern is a set of information that affects the code of a computer program. A program that embodies SoC well is called a modular program. Modularity, and hence separation of concerns, is achieved by encapsulating information inside a section of code that has a well-defined interface.


  • Encapsulation
    • Public
    • Void
    • API / Client

Encapsulation is a means of information hiding. Layered designs in information systems are another embodiment of separation of concerns (e.g., presentation layer, business logic layer, data access layer, persistence layer).

Fun Assignment: play this game

[GA3001 OOP] Week1 Notes – The principles and concepts of Object Oriented programming (OOP)

Welcome to [GA3001] Object Oriented Programming for Designers.

Week 1 was about: the principles and concepts of Object Oriented programming (OOP). We’ve introduced what is OOP and its relationship towards Computer Science, Software Engineering and Game Design. Also, we talked about learning and skills benchmarking. Finally, we’ve introduced in high level, how objects are represented in computers and spent time discovering a PACMAN board objects and presenting them as objects and classes.

Here are few important links and extra readings for things we’ve discussed in class:

1. Get the lesson plan


2. Next class please download Visual Studio 2015 from: http://go.microsoft.com/fwlink/?LinkID=626924&clcid=0x409

3. Read the set of tweets talking about “How to learn”: https://twitter.com/waelkabli/status/522752335227789313

4. Watch a video on YouTube on

Computer programming: What is object-oriented language? | lynda.com overview

5. Watch a video on YouTube on:

MicroNugget: What is OOP? (Object-Oriented Programming)

6. Fully read Introduction to Object-Oriented Programming from Udacity https://www.udacity.com/wiki/classes