MODULE TITLE: Visual Programming
MODULE CODE: COM321
YEAR OF REVISION: 2015/16
MODULE LEVEL: 5
CREDIT POINTS: 10
MODULE STATUS: Compulsory
SEMESTER: 1
LOCATION: Magee
E-LEARNING: Blended learning
PREREQUISITE(S): COM136 Programming I; COM139 Programming II
CO-REQUISITE(S): None
MODULE CO-ORDINATOR(S): Cecotti, H. TEACHING STAFF
RESPONSIBLE FOR MODULE DELIVERY: Cecotti, H. HOURS: Lectures 12 hrs Seminars Tutorials Practicals 24hrs Independent study (including assessment) 64hrs
TOTAL EFFORT HOURS: 100
ACADEMIC SUBJECT: COM MODULAR SUBJECT: N/A
RATIONALE
The complexity and the size of projects increase while there is a need to improve the productivity of software development by allowing applications or parts of an application to be (re-)used on different platforms (pc windows, mobiles). It is therefore required to use advanced and adapted programming environments to develop efficiently software that are cross-platforms. In addition, a large number of applications that are used by people require a graphical user interface, which follows the event-driven programming paradigm where the flow is determined by user actions or the actions coming from other systems. This module introduces the concepts and principles of Visual Programming techniques to support the development of modern, high quality applications with the management of events such as in Graphical User Interfaces. Visual SDKs also offer significant support for the development of mobile applications via the use of emulators as development
platforms for Smartphone platforms and emerging devices. It is appropriate that computing students should become familiar with the potential and the challenges of these rapidly developing support environments.
AIMS
This module provides the developing programmer with graded coverage of core programming topics, with an emphasis on the C# programming language, and the use of a visual development environment (Visual Studio). The core aim is to develop competency and confidence in event-driven programming (e.g. event handling, exceptions) and key concepts of object-oriented programming (e.g. hierarchy, inheritance, and polymorphism) applied within the context of modern applications with graphical user interfaces.
LEARNING OUTCOMES
A successful student will be able to:
KNOWLEDGE AND UNDERSTANDING
K1 Understand the potential and the limitations of a visual programming language. K2 Understand and apply event-driven programming both for fixed and mobile
target platforms.
K3 Understand the impact of object-oriented programming within the context of event-related programming and graphical user interface with an interface developed in a visual programming language both in fixed and in mobile target platforms.
K4 Understand the implications of the separation between the code related to the user interface and the code related to the abstract models.
INTELLECTUAL QUALITIES
I1 Explain the potential and the limitations of Visual Development environments. I2 Discuss the best practice of event-related programming.
I3 Appreciate the necessary convergence of knowledge precipitated by the ongoing convergence of technology.
PROFESSIONAL/PRACTICAL SKILLS
P1 Develop software applications targeted at static and mobile platforms. P2 Develop object-oriented and event-driven applications.
P3 Create a deployment for applications developed both for static and for mobile platforms.
P4 Analyse and debug software applications created with Visual Development environments.
TRANSFERABLE SKILLS
T1 Use a current Visual SDK.
T2 Apply C# solutions to programming problems. T3 Work to agreed deadlines.
CONTENT
Core Programming Topics: o Using Data
o Programming paradigms o Using data structures
o Using Methods and Properties
o Using and creating Classes and Objects o Files management
C# Visual Programming:
o The .NET Framework
o The .NET Compact Framework o C# syntax for programming
o Hierarchy, Inheritance, and Polymorphism o Handling Events
o Exception Handling
o Using GUI Objects and the Visual Studio IDE o Using Controls
TEACHING AND LEARNING METHODS
The background and theoretical underpinning of core developments in event-driven programming with C#, and visual programming techniques will be presented in lectures.
Tutorial/Practical sessions will be presented in a laboratory situation using the facilities in the Smart-classroom, and will explore in detail the key challenges and advantages which arise when using a visual development environment.
Typically, tutorials/practical sessions will focus on illustrating a specific issue after which the students will be required to attempt to implement a practical solution to the relevant problem. The weekly two-hour sessions will provide the student with the opportunity to explore the theory covered in lectures, and exemplified in tutorials, and provide practical experience, with examples to enable understanding of the processes of implementation and testing of concepts.
Students will be directed to read journals and relevant texts (book, webpages) related to the module content, as independent study and in relation to assignments.
Students will be expected to work independently, and also to form study groups for the purpose of acquiring and sharing both knowledge and experience.
ASSESSMENT AND FEEDBACK
The exact nature of the coursework will vary from year to year. Examples of typical coursework assessments that may be used to assess student learning include:
Coursework 1 (50%):
Students, in groups of 2-4, will be required to develop a software application to solve a specified set of problems, and to present their work in week 12. The problems will be presented in a scenario, which outlines key deliverables. Typically the deliverables will range from initially straightforward tasks to more challenging work with the final deliverable offering scope for innovation and originality of approach. Each student will typically be assessed upon the following key learning outcomes:
Appropriate implementation of Object-Oriented techniques and concepts Validation
Quality of the design
Clarity of the design process Clarity of documentation Ease of use of the application
The extent to which the project design supports enhancement Presentation skills
Feedback will be provided in the laboratory setting during presentations. A general feedback will be delivered at the end of the module. Personal feedback for each project will be possible.
Coursework 2 (30%):
The second coursework component will comprise an on-line test. Detailed feedback and answers to the questions will be available online following test completion.
Coursework 3 (20%):
The third coursework component will comprise an evaluation of four key practical sessions. (5% per practical session).
READING LIST
Required
Murach’s C 2010, Joel Murach, Mike Murach & Associates Inc. ISBN -13: 978-1-890774-59-2
Recommended
Cameron, Rob, 2011, Pro Windows Phone App Development. 2nd Ed. (Professional Apress)
Troelsen, Andrew, 2010, Pro C# 2010 and the .NET 3.5 Platform (4th Edition) Apress, ISBN 13: 978-1-99059-884-9
Wildermouth, Shawn, 2012, Essential Windows Phone 7.5: Application Development with Silverlight (Microsoft Windows Development Series)
The Microsoft Developer Network, https://msdn.microsoft.com/en-us/default.aspx
SUMMARY DESCRIPTION
A large number of software have to be deployed on various platforms, and they have to provide a graphical user interface. This module will introduce the key concepts and principles of C# application development using Visual Programming and Event-driven programming techniques in the context of rapid application development of modern, high quality software solutions with Graphical User Interfaces. Programming for both pc windows and mobile platforms will form a core element of the module.