IPT Logotipo do IPT

Informática

Object-Oriented Programming

<< back to Curriculum Plan

Publication in the Diário da República: Despacho n.º 8838/2020 de 14-09-2020 + Despacho n.º 3463/2023 de 16/03/2023

6 ECTS; 2º Ano, 1º Semestre, 70,0 TP , Cód. 614221.

Lecturer
- Mário Rui Betes Rodrigues Lopes (2)
- Fernando Sérgio Hortas Rodrigues (1)(2)

(1) Docente Responsável
(2) Docente que lecciona

Prerequisites
It is considered important for students to have knowledge of structured programming and basic algorithms.

Objectives
1. Acquire knowledge about the object-oriented programming paradigm, such as abstraction, encapsulation, inheritance, and polymorphism.
2. Acquire knowledge about the C# programming language and the .NET
3. Acquire knowledge about data persistence methods through the use of frameworks for database access.

Program
1. **General Concepts**
1.1. Introduction to .NET
1.2. Exploring the Visual Studio .NET Work Environment
1.3. Creating a Windows Application Project

2. **Fundamentals of the C# Language**
2.1. Understanding the fundamentals of C#
2.2. Predefined types in C#
2.3. Variables, Constants, and Enumerations
2.4. One-dimensional, multidimensional, and jagged arrays
2.5. Implicit and explicit conversions
2.6. Expressions and Operators
2.7. Conditional Statements
2.8. Iterative Statements

3. **Creating Objects in C#**
3.1. Value Types and Reference Types
3.2. Boxing and Unboxing
3.3. Classes and Objects
3.3.1. Syntax and Semantics
3.3.2. Defining Classes
3.3.3. Creating and Initializing Objects
3.4. Namespaces
3.5. Access Modifiers (Scope)
3.6. Methods
3.6.1. Syntax and Semantics
3.6.2. Parameters, local variables, and scope
3.6.3. Passing parameters by value and by reference
3.6.4. Overloading
3.7. Constructors
3.7.1. Syntax and Semantics
3.7.2. Constructor Overloading
3.7.3. Constructor Initialization
3.8. Class Initialization
3.9. Readonly Variables
3.10. Static Class Members

4. **Object-Oriented Programming Techniques in C#**
4.1. Structured vs. Object-Oriented Programming
4.2. Encapsulation
4.3. Properties and Automatic Properties
4.4. Inheritance
4.4.1. Derived Classes
4.4.2. Accessing Base Class Constructors
4.4.3. Sealed Classes
4.4.4. Virtual Methods
4.4.5. Abstract Classes
4.4.6. Abstract Properties
4.5. Polymorphism

5. **Programming in C#**
5.1. Foreach Statement
5.2. Object Indexing (Indexers/Indexed Properties)
5.3. Interfaces
5.4. is and as Operators
5.5. Collections
5.5.1. Implementing Enumerable Types
5.5.1.1. The IEnumerable Interface
5.5.1.2. Explicit Implementation of IEnumerator
5.5.1.3. Yield Iterators
5.5.1.4. Named Iterators
5.5.2. ArrayList
5.5.3. Queue
5.5.4. Stack
5.5.5. Hash Table
5.6. Exceptions (Exception Handling)
5.7. Events and Delegates

6. **Implementing .NET-Based Applications in C#**
6.1. Method Overriding in the System.Object Library
6.2. String and Number Formatting
6.3. Streams and Files

7. **Frameworks for Object-Relational Mapping**
7.1. Entity Framework (EF)
7.1.1. Introduction to EF
7.1.2. Starting with the Database
7.1.3. Starting with Code
7.1.4. Constraints, Keys, and Associations
7.1.5. Data Access and CRUD Operations

8. **Advanced C#**
8.1. Generics
8.2. Anonymous Types
8.3. Anonymous Methods
8.4. Lambdas

Evaluation Methodology
**Note**: Please look for information in the portuguese page.

Bibliography
- Loureiro, H. (2017). C# 7.0 com Visual Studio. ISBN: 9789727228683: FCA - Editora de Informática
- Smith, J. (2021). Entity Framework Core in Action. 2nd Ed., ISBN: 9781617298363: Manning Publications Co.
- Troelsen, A. e Japikse, P. (2022). Pro C# 10 with .NET 6: Foundational Principles and Practices in Programming. 11th Ed., ISBN: 9781484278680: Apress

Teaching Method
**Theoretical classes** are lectured in an expository and participatory format, with fundamental concepts being described and discussed with the students. **Practical classes** focus on solving: practical cases, exercises.

Software used in class
Visual Studio
MS Sql Server
C# Jupyter Notebooks

 

 

 


<< back to Curriculum Plan
NP4552
Financiamento
KreativEu
erasmus
catedra
b-on
portugal2020
centro2020
compete2020
crusoe
fct
feder
fse
poch
portugal2030
poseur
prr
santander
republica
UE next generation
Centro 2030
Lisboa 2020
Compete 2030
co-financiado