HBO minor Software developer
ITPH Academy OKTOBER 2015 VERSIE 1.3 Dit document is een uitgebreide beschrijving van de HBO minor Software Developer gericht op een full stack van een mix van best of breed technologiën zoals C# .NET, Java, Angular.JS, JSON. Onderdeel zijn certificeringen van Oracle (Java OCA) en Microsoft ( MCSD Web Apps). Deze minor wordt aangeboden door deelnemende HBO onderwijsinstellingen aan voltijd en deeltijd studenten ter specialisatie op het gebied van software development.
Inhoud 1.1. 1.2. 1.3. 1.4. 1.5. 1.6. 1.7. 1.8. 1.9. 1.10. 1.11. 1.12. 1.13.
Algemeen .................................................................................................................................................. 3 Waarom deze minor ................................................................................................................................. 3 Aansluiting studierichting ......................................................................................................................... 3 Aansluiting bedrijfsleven........................................................................................................................... 3 Doelgroep ................................................................................................................................................. 4 Voorkennis en competenties .................................................................................................................... 4 Te behalen EC ........................................................................................................................................... 5 European e-Competence Framework ....................................................................................................... 5 Duur van de minor .................................................................................................................................... 6 Opbouw van de minor .............................................................................................................................. 7 examinering .............................................................................................................................................. 8 Diplomering .............................................................................................................................................. 8 Kosten ....................................................................................................................................................... 8
2
Minor Programma ..........................................................................................9
2.1. 2.2. 2.3. 2.4. 2.5. 2.6.
Algemeen .................................................................................................................................................. 9 Omschrijving ............................................................................................................................................. 9 Onderdelen ............................................................................................................................................. 10 Theorie en praktijk .................................................................................................................................. 11 studiemateriaal ....................................................................................................................................... 11 Leeromgevingen ..................................................................................................................................... 11
3
Beschrijving cursusdelen..............................................................................12
3.1. 3.2. 3.3. 3.4. 3.5. 3.6. 3.7. 3.8. 3.9. 3.10. 3.11. 3.12.
General information ............................................................................................................................... 12 knowledge parts Software development ................................................................................................ 12 Part 1 – Java ............................................................................................................................................ 12 Part 2 – C# ............................................................................................................................................... 14 Part 3 - HTML5/CSS3/JavaScript ............................................................................................................. 17 Part 4 - ASP.NET MVC applications using .NET ....................................................................................... 19 Part 5 – Developing Windows Azure and Web Services ......................................................................... 23 Part 6 – JavaScript, Typescript, Node.JS, Angular.JS ............................................................................... 25 Part 7 – Mobile development with Android ........................................................................................... 25 Agile Projectmethodieken ...................................................................................................................... 29 PraktijkCase............................................................................................................................................. 30 Appendix 1 – Benodigde voorkennis....................................................................................................... 31
HBO Minor Software Developer v1.3
2 | 31
oktober 2015
1.1.
ALGEMEEN
1.2.
WAAROM DEZE MINOR Deze HBO minor Software Developer is ontstaan uit de behoefte van het bedrijfsleven om ontwikkelaars met kennis van zaken te kunnen vinden die ook geheel voorbereid zijn om als junior developer aan de slag te gaan in een professionele mixed ontwikkelomgeving.
Bedrijven willen ook graag werknemers die met de formele certificeringen bewezen hebben de juiste kennis te bezitten en deze ook bewezen goed in een kenmerkende beroepssituatie hebben toegepast. Dat is waarin deze minor ook voorziet. Maar ook als een deelnemer de rol van Software Development niet als hoofdtaak zal oppakken is de minor zeer waardevol. Software Development is een zeer gewaardeerde aanvullende competentie die in veel functies een unieke verbreding geeft waarmee de deelnemer zich sterk kan onderscheiden. Software Developer als Minor is een Major differentiator. 1.3.
AANSLUITING STUDIERICHTING Software development wordt steeds belangrijker. Tegelijk komt software development dichter en dichter bij de gebruiker, zelfs kinderen op de basisschool moeten tegenwoordig leren programmeren. Daarom is het belangrijk dat de business inzicht krijgt softwaredevelopment maar dat ook een softwaredeveloper de business goed kent. Deze minor maakt een rol in beide posities mogelijk, een businessman met affiniteit voor softwaredevelopment en de doorgegroeide developer die veel waarde heeft aan z’n businessachtergrond. In beide gevallen geeft de minor geeft belangrijke extra kansen aan de afstudeerder.
De HBO minor Software Developer is opgezet vanuit een business studierichting te specialiseren in software development. 1.4.
AANSLUITING BEDRIJFSLEVEN De HBO minor Software Developer zorgt met name voor afstudeerders die goed begrijpen wat software development is en kunnen programmeren. De wereld draait meer en meer om software. In het privé leven, in het publieke domein en in het zakelijke leven. En zelfs het fysieke domein wordt via Internet of Things een onderdeel van informatiesystemen. Software bestaat tegelijkertijd ook niet meer uit 1 groot informatiesysteem, van 1 leverancier, in 1 taal met 1 database. Software is enorm divers, een geheel dat meer en meer van nature integreert. Producten van vele leveranciers of zelfs zonder leverancier, gebouwd in een verscheidenheid van talen en gebruik makend van een variatie aan datastructuren en opslagsystemen. Dat is de wereld waar deze minor zich op richt.
Daarom hebben we ervoor gekozen om onder meer Java, C#, HTML5, CSS, Javascript, Node.JS en Angular.JS op te nemen in deze minor. Daarmee wordt een groot deel van de softwarediversiteit in de moderne softwareontwikkeling afgedekt. Op basis van behoefte uit het bedrijfsleven wordt ook de Agile projectmethodiek Scrum aangeboden en verweven in de opleiding. Tegelijk wil het bedrijfsleven kwaliteit. Er wordt gekeken naar goede opleidingen met breed geaccepteerde certificeringen. Daarom zijn in deze minor drie formele certificering opgenomen: Het certificaat voor Microsofts MCSD Web Applications, De Oracle Java OCA certificering en het Scrum certificaat. Alle drie zijn het waardevolle internationaal erkende certificeringen voor een professional binnen het bedrijfsleven.
HBO Minor Software Developer v1.3
3 | 31
oktober 2015
Tenslotte is ook de praktische casus een belangrijk deel. Hier wordt verder de verbinding gelegd tussen de opleiding en de praktijk. De casus is een real live situatie waarbij het bedrijfsleven zowel bij de ontwikkeling, de uitvoering en de beoordeling betrokken is. Hierdoor worden doorlopend de laatste inzichten ingebracht en toegepast. Vanwege de praktische insteek en de afgebakende certificering kan deze minor ook buiten een HBO studie, gevolgd worden. Want naast het behalen van de minor en de bijbehorende studiepunten is zijn er de waardevolle erkenningen vanuit het bedrijfsleven van het formele MCSD Web Applications certificaat, het Oracle OCA certificaat en de Scrum certificering die met deze minor worden behaald. 1.5.
DOELGROEP Deze minor is zeer geschikt voor de volgende doelgroepen: Studenten die een HBO business opleiding volgen; Studenten die een HBO IT opleiding volgen; Werknemers die zich willen specialiseren in Software Development. Werknemers die afzonderlijke componenten van deze minor willen volgen
Naast de minor, ook losse modules De minor is modulair opgezet waardoor er een grote flexibiliteit ontstaat in de uitvoering maar ook in de deelname. Er kan naar wens een selectie en combinatie van beschikbare modules worden gemaakt waardoor ook de inhoud, de duur en de kosten van de studie variabel zijn. Dit is vooral interessant voor bestaande werknemers of instromers. Zij kunnen op deze manier via de deelnemende HBO’s bijvoorbeeld ontbrekende competenties en formele certificeringen behalen tegen zeer aantrekkelijke voorwaarden. 1.6.
VOORKENNIS EN COMPETENTIES Van deelnemers wordt verwacht dat zij de basiskennis hebben die voor een Software Developer nodig is. Wanneer deze kennis niet aanwezig is of de kennis opgefrist moet worden kun je je additioneel op een aansluitingsweek inschrijven. De aansluitingsweek wordt een aantal keren per jaar georganiseerd en zorgt er voor dat je bijgespijkerd wordt op de benodigde onderwerpen.
Verder worden er een aantal competenties verwacht om te kunnen functioneren in de rol van Software Developer. Voorkennis Basiskennis IT (zie voor toelichting appendix 1) Competenties Communicatie Samenwerken Logisch denken Nauwkeurig werken
HBO Minor Software Developer v1.3
4 | 31
oktober 2015
1.7.
TE BEHALEN EC
De HBO minor Software Developer heeft een totale waarde van 30 EC (studiepunten). Het kennisdeel bestaat uit 21 studiepunten. Daarin opgenomen zitten de Java OCA certificering (6 studiepunten), de componenten voor de MCSD Web Apps certificering (9 studiepunten), het C# component (3 studiepunten) en de JavaScript delen inclusief Node.JS en Angular.JS en Android mobile development (3studiepunten). Scrum, Jason, Cloudservices, Containers, Git en Github zijn onderwerpen die verweven zijn door de gehele opleiding. Uiteindelijk zijn er ook de praktijkcases waar het geleerde toegepast moet worden. Voor deze praktijkcase kan een subselectie gemaakt worden uit de behandelde technieken zodat die aansluit bij de wensen van de huidige of toekomstige werkgever. De beoordelingen is in 3 cycli van ontwikkeling die elk staan voor 3 EC. Daarmee komt het praktijkdeel van deze minor op 9 EC. 1.8.
EUROPEAN E-COMPETENCE FRAMEWORK ITPH Academy is een groot voorstander van het toepassen van het European eCompetence Framework. Dit is een framework dat de Europese standaard aan het worden is voor competentiedefinitie in IT. Dit heeft als doel onderwijs, studenten, medewerkers en bedrijven nationaal en internationaal een universele taal te geven als het over rollen en competenties gaat.
HBO Minor Software Developer v1.3
5 | 31
oktober 2015
Deze HBO minor Software Developer heeft de volgende e-CF Competences en hun gerelateerde proficiency levels tot doel: A6 1-2, B1 3, B2 2, B3 2, B4 1-2 B5 3, C4 2-3 (Definities kunnen hier gevonden worden, de complete documentatie van e-CF kan gevonden worden op www.ecompetences.eu. Voor het verkennen van het e-CF is er ook een handig hulpmiddel.) 1.9.
DUUR VAN DE MINOR Voltijd De minor duurt op basis van de voltijdstudie en de gemiddelde HBO studielast 20 weken. De minor kan echter, afhankelijk van de persoonlijk beschikbare studietijd sneller of langzamer afgerond worden. Door deze flexibiliteit kan het voorkomen dat bepaalde lessen in de avond of op zaterdag worden aangeboden. De minor is in de basisvorm ruwweg opgedeeld in: 16 weken theorie en praktische cases 4 weken praktijkopdrachten De praktijkopdrachten moeten bij stagebedrijven worden uitgevoerd.
Deeltijd De deeltijdvariant kan in principe ook in 20 weken met natuurlijk meer zelfwerkzaamheid dan bij voltijd. De deeltijdvariant is echter flexibel waarmee ook de doorlooptijd variabel is. Daardoor is deze variant erg goed in te passen in een leer/werk situatie maar dat vereist wel meer zelfstandigheid en initiatief. De student kan zichzelf inschrijven voor de lessen die hij of zij bij wil wonen op de tijd dat het schikt. Er worden sessies overdag georganiseerd, in de avond en op zaterdag, op meerdere locaties in het land. In een leer/werk combinatie is het voor de praktijkopdracht de doelstelling dat de deze samen of individueel in een eigen werkomgeving worden uitgevoerd. De opdrachten zullen daarop worden afgestemd. Is dat niet mogelijk dan moeten de opdrachten in overleg bij stagebedrijven worden uitgevoerd. Inhoudelijk verschilt de voltijd niet van de deeltijd.
HBO Minor Software Developer v1.3
6 | 31
oktober 2015
1.10.
OPBOUW VAN DE MINOR
De minor begint met Java die ook als taal de basis legt voor het programmeren. Dat is gelijk een stevig blok, maar is voor veel volgende componenten het referentiekader en wordt afgesloten met en Oracle certificering OCA (Oracle Certified Associate). Met C# als volgende stap zijn twee belangrijke stabiele talen die al vele jaren hoog in de lijst van gevraagde competenties staan behandeld. Tijdens het behandelen van deze delen zijn er veel praktijkopdrachten. C# wordt niet afgesloten met een certificering, dat zou te zwaar worden. Maar in theorie zou dat met flink wat zelfstudie wel kunnen. Vervolgens komen er drie onderdelen die elk worden afgesloten met een Microsoft Certificering. Het gaat hier om ASP.NET, MVC, Webservices, CSS, HTML5 en Javascript. Ook de Microsoft Cloud Azure wordt behandeld. Tegelijk worden ook de andere vier belangrijkste cloud varianten behandeld, die van Google, Amazon, Alibaba en IBM. Na het behalen van deze drie certificeringen mag de deelnemer de titel MCSD Web Applications voeren, de meest voorkomende MCSD titel. Daarnaast zullen een aantal populaire talen, libraries en frameworks behandeld worden zoals TypeScript, Node.JS, Angular.JS en het op Java gebaseerde mobile ontwikkelplatform van Android. Een programmeertal is slechts een programmeertaal en in de praktijk zullen ontwikkelaars allerlei libraries en frameworks gebruiken om hun applicatie op een snelle en efficiënte manier te ontwikkelen. Deze libraries en frameworks komen aan bod tijdens het behandelen van de programmeertalen. Daar waar het te pas komt worden Scrum, Jason, Cloudservices, Containers, Git en Github behandeld op basis van het Just in Time principe. Aan het eind van de theorie zal ook een Scrum certificering worden ingepland. Uiteindelijk zal het duidelijk zijn dat een ontwikkelaar veel van deze onderwerpen vaak in de minor zal tegenkomen. Voor de afsluitende praktijkcasus van ongeveer 4 weken zal de theorie uit deze minor toegepast moeten worden in een praktijkproject. Echter, niet alle technieken hoeven worden toegepast. De keuzes laten we afhangen van de wens van de bestaande of toekomstige werkgever of vervolgstudie in overleg met de docent. Daar waar dat niet van toepassing is kan de deelnemer een eigen praktijkcasus voorstellen aan de docent. De docent waakt er in alle gevallen voor dat er voldoende onderwijskundige beoordeling mogelijk is Bij een deeltijdvariant zijn de combinaties en de doorlooptijden gelijk aan het voltijdschema maar kunnen er desgewenst bij voldoende interesse per cohort ook alternatieve planningen voorgesteld worden.
HBO Minor Software Developer v1.3
7 | 31
oktober 2015
1.11.
EXAMINERING Examen voor de kennisdelen wordt afgenomen door de HBO instelling en een onafhankelijk door de vendor erkend exameninstituut. De resultaten van de praktijkproject moeten zijn opgenomen in het eindverslag van de minor. Op basis van het totaal zal HBO instelling een eindoordeel over de minor vormen.
1.12.
DIPLOMERING Na het behalen van elk van de deelexamens krijgt de deelnemer een formeel leverancierscertificaat. De combinatie van de behaalde certificaten geeft het recht op de formele titel MCSD Web Applications en OCA. Ook zal tijdens de minor een Scrum certificering worden behaald.
Er volgt een formele schriftelijke beoordeling van de complete minor, inclusief de resultaten en de verslagen van de praktijkopdrachten door de HBO instelling. 1.13.
KOSTEN De kosten voor deze HBO minor bedragen 9.990 Euro, inclusief een certificeringsexamen voor elke module, exclusief boeken en eventuele herexamens. Studenten van een erkende HBO instelling krijgen een korting van 50% op de kosten van deze minor.
HBO Minor Software Developer v1.3
8 | 31
oktober 2015
2 Minor Programma 2.1.
ALGEMEEN De HBO minor Software Developer is bedoeld om de kennis en ervaring van studenten in business en IT richtingen nog beter te laten aansluiten op de praktijk met gecertificeerde modules die hoog gewaardeerd worden in het bedrijfsleven. Studenten leren hoe vandaag en morgen software wordt gebouwd met de meest populaire technieken. Het doel is om snel als volwaardige medewerker een belangrijke waarde toe te voegen aan het bedrijfsproces.
2.2.
OMSCHRIJVING Deze minor richt zich op de volgende competenties (referenties naar Dublin Descriptoren): Theorie (Kennis en begrip) o Software development o OO architecture o Programming languages o Cloud based development o Mobile development o Agile projectmanagement methods
Productkennis (Kennis en begrip) o Kennis opdoen van nieuwe technologieën in Java C# CSS, HTML5, JavaScript ASP.NET MVC WebApp in .NET Android Java Windows Azure Google Cloud IBM BlueMix Alibaba Aliyun Amazon EC2 Zakelijke certificeringen o MCSD Web Apps (MCSD = Microsoft Certified Software Developer) door Microsoft o Oracle Certified Associate Jave SE (OCA) door Oracle o Scrum Project (Toepassen kennis en inzicht, oordeelvorming en communicatie) o Communicatie met opdrachtgever Onderzoek, keuzes, advies o Kennis en ervaring opdoen van Plannen urenschattingen maken omgaan met deadlines
HBO Minor Software Developer v1.3
9 | 31
oktober 2015
2.3.
fasering van een opdracht kosten/baten planning werken in teamverband o Realisatie in teamverband Ontwerpen Ontwikkelen van hulpmiddelen Gebruik van frameworks Testen Uitrollen Documenteren Zelfkennis (inzicht) o Ontdekken welke functie/rol/werk het beste past bij de student
ONDERDELEN Programmeren o De deelnemer krijgt een beeld van de verschillende programmeerstijlen en zal deze in voorbeelden zelf toepassen. Kennis van en ervaring met het proces van programmeren is belangrijk voor de gehele minor dus dit onderdeel is van groot belang. Gedurende de minor wordt dit onderwerp verbreed en uitgediept zodat aan het eind een gedegen inzicht is ontstaan rond het begrip programmeren.
Programmeertalen o Uit de honderden talen die er bestaan zijn een aantal talen gekozen die ofwel relatief tijdloos zijn (Zoals Java en C#) en een aantal talen die juist op dit moment en in de nabije toekomst in de belangstelling staan (zoals HTML5 en Angular.JS). Hierdoor wordt zowel een stevige duurzame basis gelegd maar ook voor het bouwen van applicaties met moderne look and feel worden de hulpmiddelen aangereikt en toegepast Platformen o De PC in combinatie met een fysieke server als platform bestaat nog steeds, maar er ontstaan steeds meer en belangrijkere platformen zoals het cloud platform, de TV als platform en het mobile platform, benaderd met multi platform ontwikkeling of een zeer gerichte ontwikkeling op een specifiek platform waarbij alle functionaliteiten van een platform optimaal worden benut. Als voorbeeldplatformen worden de vijf belangrijkste cloudplatformen van Microsoft, IBM, Amazon, Google en Alibaba gebruikt en het mobile platform van Android Praktijkcase o De minor wordt afgesloten met een praktijkcase. Hierin wordt een project in een praktijksituatie nagebootst. In een paar weken tijd zullen de studenten in een projectteam samen met een klant een realistische oplossing onderzoeken, adviseren, opbouwen en opleveren. Iedere student heeft in dit proces zo veel mogelijk wisselende maar wel realistische rollen. Doel van dit gedeelte is om
HBO Minor Software Developer v1.3
10 | 31
oktober 2015
de theorie toe te kunnen passen, met inzicht valkuilen te leren herkennen en oplossingen aan te dragen. 2.4.
THEORIE EN PRAKTIJK Doorlopend wordt theorie afgewisseld door praktijk. Ook in de theoriedelen zijn veel praktijkcases aanwezig. De docenten hebben zelf praktijkervaring bij bedrijven en zullen waardevolle praktische leermomenten aandragen en die verbinden met de leerstof.
2.5.
STUDIEMATERIAAL Gedurende de theorie en praktijklessen wordt gebruik gemaakt van officiële cursusmaterialen die door de verschillende leveranciers ter beschikking worden gesteld. Het cursusmateriaal wordt eigendom van de student.
2.6.
LEEROMGEVINGEN Op de leslocatie is hardware aanwezig waar gedurende de lessen gebruik van gemaakt kan worden. Echter, als ontwikkelaar is het handig om een eigen ontwikkelomgeving te hebben ingericht op je eigen laptop. We adviseren dan ook om voor een eigen ontwikkelaars laptop te zorgen, een goede middenklasse laptop voldoet daar over het algemeen aan. Een groter scherm (of extern groter scherm) is wel aan te bevelen.
HBO Minor Software Developer v1.3
11 | 31
oktober 2015
3 Beschrijving cursusdelen 3.1.
GENERAL INFORMATION The minor contains 7 knowledge parts to achieve competences and 1 practical part, split into three periods. That allows the participant to get a good mix of theory and practical experience.
3.2.
KNOWLEDGE PARTS SOFTWARE DEVELOPMENT The seven parts are 1. Java 2. C# 3. HTML5/CSS3/JAVASCRIPT 4. ASP.NET MVC applications using .NET 5. Developing Windows Azure and Web Services 6. JavaScript, Typescript, Node.JS, Angular.JS 7. Mobile development with Android (Java)
We will describe the detailed content of each part below. 3.3.
PART 1 – JAVA This first part will provide the foundation for the software developer. Java is a language that contains most of the aspects that are found in the subsequent parts allowing for easier and faster understanding. Even though the subjects are based on the OCA Exam, they reflect the theoretical background and practical knowledge needed to develop in Java. This part will probably require quite some self-study and includes several practical assignments that need to be executed with fellow participants, as much of the learning is done by practicing.
Course details Part 1 Module 1, Java Basics o Define the scope of variables o Define the structure of a Java class o Create executable Java applications with a main method o Import other Java packages to make them accessible in your code Module 2, Working With Java Data Types o Declare and initialize variables o Differentiate between object reference variables and primitive variables o Read or write to object fields o Explain an Object's Lifecycle (creation, "dereference" and garbage collection) o Call methods on objects o Manipulate data using the StringBuilder class and its methods o Creating and manipulating Strings Module 3, Using Operators and Decision Constructs o Use Java operators o Use parenthesis to override operator precedence o Test equality between Strings and other objects using == and equals () o Create if and if/else constructs
HBO Minor Software Developer v1.3
12 | 31
oktober 2015
o Use a switch statement Module 4, Creating and Using Arrays o Declare, instantiate, initialize and use a one-dimensional array o Declare, instantiate, initialize and use multi-dimensional array o Declare and use an ArrayList Module 5, Using Loop Constructs o Create and use while loops o Create and use for loops including the enhanced for loop o Create and use do/while loops o Compare loop constructs o Use break and continue Module 6, Working with Methods and Encapsulation o Create methods with arguments and return values o Apply the static keyword to methods and fields o Create an overloaded method o Differentiate between default and user defined constructors o Create and overload constructors o Apply access modifiers o Apply encapsulation principles to a class o Determine the effect upon object references and primitive values when they are passed into methods that change the values Module 7, Working with Inheritance o Implement inheritance o Develop code that demonstrates the use of polymorphism o Differentiate between the type of a reference and the type of an object o Determine when casting is necessary o Use super and this to access objects and constructors o Use abstract classes and interfaces Handling Exceptions o Differentiate among checked exceptions, RuntimeExceptions and Errors o Create a try-catch block and determine how exceptions alter normal program flow o Describe what Exceptions are used for in Java o Invoke a method that throws an exception o Recognize common exception classes and categories
HBO Minor Software Developer v1.3
13 | 31
oktober 2015
3.4.
PART 2 – C# This part teaches developers the programming skills that are required for developers to create Windows applications using the C# language. We will review the basics of C# program structure, language syntax, and implementation details.
Many of the techniques and technologies employed by modern desktop and enterprise applications will be introduced, including:
Building new data types. Handling events. Programming the user interface. Accessing a database. Using remote data. Performing operations asynchronously. Integrating with unmanaged code. Creating custom attributes. Encrypting and decrypting data.
After completing this course, students will be able to:
Describe the core syntax and features of C#. Create and call methods, catch and handle exceptions, and describe the monitoring requirements of large-scale applications. Implement the basic structure and essential elements of a typical desktop application. Create classes, define and implement interfaces, and create and use generic collections. Use inheritance to create a class hierarchy, extend a .NET Framework class, and create generic classes and methods. Read and write data by using file input/output and streams, and serialize and deserialize data in different formats. Create and use an entity data model for accessing a database and use LINQ to query and update data. Use the types in the System.Net namespace and WCF Data Services to access and query remote data. Build a graphical user interface by using XAML. Improve the throughput and response time of applications by using tasks and asynchronous operations. Integrate unmanaged libraries and dynamic components into a C# application. Examine the metadata of types by using reflection, create and use custom attributes, generate code at runtime, and manage assembly versions. Encrypt and decrypt data by using symmetric and asymmetric encryption.
Course details Part 2 Module 1, Review of C# Syntax
HBO Minor Software Developer v1.3
14 | 31
oktober 2015
o
This module reviews the core syntax and features of the C# programming language. It also provides an introduction to the Visual Studio 2012 debugger. Module 2, Creating Methods, Handling Exceptions, and Monitoring Applications o This module explains how to create and call methods, catch and handle exceptions. This module also describes the monitoring requirements of largescale applications. Module 3, Developing the Code for a Graphical Application o This module describes how to implement the basic structure and essential elements of a typical desktop application, including using structures and enumerations, collections, and events. Module 4, Creating Classes and Implementing Type-safe Collections o This module explains how to create classes, define and implement interfaces, and create and use generic collections. This module also describes the differences between value types and reference types in C#. Module 5, Creating a Class Hierarchy by Using Inheritance o This module explains how to use inheritance to create a class hierarchy and extend a .NET Framework class. This module also describes how to create generic classes and define extension methods. Module 6, Reading and Writing Local Data o This module explains how to read and write data by using file input/output (I/O) and streams, and how to serialize and deserialize data in different formats. Module 7, Accessing a Database o This module explains how to create and use an entity data model for accessing a database, and how to use LINQ to query and update data. Module 8, Accessing Remote Data o This module explains how to use the types in the System.Net namespace, and WCF Data Services, to query and modify remote data. Module 9, Designing the User Interface for a Graphical Application o This module explains how to build and style a graphical user interface by using XAML. This module also describes how to display data in a user interface by using data binding. Module 10, Improving Application Performance and Responsiveness o This module explains how to improve the throughput and response time of applications by using tasks and asynchronous operations. Module 11, Integrating with Unmanaged Code o This module explains how to integrate unmanaged libraries and dynamic components into a C# application. This module also describes how to control the lifetime of unmanaged resources. Module 12: Creating Reusable Types and Assemblies
HBO Minor Software Developer v1.3
15 | 31
oktober 2015
o
This module explains how to examine the metadata of types by using reflection, create and use custom attributes, generate managed code at runtime, and manage different versions of assemblies. Module 13: Encrypting and Decrypting Data o This module explains how to encrypt and decrypt data by using symmetric and asymmetric encryption.
HBO Minor Software Developer v1.3
16 | 31
oktober 2015
3.5.
PART 3 - HTML5/CSS3/JAVASCRIPT This part provides an introduction to HTML5, CSS3, and JavaScript. It helps students gain basic HTML5/CSS3/JavaScript programming skills. This part focuses on using HTML5/CSS3/JavaScript to implement programming logic, define and use variables, perform looping and branching, develop user interfaces, capture and validate user input, store data, and create well-structured applications.
The lab scenarios in this part are selected to support and demonstrate the structure of various application scenarios. They are intended to focus on the principles and coding components/structures that are used to establish an HTML5 software application. After completing this course, students will be able to: Explain how to use Visual Studio 2012 to create and run a Web application. Describe the new features of HTML5, and create and style HTML5 pages. Add interactivity to an HTML5 page by using JavaScript. Create HTML5 forms by using different input types, and validate user input by using HTML5 attributes and JavaScript code. Send and receive data to and from a remote data source by using XMLHTTPRequest objects and jQuery AJAX operations. Style HTML5 pages by using CSS3. Create well-structured and easily-maintainable JavaScript code. Use common HTML5 APIs in interactive Web applications. Create Web applications that support offline operations. Create HTML5 Web pages that can adapt to different devices and form factors. Add advanced graphics to an HTML5 page by using Canvas elements, and by using and Scalable vector Graphics. Enhance the user experience by adding animations to an HTML5 page. Use Web Sockets to send and receive data between a Web application and a server. Improve the responsiveness of a Web application that performs long-running operations by using Web Worker processes. Course details Part 3 Module 1, Overview of HTML and CSS o This module provides an overview of HTML and CSS, and describes how to use Visual Studio to build a Web application. Module 2, Creating and Styling HTML5 Pages o This module describes the new features of HTML5, and explains how to create and style HTML5 pages. Module 3, Introduction to JavaScript o This module provides an introduction to the JavaScript language, and shows how to use JavaScript to add interactivity to HTML5 pages.Lessons •Overview of JavaScript Syntax Module 4, Creating Forms to Collect Data and Validate User Input o This module describes the new input types available with HTML5, and explains how to create forms to collect and validate user input by using the new HTML5 attributes and JavaScript code.
HBO Minor Software Developer v1.3
17 | 31
oktober 2015
Module 5, Communicating with a Remote Data Source o This module describes how to send and receive data to and from a remote data source by using an XMLHTTPRequest object and by performing jQuery AJAX operations. Module 6, Styling HTML5 by Using CSS3 o This module describes how to style HTML5 pages and elements by using the new features available in CSS3. Module 7, Creating Objects and Methods by Using JavaScript o This module explains how to write well-structured and easily-maintainable JavaScript code, and how to apply object-oriented principles to JavaScript code in a Web application. Module 8, Creating Interactive Pages using HTML5 APIs o This module describes how to use some common HTML5 APIs to add interactive features to a Web application. This module also explains how to debug and profile a Web application. Module 9, Adding Offline Support to Web Applications o This module describes how to add offline support to a Web application, to enable the application to continue functioning in a user's browser even if the browser is disconnected from the network. Module 10, Implementing an Adaptive User Interface o This module describes how to create HTML5 pages that can dynamically detect and adapt to different devices and form factors. Module 11, Creating Advanced Graphics o This module describes how to create advanced graphics for an HTML5 Web application by using a Canvas element, and by using Scalable Vector Graphics. Module 12, Animating the User Interface o This module describes how to enhance the user experience in an HTML5 Web application by adding animations. Module 13, Implementing Real-Time Communications by Using Web Sockets o This module explains how to use Web Sockets to transmit and receive data between an HTML5 Web application and a server. Module 14, Creating a Web Worker Process o This module describes how to use Web Worker Processes to perform longrunning operations asynchronously and improve the responsiveness of an HTML5 Web application.
HBO Minor Software Developer v1.3
18 | 31
oktober 2015
3.6.
PART 4 - ASP.NET MVC APPLICATIONS USING .NET In this part, students will learn to develop advanced ASP.NET MVC applications using .NET Framework 4.5 tools and technologies. The focus will be on coding activities that enhance the performance and scalability of the Web site application. ASP.NET MVC will be introduced and compared with Web Forms so that students know when each should/could be used
After completing this course, students will be able to: Describe the Microsoft Web Technologies stack and select an appropriate technology to use to develop any given application. Design the architecture and implementation of a web application that will meet a set of functional requirements, user interface requirements, and address business models. Create MVC Models and write code that implements business logic within Model methods, properties, and events. Add Controllers to an MVC Application to manage user interaction, update models, and select and return Views. Create Views in an MVC application that display and edit data and interact with Models and Controllers. Run unit tests and debugging tools against a web application in Visual Studio 2012 and configure an application for troubleshooting. Develop a web application that uses the ASP.NET routing engine to present friendly URLs and a logical navigation hierarchy to users. Implement a consistent look and feel, including corporate branding, across an entire MVC web application. Use partial page updates and caching to reduce the network bandwidth used by an application and accelerate responses to user requests. Write JavaScript code that runs on the client-side and utilizes the jQuery script library to optimize the responsiveness of an MVC web application. Implement a complete membership system in an MVC 4 web application. Build an MVC application that resists malicious attacks and persists information about users and preferences. Describe how to write a Windows Azure web service and call it from and MVC application. Describe what a Web API is and why developers might add a Web API to an application. Modify the way browser requests are handled by an MVC application. Describe how to package and deploy an ASP.NET MVC 4 web application from a development computer to a web server for staging or production. Course details Part 3 Module 1, Exploring ASP.NET MVC4 o The goal of this module is to outline to the students the components of the Microsoft Web Technologies stack, which can be used to host a completed web application. Students will also learn about ASP.NET 4.5 and be introduced
HBO Minor Software Developer v1.3
19 | 31
oktober 2015
to the web forms, web pages, and MVC programming models. Finally they will see an overview of ASP.NET MVC 4, including new features and configuration. Module 2, Designing ASP.NET MVC 4 Web Applications o The goal of this module is to introduce students to the typical design process that architects must complete when they plan an MVC 4 application. At this stage in the design process, MVC 4 has been selected as the most appropriate programming model, but the details of the application, such as the overall architecture, Controllers, Views, Models, and routes to create, have not been fixed. How to plan such details is shown during this module. Module 3, Developing ASP.NET MVC 4 Models o The goal of this module is to enable the students to create Models within an MVC application that implement the business logic necessary to satisfy business requirements. The module also describes how to implement a connection to a database, or alternative data store, using the Entity Framework and LINQ. Module 4, Developing ASP.NET MVC 4 Controllers o The goal of this module is to enable students to add Controllers to MVC applications and to implement actions that respond to user input and other events. The students will learn how Controllers relate to Models and how to implement Controller actions that define the View used to display or edit data. This module also covers how to write action filters that run code before or after multiple actions in the Controller. The students will learn about situations when action filters are useful. Module 5, Developing ASP.NET MVC 4 Views o The goal of this module is to describe the role of Views in an MVC web application and enable users to create and code them. The syntax of a Razor View is of critical importance for students to understand because it defines both the layout and the functionality of the data display. HTML Helpers will also be discussed in detail and common Helpers, such as Html.ActionLink() and Html.EditorFor(), will be described. Reusing code by defining Partial Views and Razor Helpers will be discussed as well. Module 6, Testing and Debugging ASP.NET MVC 4 Web Applications o The goal of this module is to enable students to increase the resilience and quality of an application by locating and correcting code errors, bugs, and other unexpected results. MVC applications are well suited to unit testing techniques and these techniques ensure a high quality of code by systematically testing the functionality of each small component. In addition the debugging tools and exception handling available in Visual Studio will be explained. Module 7: Structuring ASP.NET MVC 4 Web Applications o The goal of this module is to enable students to structure a web application in such a way that users can rapidly locate the information they need. Two
HBO Minor Software Developer v1.3
20 | 31
oktober 2015
aspects of the design are emphasized: the URLs presented in the browser address bar should be understandable and can be controlled by adding routes to the ASP.NET Routing Engine, and the navigation controls, such as menus and breadcrumb trails, should present the most relevant links to frequently read pages. Search Engine Optimization is important throughout this module. Module 8: Applying Styles to ASP.NET MVC 4 Web Applications o The goal of this module is to explore how students can impose a consistent look and feel to an MVC application and share other common components, such as headers and footers, between all Views. Besides describing CSS styles and template views, the module will discuss how to migrate a look and feel created by a web designer into an MVC application. Techniques for adapting the display of a site for small screens and mobile devices will also be introduced. Module 9: Building Responsive Pages in ASP.NET MVC 4 Web Applications o The goal of this module is to describe to the students how partial page updates and caching can optimize the responsiveness of a web application. Students will see how to make use of AJAX helpers and partial views to update small portions of a page instead of refreshing the entire page. The module also covers the different caches developers can use to store rendered pages and discusses how to configure caching for maximum performance. Module 10, Using JavaScript and jQuery for Responsive MVC 4 Web Applications o The goal of this module is to teach the students techniques that run code on the browser. This approach can increase the responsiveness of the application because a rendered page can respond to a user action without reloading the entire page from the server. Students will learn about the jQuery script library and how to use it to call web services and update user interface components. Module 11, Controlling Access to ASP.NET MVC 4 Web Applications o The goal of this module to ensure good security in terms of strong authentication and authorization for access. The lessons describe how to enable anonymous users to create their own user account and gain privileged access to content. Module 12, Building a Resilient ASP.NET MVC 4 Web Application o The goal of this module is to enable the students to build applications that are stable and reliable. Such applications are not vulnerable to common hacking techniques such as cross-site scripting and also store state information such as the contents of a shopping cart and user preferences. This state information is preserved when servers or browsers restart, connections are lost, and other connectivity issues occur. Module 13, Using Windows Azure Web Services in ASP.NET MVC 4 Web Applications o The goal of this module is to introduce Windows Azure to the students and explain why a developer would write a Windows Azure service instead of code in a web application. Students will also see how to write such a service and call
HBO Minor Software Developer v1.3
21 | 31
oktober 2015
it from a web application or from other applications, such as a mobile device app. Module 14, Implementing Web APIs in ASP.NET MVC 4 Web Applications o The goal of the module is to introduce the concept of a Web API to students and to describe how to make an application’s core functionality more broadly available for integration into other web and mobile applications. Students will learn about the new Web API feature of MVC 4 and see how to build a RESTful Web API and call it from other applications. Module 15, Handling Requests in ASP.NET MVC 4 Web Applications o The goal of this module is to describe how to write components that intercept requests from browsers before they are received by MVC Controllers. These components include HTTP Modules, HTTP Handlers, and the Web Sockets protocol. The module describes scenarios in which developers use such components and shows how to add them to an MVC application. Module 16, Deploying ASP.NET MVC 4 Web Applications o The goal for this module is to enable students to deploy a completed MVC application to a web server or Windows Azure. The module begins by describing testing, staging, and production deployments and the web server environments required for each. It also describes the advantages and disadvantages of using Windows Azure to host the application. Students also see all the available deployment options in Visual Studio.
HBO Minor Software Developer v1.3
22 | 31
oktober 2015
3.7.
PART 5 – DEVELOPING WINDOWS AZURE AND WEB SERVICES In this part, students will learn how to design and develop services that access local and remote data from various data sources. Students will also learn how to develop and deploy services to hybrid environments, including on-premises servers and Windows Azure
After completing this course, students will be able to: Query and manipulate data with Entity Framework Use ASP.NET Web API to create HTTP-based services and consume them from .NET and non-.NET clients Extend ASP.NET Web API services using message handlers, model binders, action filters, and media type formatters Create SOAP-based services with the Windows Communication Foundation (WCF) and consume them from .NET clients Apply design principles to service contracts and extend WCF services using custom runtime components and behaviors Secure WCF services using transport and message security Use Windows Azure Service Bus for relayed messaging and brokered messaging using queues and topics Host services on on-premises servers, and on various Windows Azure environments, such as Web Roles, Worker Roles, and Web Sites Deploy services to both on-premises servers and Windows Azure Store and access data in Windows Azure Storage, and configure storage access rights Monitor and log services, both on-premises and in Windows Azure Implement federated authentication by using ACS with ASP.NET Web API services Create scalable, load-balanced services.
Module 1, Overview of service and cloud technologies o This module provides an overview of service and cloud technologies using the Microsoft .NET Framework and the Windows Azure cloud. Module 2: Querying and Manipulating Data Using Entity Framework o This module Describes the Entity Framework data model, and how to create, read, update, and delete data. Module 3: Creating and Consuming ASP.NET Web API Services o This module describes HTTP-based services that are developed, hosted, and consumed by using ASP.NET Web API. Module 4, Extending and Securing ASP.NET Web API Services o This module describes in detail the ASP.NET Web API architecture and how you can extend and secure ASP.NET Web API services. Module 5: Creating WCF Services o This module introduces Windows Communication Foundation (WCF) and describes how to create, host, and consume a WCF service. Module 6: Hosting Services o This module describes how to host web services both on-premises and in Windows Azure. It explains various components of Windows Azure Cloud Services: Web Role, Worker Role, and Windows Azure Web Sites. Module 7: Windows Azure Service Bus
HBO Minor Software Developer v1.3
23 | 31
oktober 2015
o
This module describes web-scale messaging patterns, and the infrastructures provided by Windows Azure Service Bus. Module 8: Deploying Services o This module describes different techniques for deploying web applications. Module 9: Windows Azure Storage o This module Describes Windows Azure Storage, the services it provides, and the best way to use these services. Module 10: Monitoring and Diagnostics o This module describes how to perform monitoring and diagnostics in Windows Azure services. Module 11: Identity Management and Access Control o This module describes the basic principles of modern identity handling and demonstrates how to use infrastructures such as Windows Azure Access Control Service (ACS) to implement authentication and authorization with claims-based identity in Windows Communication Foundation (WCF). Module 12: Scaling Services o This module describes the ways in which you can ensure services can handle increasing workloads and user demand. Module 13: Appendix A: Designing and Extending WCF Services o This module covers designing Windows Communication Foundation (WCF) service contracts, creating services that support distributed transactions, and extending the WCF pipeline with custom runtime components and custom behaviors. Module 14: Appendix B: Implementing Security in WCF Services o This module deals with the various considerations you have to take into account when designing a secure web service, such as encryption, input validation, authentication, and authorization, and the techniques to use while applying these considerations to services developed with WCF.
HBO Minor Software Developer v1.3
24 | 31
oktober 2015
3.8.
PART 6 – JAVASCRIPT, TYPESCRIPT, NODE.JS, ANGULAR.JS This part of the minor introduces the participant to JavaScrypt, TypeScript and the JavaScript libraries Node.JS and Angular.JS. The content is loosly based on the well-respected books “Programming JavaScript Applications” by Eric Elliott and the book “Eloquent Javascript” by Marijn Haverbeke (http://eloquentjavascript.net/).
The modules below do list subjects which will be addressed during this part of the minor but not necessarily in this order or with equal emphasis.
3.9.
Module 1 o Values, Types, and Operators o Program Structure Module 2 o Functions o Data Structures: Objects and Arrays o Higher-order Functions o The Secret Life of Objects Module 3 o Bugs and Error Handling o Regular Expressions o Modules Module 4 o JavaScript and the Browser o The Document Object Model o Handling Events Module 5 o Drawing on Canvas o HTTP o Forms and Form Fields Module 6, Node o Node.js Module 7, Angular o Angular.js
PART 7 – MOBILE DEVELOPMENT WITH ANDROID This parts takes the participant to the world of mobile developments on the most widely used Android platform. This platform uses Java as its base language so this should be familiar to the participant so we will focus more on the specifics of the Android platform and the mobile characteristics.
Surely, a programming language is just the language, in reality people will use frameworks to develop applications in an efficient way. Several frameworks will be included in this part. The modules do list subjects which will be addressed during this part of the minor but not necessarily in this order or with equal emphasis.
HBO Minor Software Developer v1.3
25 | 31
oktober 2015
First steps o Building an app o Adding the action bar o Supporting different devices o Managing the activity lifecycle o Building a dynamic UI with Fragments o Saving Data o Interacting with other apps o Working with System permissions Apps with content sharing o Sharing simple data o Sharing files o Sharing files with NFC Apps with Multi Media o Managing Audio playback o Capturing Photos o Printing content Apps with graphics & Animation o Displaying Bitmaps efficiently o Displaying graphics with OpenGL ES o Animation views using scenes and transitions o Adding animations Apps with connectivity & the cloud o Connecting Devices Wirelesly o Performing network operations o Transferring data without draining the battery o Syncing to the cloud o Resolving cloud save conflicts o Transferring data using sync adapters o Transmitting network data volley Apps with Location & maps o Making your app location aware o Adding maps Apps with user info and sign-in o Accessing contacts data o Adding sign-in Apps for wearables o Adding wearable features to notifications o Creating wearable apps o Creating custom UIs o Sending and syncing data o Creating watch faces
HBO Minor Software Developer v1.3
26 | 31
oktober 2015
o Detecting location Apps for TV o Building TV Apps o Building TV Playback Apps o Helping users find content on TV o Building TV Games o Building TV Channels o TV Apps checklist Apps for Auto o Getting started with Auto o Playing Audio for Auto o Messaging for Auto Apps for work o Ensuring compatibility with managed profiles o Implementing App restriction o Building a work policy controller Best practices for interaction and engagement o Designing effective navigation o Implementing effective navigation o Notifying the user o Supporting swipe to refresh o Adding search functionality o Making your app content searchable by Google o Handling app links Best practices for user interfaces o Designing multiple screens o Creating custom views o Creating backward compatible UIs o Implementing accessibility o Managing the system UI o Creating apps with material design Best practices for user input o Using touch gestures o Handling keyboard input o Supporting game controllers Best practices for background jobs o Running in a background service o Loading data in the background o Managing device awake state Best practices for performance o Managing your app’s memory o Performance tips
HBO Minor Software Developer v1.3
27 | 31
oktober 2015
o Improving layout performance o Optimizing battery life o Sending operations to multiple threads o Keeping your app responsive o JNI tips o SMP primer for Android Best practices for Security & Privacy o Security tips o Security with HTTPS and SSL o Updating your security provider to protect against SSL exploits o Checking device compatibility with SafetyNet o Enhancing Security with device management policies Best practices for testing o Testing your activity o Automating UI tests o Building effective unit tests o Testing display performance
HBO Minor Software Developer v1.3
28 | 31
oktober 2015
3.10.
AGILE PROJECTMETHODIEKEN In het kader van de Agile projectmethode is gekozen voor scrum, maar dit kan afhankelijk van de marktvraag wisselen naar een andere methodiek. Een onafhankelijke certificering bij de Scrum Alliance is onderdeel van dit component.
De projectmethodiek wordt gedurende de minor aangeleerd en is verweven door alle praktijk cases en natuurlijk de afsluitende praktijkopdracht Scrum Scrum is een raamwerk voor Agile management (“flexibel beheren”) van softwareontwikkeling. Er wordt binnen Scrum gewerkt in multidisciplinaire teams die in korte sprints, werkende software opleveren. Zelfsturing, resultaat- en klantgerichtheid, geven van feedback en het nemen van verantwoordelijkheid. Specificeren, prioriteren, ontwerpen en plannen volgens Scrum zijn onderdelen van de Scrum module. De deelnemer De deelnemer aan deze module kan hierna deel uitmaken van een project team dat werkt volgens de Scrum methodiek, bijvoorbeeld in de rol van projectleider, productvertegenwoordiger of ontwikkelaar. Aan het einde van dit component zal de deelnemer zich de volgende competenties eigen hebben gemaakt: Samenwerken in een team volgens Scrum Zelfsturing, resultaat- en klantgerichtheid, geven van feedback en het nemen van verantwoordelijkheid Specificeren, prioriteren, ontwerpen en plannen volgens Scrum De Scrum meetings Maken van schattingen Werken met time-boxes Vullen van de product backlog Burndown maken Daily Scrum meeting Sprint Review Retrospective
HBO Minor Software Developer v1.3
29 | 31
oktober 2015
3.11.
PRAKTIJKCASE De praktijkcase wordt uitgevoerd in samenspraak met en zo mogelijk bij een bedrijf. Deze zal dus per persoon anders zijn. De voorwaarde is wel dat een aantal technieken in deze praktijkcase toegepast gaan worden. De ontwikkeling vindt plaats in een aantal cycli, elk afgesloten met een presentatie en beoordeling. De resultaten van de praktijkcase moeten gedocumenteerd worden en moet gezamenlijk met het verslag over de minor ingeleverd worden.
Uit de documentatie moet duidelijk de uitgangspositie blijken, de toegepaste theorie en het bewijs van het kunnen toepassen van de nieuwe competenties.
HBO Minor Software Developer v1.3
30 | 31
oktober 2015
3.12.
APPENDIX 1 – BENODIGDE VOORKENNIS Basiskennis IT Op het gebied van informatie technologie moet je de volgende begrippen kunnen uitleggen en praktijkvoorbeelden van kunnen geven:
Inzicht in het ICT-werkveld Computerapparatuur, Operating systemen, Software Toepassingssoftware Software-architecturen Telecommunicatie en netwerken Internet, intranet Informatieveiligheid Ontwikkeling en beheer Wireless Voice over IP (VoIP)
HBO Minor Software Developer v1.3
31 | 31
oktober 2015