
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
Continuous Assessment Period:
Tests (T1 and T2), worth 20% each.
Practical Assignment (PA), worth 60%, with mandatory defence. (30% AE + 30% AD).
Final Grade = (T1 × 0.2 + T2 × 0.2 + AE × 0.3 + AD × 0.3)
Other Assessment Periods:
Exam (E), worth 40%.
Practical Assignment (PA), worth 60%, with mandatory defence (30% AE + 30% AD).
Final Grade = (E × 0.4 + AE × 0.3 + AD × 0.3)
Notes:
T - Test; E - Exam; AE - Assignment Evaluation; AD - Assignment Defense;
- A minimum mark of 7/20 in the Test/Exam component (T/E) and 10/20 in the Practical Assignment component (assignment AE and defence AD) is required. Otherwise, the student fails that assessment period.
- If the above requirements are not met, the student fails the course unit, even if the final average is greater or equal then 9.5/20. In this case, the official final grade recorded will be 9/20.
- A minimum mark obtained in the Practical Assignment component may be carried over to subsequent Exam periods (Normal and Recurso). This does not apply to other periods.
Failure to attend the presentation/defence results in a mark of zero (0) in the Practical Assignment component.
Passing the course unit is subject to compliance with points 11 and 12 of Article 11 of the IPT Academic Regulations.
Bibliography
- Japikse, P. e Troelsen, A. (2022). Pro C# 10 with .NET 6: Foundational Principles and Practices in Programming. 11th Ed., ISBN: 9781484278680: Apress
- 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.
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