Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Als je aanpassingen wil voorstellen specifiek voor de graduaatsopleiding, dan wordt aangeraden een fork van deze repository te maken op Github. De verschillen tussen de cursus voor de graduaatsopleiding en de bachelor hebben bijna uitsluitend betrekking tot de oefeningen. Als je aanpassingen wil doen met betrekking tot de inhoud, zie dan de overeenkomstige pagina in de cursus van de bachelor.
Voor de graduaatsopleiding hanteren we een vaste structuur voor de oefeningen.
Elke oefening begint met een unieke titel. Deze gebruik je voor de organisatie van je bestanden.
Eerst krijg je een omschrijving in tekst van wat de algemene bedoeling is van je programma. Deze bevat niet noodzakelijk elk detail, maar geeft je een big picture. Bijvoorbeeld:
In deze oefening maak je een echo. Dit is een programma dat tekst inleest vanaf het toetsenbord en deze tekst dan op het scherm toont.
Je hoeft niet altijd alle code zelf te schrijven. Code die je nog niet verondersteld wordt zelf te kunnen schrijven, of code die gewoon veel tijd in beslag neemt, krijg je. Bij de stukken code staat telkens de naam van het bestand waarin ze thuishoort. Commentaar bij de te wijzigen stukken code geeft aan welke aanpassingen je moet doen. Bijvoorbeeld:
Ten slotte worden één of meerdere voorbeelden getoond van hoe je programma zich gedraagt. In deze voorbeelden stellen regels die niet beginnen met >
iets voor dat op het scherm verschijnt. Regels die wel beginnen met >
stellen iets voor dat door de gebruiker zelf wordt ingetypt. Bijvoorbeeld, voor het programma dat we hier als leidraad gebruiken:
We gebruiken de speciale syntax <EOF>
om aan te geven dat er een end-of-file signaal wordt gestuurd.
Deze cursus is een fork van . We zijn Tim Dams en al zijn co-auteurs dank verschuldigd voor de stevige basis. Je mag veronderstellen dat alles Tims werk is, wij hebben vooral de vorm van de oefeningen aangepast voor een meer beroepsgerichte opleiding.
Er zijn quasi oneindig veel boeken over C# geschreven, althans zo lijkt het. Hier een selectie van boeken met een korte bespreking waarom ik denk dat ze voor jou een meerwaarde kunnen zijn bij het leren programmeren in C#:
van Mike McGrath: een uiterst compact, maar zeer helder en kleurrijk boekje dat ik ten stelligste aanbeveel als je wat last hebt met de materie van de eerste weken.
van Joyce Farrell: Niet het meest sexy boek, maar wel het meest volledige qua overlap met de leerstof van deze cursus. Aanrader voor zij die wat meer in detail willen gaan en op zoek zijn naar oneindig veel potentiele examenvragen ;)
van Andrew Stellman & Jennifer Greene: laat de ietwat bizarre, bijna kleuterachtige look and feel van de head first boeken je niet afschrikken. Ieder boek in deze serie is goud waar. De head first boeken zijn d� ideale manier als je zoekt naar een alternatieve manier om complexe materie te begrijpen. Bekijk zeker ook de Head First Design Patterns en Head First Sql boeken in de reeks!
van Bart De Smet: in mijn opinie dé referentie om C# tot op het bot te begrijpen. Geschreven door een Belg die bij Microsoft in Redmond aan C# werkt.
van Steve McConnell: een referentiewerk over 'programmeren in het algemeen'. Het boek is al jaar en dag het te lezen boek als je je als programmeur wilt verdiepen in wat nu 'correct programmeren' behelst. Als je op je CV kunt zetten dat je dit boek door en door kent dan zal elk IT-bedrijf je stante pede aannemen ;)
Leren programmeren door enkele de opdrachten in deze cursus te maken zal je niet ver (genoeg) brengen. Onze dikke vriend het Internet heeft echter tal van schitterende bronnen. Hier een overzicht.
Ideale manier om programmeren meer in de vingers te krijgen op een speelse manier:
Pittige vragen van de jaarlijkse Vlaamse Programmeerwedstrijd:
Ja hoor, ze bestaan. Meer en meer professionele én beginnende programmeurs streamen terwijl te programmeren. Dit is een ideale manier om te zien hoe andere mensen problemen aanpakken. De meeste programming streamers kan je terugvinden op youtube, maar ook op Twitch zijn er steeds meer. Enkele aanraders (bekijk zeker de filmpjes uit de archieven eens):
Voor de graduaatsopleiding volgen we een reeks afspraken (ook "conventies" genoemd) die bepalen welke code wel en niet aanvaardbaar is. Wanneer een groep programmeurs dezelfde afspraken volgt, is het voor iedereen makkelijker code uit te wisselen.
Als je deze pagina voor de eerste keer ziet, zullen de meeste van deze afspraken je nog niet veel zeggen. Dat is logisch. We zullen je tijdens de les wijzen op de afspraken die horen bij een nieuw concept, maar hier heb je een handig overzicht:
Onderstaande richtlijnen zijn gebaseerd op . We beperken ons tot de zaken die we tijdens de cursus zien.
We kiezen namen in het Engels. Enkel tekst die aan de gebruiker getoond wordt, schrijven we in het Nederlands.
Merk op dat het verschil tussen PascalCase en camelCase samenhangt met de default zichtbaarheid. Wanneer afgeweken wordt van de default zichtbaarheid, kan de conventie voor de notatie ook veranderen. Wij zullen ons in deze cursussen voor de eenvoud strikt aan de default zichtbaarheid houden.
"meervoud toegestaan" betekent dat we iets noteren als een meervoud als de data ook meerdere objecten voorstelt. Bijvoorbeeld een lokale variabele met naam studenten
en datatype Student[]
, maar een lokale variabele student
met datatype Student
.
We beginnen niet elke identifier voor een private
member met een underscore. Sommige programmeurs doen dit wel, maar wij volgen één richtlijn.
Namen van klassen voor custom exceptions eindigen op Exception
.
Vermijd afkortingen in namen.
Uitzondering: algemeen aanvaarde afkortingen zoals ID
, HTML
,...
Afkortingen van één of twee letters
Andere talen hebben soms andere conventies!
using
directievenDeze komen alleen vooraan in het bestand voor en worden steeds gevolgd door de declaratie van de namespace.
In het eerste semester groeperen we al onze code in de namespace Programmeren
, in het tweede semester in de namespace ObjectgerichtProgrammeren
.
Elk zelf gedefinieerd datatype (klasse, struct, interface, enum type, later ook delegate) plaatsen we in een afzonderlijk bestand met dezelfde naam als dat datatype.
In de eerste twee lessen mag dit met behulp van +
.
Gebruik stringinterpolatie om kleine aantallen strings aan elkaar te hangen of data weer te geven in stringformaat.
Gebruik een StringBuilder
om strings aan elkaar te hangen in een lus.
Gebruik steeds een expliciet, statisch type.
Dat wil zeggen: geen variabelen declareren als var
. Dat doe je pas later.
Dat wil zeggen: geen variabelen declareren als dynamic
. Dat doe je pas later.
Gebruik de kortste syntax voor arrays van literals, dus string[] vowels1 = { "a", "e", "i", "o", "u" };
en niet string[] vowels2 = new string[] { "a", "e", "i", "o", "u" };
.
static
membersPlaats voor een static
member altijd uitdrukkelijk de naam van de klasse waarin dat static
member gedefinieerd is.
Klassen die uitsluitend static
members bevatten ("library classes") maken we ook static
met de syntax static class
.
Klassen die niet bedoeld zijn om van over te erven maken we final
.
Als iets een constante is voor een bepaald programme, gebruiken we ook de access modifier const
.
We gebruiken alleen zaken die in de les aan bod zijn gekomen. We zien geen lambda's, delegates, LINQ,... dus je gebruikt deze ook niet, zelfs als je ze al ergens anders gezien hebt.
Volgende document bevat een overzicht van de basis C# syntax zaken van het eerste en (deel van het) tweede semester:
: Verplichte app! Simple as that!
Net zoals SoloLearn maar dan anders.
(aanrader!) Origineel vooral bedoeld om spreektalen te leren, maar bevat ook tal van andere zaken. Hoofdzakelijk nuttig om nieuwe aspecten te 'drillen'. Enkel dus nuttig indien je de basismaterie eerst hebt verwerkt. Bekijk zeker ook de tal van andere cursussen die er staan. Let er op dat je bij de filter Engels instelt, er zijn nog niet veel (goede) Nederlandstalige C# cursussen naar mijn weten. Opgelet: je kan je enkel via de browser inschrijven op niet-spreektaal-cursussen. De app toont enkel spreektaalcursussen.
Speels en vrij beperkt in gratis versie, maar ideale aanvulling op SoloLearn.
Een steam spel om te leren programmeren. Weliswaar Javascript (nuttig voor Web Programming) maar het concept is te cool om niet hier te vermelden en zoals je zal ontdekken: leren programmeren kan je in eender welke taal, en het zal ook je andere programmeer-ervaring verbeteren. Give it a go!
(specifiek voor C#!)
(behandelt leerstof van volledig eerste jaar en meer)
Pittige programmeeroefeningen die jaarlijks in december verschijnen.
Handig vorm gegeven gratis ebooks met tal van onderwerpen waaronder ook C# en het .NET Framework.
: De uitgebreidere, Engelstalige variant van deze cursus zeg maar.
: Aanrader.
: Zeer aan te raden indien je een bepaald concept uit de les niet begrijpt.
: Nederlandstalige cursus met veel toffe oefeningen waarvan je sommige zelfs in deze cursus zal terugvinden.
: Microsoft heeft een virtual academy cursus "C# fundamentals" uitgebracht. Ik kan deze cursus zeer erg aanbevelen.
: Zeer vermakelijk, vlot geschreven C# boek(je)
: "This site tries to gather open-source remakes of great old games in one place." Je vindt er ook tal van C# projecten terug zoals .Klik bovenaan op "languages" en filter maar eens op C#.
: nog steeds relevant.
: deze programmeur heeft een volledige RPG gemaakt en het hele proces gestreamd.
We baseren ons op . Je hoeft deze conventies niet te lezen. Hieronder volgt een vereenvoudigd overzicht van de afspraken die aan bod kunnen komen in de cursus en enkele eigen conventies:
Soort data
Notatie
Enkelvoud?
Vorm
Default zichtbaarheid
Klasse
PascalCase
altijd
[A-z]+[0-9]
public
Methode
PascalCase
meervoud toegestaan
[A-z]+[0-9]
public
Argument
camelCase
meervoud toegestaan
[A-z]+[0-9]
niet van toepassing
Lokale variabele
camelCase
meervoud toegestaan
[A-z]+[0-9]
niet van toepassing
Constante
PascalCase
altijd
[A-z]+[0-9]
public
Veld
camelCase
meervoud toegestaan
[A-z]+[0-9]
private
Property
PascalCase
meervoud toegestaan
[A-z]+[0-9]
public
Enum type
PascalCase
altijd
[A-z]+
public
Waarde enum
PascalCase
altijd
[A-z]+
niet van toepassing
In alle lessen (hoorcollege en practica) hebben we 2 zaken nodig:
Deze cursus
Een laptop met daarop Visual Studio Code editie geïnstalleerd.