IIE Learn Module Outline PROG6212 PROGRAMMING 2B PROG6212 MODULE OUTLINE 2023 (First Edition: 2018) This guide enjoys copyright under the Berne Convention. In terms of the Copyright Act, no 98 of 1978, no part of this manual may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any other information storage and retrieval system without permission in writing from the proprietor. The Independent Institute of Education (Pty) Ltd is registered with the Department of Higher Education and Training as a private higher education institution under the Higher Education Act, 1997 (reg. no. 2007/HE07/002). Company registration number: 1987/004754/07. © The Independent Institute of Education (Pty) Ltd 2023 Page 1 of 22 IIE Learn Module Outline PROG6212 Table of Contents Introduction ............................................................................................................................... 3 Using this Module Outline .......................................................................................................... 4 This Module on Learn ................................................................................................................. 5 Icons Used in this Document and on Learn ................................................................................ 6 Module Resources ...................................................................................................................... 7 Module Purpose ......................................................................................................................... 9 Module Outcomes ...................................................................................................................... 9 Assessments ............................................................................................................................. 10 Module Pacer ........................................................................................................................... 12 © The Independent Institute of Education (Pty) Ltd 2023 Page 2 of 22 IIE Learn Module Outline PROG6212 Introduction The skills and knowledge gained in Programming 2A will be developed further through the addition of advanced OOP, GUI and database concepts. These skills aim to provide you with the ability to develop complete software solutions for given business requirements. • • • • The key purpose of the module is to provide advanced C# programming language. The module structure follows the layout of the textbook to ensure that you absorb all the advanced topics of the language. The module should be approached by re-enforcing the basics you learnt in Programming 2A. You are now familiar with Visual Studio IDE as a development environment, so it is important that you practice and become more familiar with the advanced topics of C#. For every new topic covered, it is recommended that you should spend at least an additional five hours (in class and in your own time) doing examples and exercises. Success can be ensured by having many and varied exercises to practice the new knowledge. © The Independent Institute of Education (Pty) Ltd 2023 Page 3 of 22 IIE Learn Module Outline PROG6212 Using this Module Outline This module outline has been developed to support your learning. Please note that the content of this module is on Learn as well as in the prescribed material. You will not succeed in this module if you focus on this document alone. • • This document does not reflect all the content on Learn, the links to different resources, nor the specific instructions for the group and individual activities. Your lecturer will decide when activities are available/open for submission and when these submissions or contributions are due. Ensure that you take note of announcements made during lectures and/or posted within Learn in this regard. © The Independent Institute of Education (Pty) Ltd 2023 Page 4 of 22 IIE Learn Module Outline PROG6212 This Module on Learn Learn is an online space, designed to support and maximise your learning in an active manner. Its main purpose is to guide and pace you through the module. In addition to the information provided in this document, you will find the following when you access Learn: • • • • A Module Pacer; An assessment brief; A list of prescribed material; A variety of additional online resources (articles, videos, audio, interactive graphics, etc.) in each learning unit that will further help to explain theoretical concepts; Critical questions to guide you through the module’s objectives; Collaborative and individual activities (all of which are gradable) with time-on-task estimates to assist you in managing your time around these; Revision questions, or references to revision questions, after each learning unit. • • • Kindly note: • • • • Unless you are completing this as a distance module, Learn does not replace your contact time with your lecturers and/or tutors. PROG6212 is a Learn module, and as such, you are required to engage extensively with the content on the Learn platform. Effective use of this tool will provide you with opportunities to discuss, debate, and consolidate your understanding of the content presented in this module. You are expected to work through the learning units on Learn in your own time – especially before class. Any contact sessions will therefore be used to raise and address any questions or interesting points with your lecturer, and not to cover every aspect of this module. Your lecturer will communicate submission dates for specific activities in class and/or on Learn. © The Independent Institute of Education (Pty) Ltd 2023 Page 5 of 22 IIE Learn Module Outline PROG6212 Icons Used in this Document and on Learn The following icons are used in all your modules on Learn: Icon Description A list of what you should be able to do after working through the learning unit. Specific references to sections in the prescribed work. Questions to help you recognise or think about theoretical concepts to be covered. Sections where you get to grapple with the content/theory. This is mainly presented in the form of questions which focus your attention and are aimed at helping you to understand the content better. You will be presented with online resources to work through (in addition to the textbook or manual references) and find some of the answers to the questions posed. Opportunities to make connections between different chunks of theory in the module or to real life. Real life or world of work information or examples of application of theory, using online resources for self-exploration. REMEMBER: You need to log onto Learn to: • Access online resources such as articles, interactive graphics, explanations, video clips, etc. which will assist you in mastering the content; and • View instructions and submit or post your contributions to individual or group activities which are managed and tracked on Learn. © The Independent Institute of Education (Pty) Ltd 2023 Page 6 of 22 IIE Learn Module Outline PROG6212 Module Resources Prescribed Material Troelsen, A. and Japikse, P. 2021. Pro C# 9 with .NET 5: Foundational (PM) for this Principles and Practices in Programming. 10th ed. Apress. Module ISBN: 978-1-4842-6938-1(Paperback) or ISBN: 978-1-4842-6939-8(eBook) Available on Ebscohost at: https://ezproxy.iielearn.ac.za/login?url=https:// search.ebscohost.com/login.aspx?direct=true& db=nlebk&AN=2917701&site=ehost-live&scope=site [Accessed 17 November 2022]. Recommended Please note that a number of additional resources and links to Readings, Digital resources are provided throughout this module on the Learn platform. and Web You are encouraged to engage with these as they will assist you in Resources mastering the various objectives of this module. They may also be useful resources for completing any assignments. You will not, however, be assessed under examination conditions on any additional or recommended reading material. The following titles include information related to this module and may be consulted as additional resources. Please note, however, that you will not be tested on any content from these titles. Troelsen, A and Japikse, P. 2017. Pro C# 7: With .NET and .NET Core. 8th ed. Apress. ISBN: 978-1-4842-3017-6 (Paperback) or ISBN: 978-1-4842-3018-3 (eBook) Farrell, J. 2017. Visual C# 2017: An Introduction to Object-Oriented Programming. 7th ed. Cengage Publishing. Whitaker, R.B. 2016. The C# Player’s Guide. The Internet is a valuable resource for all programming students as it provides up-to-date developments on the language and tools as the language and Microsoft.NET IDE get updated. Bookmark the Microsoft website to keep abreast of new developments in the language and the other websites for comprehensive tutorials and exercises which can provide additional explanations. © The Independent Institute of Education (Pty) Ltd 2023 Page 7 of 22 IIE Learn Module Outline PROG6212 • Software required Software Licence requirements System Requirements Module Overview Assessments Microsoft, 2020. C# programming guide. [Online] Available at: https://docs.microsoft.com/en-us/dotnet/csharp/programmingguide/ [Accessed 17 November 2022]. Microsoft Visual Studio 2019 7 GB – .iso is provided for the students on the FTP Server for downloading Run on Host Computer - Standalone Machine You will find an overview of this module on Learn under the Module Information link in the Course Menu. Find more information on this module’s assessments in this document and on the Student Portal. © The Independent Institute of Education (Pty) Ltd 2023 Page 8 of 22 IIE Learn Module Outline PROG6212 Module Purpose The purpose of this module is to build on the skills and knowledge gained in Programming 2A and further develop applications through the addition of advanced OOP, GUI and database concepts. These skills aim to provide you with the ability to develop complete software solutions for given business requirements. Module Outcomes MO1 MO2 MO3 Write advanced OOP software applications to meet given business requirements. Create GUI systems in an OOP language to meet given business requirements. Create GUI systems that integrate Relational Databases Management Systems, file handling, and OOP in one software application to meet given business requirements. © The Independent Institute of Education (Pty) Ltd 2023 Page 9 of 22 IIE Learn Module Outline PROG6212 Assessments Integrated Curriculum Engagement (ICE) Minimum number of ICE activities to complete Weighting towards the final module mark Formative 1 Weighting Duration Total marks Open/Closed book Resources required Learning Units Learning Units covered Formative 2 Weighting Duration Total marks Open/Closed book Resources required Learning Units Learning Units covered Summative Weighting Duration Total marks Open/Closed book Resources required Learning Units covered 4 10% Part 1 25% 15 hours 100 Open book • Prescribed textbook; • Microsoft Visual Studio (C#); • Access to the Internet. Period 3 LU1 to 2 Part 2 30% 15 hours 100 Open book • Prescribed textbook; • Microsoft Visual Studio (C#); • Access to the Internet. Period 6 LU 1 to 4 (Theme 1) POE 35% 15 hours 100 Open book • • • All Prescribed textbook; Microsoft Visual Studio (C#); Access to the Internet. The final completed POE must be submitted after LU5. © The Independent Institute of Education (Pty) Ltd 2023 Page 10 of 22 IIE Learn Module Outline PROG6212 Assessment Preparation Guidelines Format of the Assessment POE The POE will assess all learning units in this module and will be application-type questions. The POE is composed of Part 1 and Part 2. Part 1 (weight = 25%) assesses LU 1 to LU2, while Part 2 (weight = 30%) assesses LU 1 to LU4 (theme 1). Preparation Hints • • • • • By completing task 1 and 2 in the POE you will develop some series of application in C# that will be applied to everyday real-world situation. Ensure that you work through all the activities, exercises and revision questions on Learn and in your textbook. Make sure that you are comfortable in responding to all the objectives for all learning units. Brainstorm possible questions based on the learning outcomes and objectives provided. Ensure that you have covered all items listed in the marking rubric of the POE. © The Independent Institute of Education (Pty) Ltd 2023 Page 11 of 22 IIE Learn Module Outline PROG6212 Module Pacer Code PROG6212 Learning Unit 1 Programme BCAD2 DISD2 BCA2 BCIS2 DIS2 Advanced C# Programming Contact Sessions 77 Credits 15 Overview: In this this learning unit, you will be deepening your understanding of the C# language by going through a few more advanced concepts in C#. You will broaden your knowledge of the .NET type system through investigating indexers, operator overloading, extension methods and pointers. Also, you will take a first look at Language Integrated Query (LINQ), and learn various advanced features of C#. You will also learn about the life cycle of a C# object and multi-threaded programming. Please work through Themes 1 to 5 on Learn, together with the relevant sections of your prescribed source/s. To ensure that you are working towards mastering the objectives for this learning unit, please also ensure that you complete the activities on Learn. © The Independent Institute of Education (Pty) Ltd 2023 Page 12 of 22 IIE Learn Module Outline Learning Unit 1: Theme Breakdown Sessions: Theme 1: Object Lifetime 1-14 Related LO1: Explain the garbage collection mechanisms Outcomes: in .NET 4.0 and later; MO001 LO2: Develop C# programs using finalizable objects; LO3: Develop C# programs using disposable objects; LO4: Use lazy object initialisation to solve programming problems. Theme 2: Advanced C# Features LO5: Develop C# programs that make use of indexers; LO6: Develop C# programs that make use of operator overloading; LO7: Develop C# programs that make use of custom types; LO8: Develop C# programs that make use of extension methods; LO9: Develop C# programs that make use of anonymous types; LO10: Develop C# programs that make use of pointer types. Theme 3: Language Integrated Queries LO11: Use Language Integrated Queries to perform data operations in the C# environment; LO12: Use anonymous types with Language Integrated Queries in C# to represent the state and functionality of a given model item. Theme 4: Processes, AppDomains and Object Contexts LO13: Discuss the purpose of Windows Processes in C#; LO14: Use the C# AppDomains to monitor activities; LO15: Explain the use of the C# ObjectContext class. © The Independent Institute of Education (Pty) Ltd 2023 PROG6212 Prescribed Material (PM) PM: Chapter 9 of the Prescribed Textbook. PM: Chapter 11 of the Prescribed Textbook. PM: Chapter 13 of the Prescribed Textbook. PM: Chapter 14 of the prescribed textbook. Page 13 of 22 IIE Learn Module Outline PROG6212 Theme 5: Multithreaded-, Parallel- and PM: Chapter 15 of the Asynchronous Programming prescribed textbook. LO16: Develop applications using Multithreading in C#; LO17: Execute parallel programming and Async Programming in C#; LO18: Differentiate between Multithreaded-, Parallel- and Asynchronous Programming. © The Independent Institute of Education (Pty) Ltd 2023 Page 14 of 22 IIE Learn Module Outline Learning Unit 2 PROG6212 Programming with the .NET Assemblies Overview: .NET Assemblies are the building blocks of the .NET Framework. They form the basic unit of deployment, reuse, version control, activation scoping, and security permissions. The .NET assemblies provide the information the common language runtime (CLR) needs to be cognisant of type implementations. It is also a collection of types and resources that are built to work together and form a logical unit of functionality. To the runtime, a type does not exist outside the context of an assembly. Please work through Themes 1 to 4 on Learn, together with the relevant sections of your prescribed source/s. To ensure that you are working towards mastering the objectives for this learning unit, please also ensure that you complete the activities on Learn. © The Independent Institute of Education (Pty) Ltd 2023 Page 15 of 22 IIE Learn Module Outline Learning Unit 2: Theme Breakdown Sessions: Theme 1: Building and Configuring Class 15 - 32 Libraries Related LO1: Use Class Libraries in C# to share Outcomes: code among applications; MO001 LO2: Explain under what circumstances Class Libraries can be used in C#; LO3: Discuss the benefits of using Class Libraries in C#. Theme 2: Type Reflection, Late Binding and Attribute-Based Programming LO4: Use type reflection in C# to programmatically obtain metadata information; LO5: Develop C# programs to perform late binding using reflection. Theme 3: Dynamic Types and the Dynamic Language Runtime LO6: Use dynamic types in C# to simplify complex coding; LO7: Explain what Dynamic Language Runtime is and how to use it in C#. Theme 4: The Role of Dynamic Assemblies LO8: Discuss the role of Common Intermediate Language in C#; LO9: Implement dynamic assemblies in C#; LO10: Explain the role of Dynamic Assemblies in C# applications. © The Independent Institute of Education (Pty) Ltd 2023 PROG6212 Prescribed Material (PM) PM: Chapter 16 of the Prescribed Textbook PM: Chapter 17 of the Prescribed Textbook. PM: Chapter 18 of the prescribed textbook. PM: Chapter 19 of the prescribed textbook. Page 16 of 22 IIE Learn Module Outline Learning Unit 3 PROG6212 Files and Data Overview: By now, you should have a solid understanding of the C# language and the details of the .NET platform. In this learning unit, we will explore various types of commonly used services found within the base class libraries, including file I/O and database access using ADO.NET. This learning unit also covers data access using Entity Framework Core. Please work through Themes 1 to 4 on Learn, together with the relevant sections of your prescribed source/s. To ensure that you are working towards mastering the objectives for this learning unit, please also ensure that you complete the activities on Learn. © The Independent Institute of Education (Pty) Ltd 2023 Page 17 of 22 IIE Learn Module Outline Learning Unit 3: Theme Breakdown Sessions: Theme 1: C# File I/O and Object Serialization 33 - 39 Related LO1: Create desktop applications to store Outcomes: data; MO001 LO2: Manipulate files and directories using MO003 core I/O types; LO3: Manipulate text data. Theme 2: Data Access with ADO.NET LO4: Develop data-centric applications using ADO.Net; LO5: Interact with relational databases using the core types and namespaces of ADO.net data providers. Theme 3: Entity Framework Core LO6: Explain the purpose of an objectrelational mapper; LO7: Identify the building blocks of Entity Framework. Theme 4: Data Access with Entity Framework Core LO8: Model a database in memory; LO9: Develop data-centric applications using Entity Framework Core; LO10: Differentiate between code first and database first implementations; LO11: Create records using Entity Framework Core; LO12: Update records using Entity Framework Core; LO13: Delete records using Entity Framework Core. © The Independent Institute of Education (Pty) Ltd 2023 PROG6212 Prescribed Material (PM) PM: Chapter 20 of the prescribed textbook PM: Chapter 21 of the prescribed textbook PM: Chapter 22 of the prescribed textbook. PM: Chapter 23 of the prescribed textbook. Page 18 of 22 IIE Learn Module Outline Learning Unit 4 PROG6212 Windows Presentation Foundation Overview: Windows Forms was the initial and earlier desktop GUI API that the .NET Platform supported. Although this API is still fully supported within the framework, an astounding API called Windows Presentation Foundation (WFP) has been introduced to programmers by the .NET 3.0, and this has quickly become the heir apparent to the Windows Forms desktop programming model. WPF allows you to build desktop applications that incorporate vector graphics, interactive animations, and data-binding operations using a declarative markup grammar called XAML. Additionally, the WPF control architecture provides an effortless way to restyle the look and feel of a typical control radically using little more than some wellformed XAML. Please work through Themes 1 and 2 on Learn, together with the relevant sections of your prescribed source/s. To ensure that you are working towards mastering the objectives for this learning unit, please complete the activities on Learn. © The Independent Institute of Education (Pty) Ltd 2023 Page 19 of 22 IIE Learn Module Outline Learning Unit 4: Theme Breakdown Sessions: Theme 1: Model-View-ViewModel 40 - 49 Related LO1: Use the Model View ViewModel pattern in Outcomes: the Windows Presentation Foundation; MO002 LO2: Discuss the three important items used in implementing the Model View View Model pattern in the Windows Presentation Foundation. Theme 2: Notifications, Validations and Commands LO3: Use the binding notification system in the Windows Presentation Foundation; LO4: Explain how to perform Windows Presentation Foundation Validation; LO5: Create custom commands in a Windows Presentation Foundation app. © The Independent Institute of Education (Pty) Ltd 2023 PROG6212 Prescribed Material (PM) PM: Chapter 28 of the prescribed textbook. PM: Chapter 28 of the prescribed textbook. Page 20 of 22 IIE Learn Module Outline Learning Unit 5 PROG6212 ASP.NET Core Web Development Overview: A significant percentage of applications developed today are web-based. In this final Learning Unit, we will learn to construct Internet-based applications using ASP.NET Core. First, we will explore the model-view-controller pattern. Then, we will create RESTful webservices and web based user interfaces using ASP.NET Core. Please work through Themes 1 to 3 on Learn, together with the relevant sections of your prescribed source/s. To ensure that you are working towards mastering the objectives for this learning unit, please complete the activities on Learn. © The Independent Institute of Education (Pty) Ltd 2023 Page 21 of 22 IIE Learn Module Outline Learning Unit 5: Theme Breakdown Sessions: Theme 1: Introducing ASP.NET Core 50 - 72 Related LO1: Explain the Model View Controller Outcomes: (MVC) pattern. MO002 LO2: Identify the features of ASP.NET Core. MO003 LO3: Create an ASP.NET Core application. Theme 2: RESTful Services with ASP.NET Core LO4: Develop RESTful web services using ASP.NET Core. Theme 3: MVC Applications with ASP.NET Core LO5: Develop a web application using ASP.NET Core. © The Independent Institute of Education (Pty) Ltd 2023 PROG6212 Prescribed Material (PM) PM: Chapter 29 of the prescribed textbook. PM: Chapter 30 of the prescribed textbook PM: Chapters 31 of the prescribed textbook. Page 22 of 22