Course title, code: Visual Programming, GAINBAN-VIZUPROG-1

Name and type of the study programme: Computer science engineering, BSc
Curriculum: 2021
Number of classes per week (lectures+seminars+labs): 2+0+2
Credits: 5
Theory: 50 %
Practice: 50 %
Recommended semester: 4
Study mode: full-time
Prerequisites: Programming Paradigms and Techniques
Evaluation type: term mark
Course category: compulsory
Language: english
Responsible instructor: Prof. Dr. Johanyák Zsolt Csaba
Responsible department: Department of Information Technologies
Instructor(s): Prof. Dr. Johanyák Zsolt Csaba , Dr. Subecz Zoltán
Course objectives:
The aim of this course is to introduce students to aspects of software development using visual tools provided by AppInventor for mobile platforms, as well as Visual Studio Community Edition targeting .NET.
Course content - lectures:

1. Description of the requirements system. Brief introduction to AppInventor based visual programming. 2. Brief introduction to Windows Forms applications. 3. Windows Presentation Foundation basics. Events and behaviour. Forms, data entry 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. Code First. Database First. 5. ADO.NET. Data Access Models. Connectionless database access. Detailed overview of connection-based database management. Major objects of the provider-consumer model. Modifying data and validating changes in the database. Introduction to the use of LINQ. 6 LINQ to Objects (continued - Glossary/Numbers demo). Lambda expressions. LINQ to DataSets. Data binding in WPF applications. Custom column definitions for DataGrid. 7. Data binding for Entity Framework Core objects. Grouping of displayed data. Case study. Forms, data entry and validation (part 2 - complex data binding). 8 WPF drawing (part 2). WPF animation. 9. Introduction to MAUI - the GuessNumber application. 10. Written test. 11. Save and load JSON data. Data storage in XML. LINQ to XML. 12. MAUI: Sunrise-sunset. 13. Replacement/make-up written test.


Course content - labs:

1. AppInventor: Kecskemét Tour. 2. BMI calculator. Sunrise/sunset app. 3. Windows Forms: Price computing scale - part 1. 4. Windows Forms: Price computing scale - part 2. 5. WPF: Memory game part 1. 6. WPF: Memory game part 2. 7. Entity Framework Core + Model first database management (Authors-articles/phone numbers sub). The exercise also requires prior installation of SQL Server Management Studio (SSMS) and Devart Entity Developer Express. 8. WPF + Entity Framework Core + Model first database management (Authors Articles/Telephone Numbers - WPF sub-cont.). 9. Entity Framework Core + Code first database management. 10. Entity Framework Core + Code first database management. 11. MAUI: Introductory application. 12. MAUI: Multichoice quiz application (part 1). 13. MAUI: Multichoice quiz application (part 2).

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 is able to develop applications, program client-server and WEB, mobile operating systems, develop multiplatform systems. 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 is able to fulfill analytical, specification, planning, development and operation tasks, in addition, he/she applies the development methodology, debugging, testing and quality assurance methods in his/her field. - He/she cooperates with other computer science engineers, electrical engineers during team work, and with other experts during the analysis and solution of a problems. - 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 aims to see through the entire engineering system not only his/her own field. - He/she is open to acquire new methods, programming languages and develop skills to use them. - He/she is open to get to know other fields which employ information technology tools, and open to work out information technology soultions in cooperation with the experts of other areas. - 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. - He/she reveals the weaknesses of the technologies applied, risks of processes and initiates measures which reduce them.

Additional professional competences:


Requirements, evaluation, grading:
Mid-term study requirements:
The exams and assignments to be completed during the semester: - Written test, which will give you a total of 40 points. The minimum requirement is 20 points. - The practical part is worth 60 points, of which the minimum requirement is 30 points. Specific tasks and deadlines are set 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. - Students can earn extra credit by completing assignments given by the instructors.
Exam requirements:

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 2022 components - .NET desktop development workload - .NET Multi-platform App UI development workload - Individual components: SQL Server Express 2019 LocalDB, Class Designer 2. Additional software required - SQL Server Management Studio (SSMS) - Devart Entity Developer Express

Compulsory readings:

Electronic teaching aids, example programmes and lecture presentations available in Moodle.

Recommended 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. 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 5. 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