The objective of the course is to introduce students to Windows Forms, WPF, and MAUI technologies, event-driven programming, data binding, and user interface design. In addition, students will master data management methods, including database management (Entity Framework Core, ADO.NET, LINQ) and data storage in various formats (JSON, XML). Furthermore, the course aims to develop students' problem-solving and application development skills through practical assignments and project work.
Programming Paradigms and Techniques (GAINBAN-PROPARTE-1)
Basic data
Instructors
Course objectives
Course content
Lectures
1. Course requirements overview. Brief introduction to Windows Forms applications. 2. Windows Presentation Foundation (WPF) fundamentals. 3. Events and behavior. Forms, data input, and validation (Part 1 - up to complex data binding). WPF drawing (Part 1: shapes + Drawing and Geometries). 4. Database access (introduction). Entity Framework Core-based database access. Model First. 5. Code First. Database First. 6. ADO.NET. Data access models. Disconnected database access. Detailed overview of connected database management. Key objects of the provider-consumer model. Modifying data and persisting changes to the database. Review: Introduction to using LINQ. 7. LINQ to Objects (continued - Dictionary/Numbers demo). Lambda expressions. LINQ to DataSets. Data binding in WPF applications. Custom column definitions in DataGrid. 8. Data binding with Entity Framework Core objects. Grouping displayed data. Case study. Forms, data input, and validation (Part 2 - from complex data binding). 9. WPF drawing (Part 2). WPF animation. 10. Introduction to MAUI. 11. Saving data to JSON format and deserialization. 12. Data storage in XML. LINQ to XML. Additional serialization solutions. 13. MAUI case study.
Labs
1. AppInventor: "Catch me if you can" application. 2. Simple Windows Forms application: Fruit vending machine simulator. 3. Memory game (WPF). Assignment of the collaborative WPF project task + group formation. Overview of the formal requirements for the project. 4. WPF - Image viewer. 5. Entity Framework Core + Model First database management (Authors-Articles / Phone numbers app). Pre-installation of SQL Server Management Studio (SSMS) and Devart Entity Developer Express is required for the lab. 6. WPF + Entity Framework Core + Model First database management (Authors-Articles / Phone numbers - WPF app continuation). 7. Entity Framework Core + Code First database management. 8. Project consultation. 9. MAUI - Memory game. 10. MAUI - "Catch me if you can" game application. 11. Theoretical test (Moodle). Building a Power App application. 12. Project submission and presentation. 13. Retake of the theoretical test. Re-submission and presentation of the project for students with missing requirements.
Acquired competences
Knowledge
- He/she knows the main programming paradigms, programming languages, development tools. His/her knowledge covers the modelling of IT systems, creation of database based systems, as well as the structure, operation and implementation of computer networks. His/her knowledge covers the characteristics of intelligent systems, the specificity of mobile application development, the management of state-of-the art general purpose operating systems, as well as the aspects of IT security. - He/she is familiar with the important software development methodologies, and the notation systems for IT designs and documentation. - He knows the vocabulary and special terms of the engineering profession in the Hungarian and English languages at least on the basic level.
Skills
He/she can apply his/her knowledge acquired during his/her study to acquire deeper knowledge in the field of information engineering and to process special literature and solve problems related to information technology. - He/she constantly improves his/her knowledge and keeps up with the development of the computer engineering profession.
Attitude
- He/she genuinely represents the professional principles of engineering and information technology fields. - He/she is open to acquire new methods, programming languages and develop skills to use them. - He/she makes an effort to work efficiently and to high standards.
Autonomy and responsibilities
- He/she feels responsible for IT systems analysis, development and operation, both individually and as part of a team.
Requirements, evaluation and grading
Mid-term study requirements
The requirements and assignments to be completed during the semester are: - Theoretical quiz (in the form of a Moodle quiz during lab class), which will be worth 40 points. The minimum requirement is 20 points. - The practical part is worth 60 points, of which the minimum requirement is 30 points. The specific task will be defined by the instructor. Here, the students, working in teams of two or three, have to develop a WPF or MAUI application using database management. The application must implement CRUD functionality. The database manager must be MS SQL Server Express. - Students may earn additional points by completing assignments given by the instructor.
Generative AI usage
Use of GAI tools is permitted in a limited manner (e.g., for literature search support or specific tools). In this case, the course instructor is responsible for defining where and how GAI tools may be used in assignments. The course description must specify in detail how GAI tools may be used during the course.
Study aids, laboratory background
Recommended literature, outline of the lecture, programmes written in the exercises, a guide to the development environments. Each student will be provided with separate computer access for the exercises. 1. Required Visual Studio components - .NET desktop development workload - .NET Multi-platform App UI development workload - Individual components: SQL Server Express LocalDB, Class Designer 2. Additional software required - SQL Server Management Studio (SSMS) - Devart Entity Developer Express
Readings
Compulsory readings
1. Zsolt Csaba Johanyák: Visual Programming Exercises, Moodle Course. The course material was prepared with the support of the RRF-2.1.2-21-2022-00039 grant "Development of comprehensive digital infrastructure, skills and internationalization at John von Neumann University". 2. Zsolt Csaba Johanyák: Mastering Data Access: Practical Exercises for Entity Framework and ADO.NET in C#. The course material was prepared with the support of the RRF-2.1.2-21-2022-00039 grant "Development of comprehensive digital infrastructure, skills and internationalization at John von Neumann University". 3. Zsolt Csaba Johanyák: Introduction to MAUI programming, The course material was prepared with the support of the RRF-2.1.2-21-2022-00039 grant "Development of comprehensive digital infrastructure, skills and internationalization at John von Neumann University". 4. Build mobile and desktop apps with .NET MAUI https://learn.microsoft.com/en-us/training/paths/build-apps-with-dotnet-maui/?WT.mc_id=dotnet-35129-website
Recommended readings
David Wolber, Hal Abelson, Liz Looney, Ellen Spertus: App Inventor 2, Create Your Own Android Apps, 2nd Edition, O'Reilly Media, 2014, ISBN-13: 978-1491906842