Programmeren in C++ (deel 1)



Vergelijkbare documenten
Modulewijzer Tirdat01

MODULEBESCHRIJVING Databases DBS1

Modulewijzer tirprog02/infprg01, programmeren in Java 2

Programmeren met Java

Programmeren in Java 3

Programmeren. Cursus Python

Programmeren in Java 2

Hoofdstuk 1: Inleiding. Hoofdstuk 2: Klassen en objecten Datahiding: afschermen van implementatiedetails. Naar de buitenwereld toe enkel interfaces.

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.

Kleine cursus PHP5. Auteur: Raymond Moesker

HBO5 Informatica Netwerkbeheer (90 studiepunten) In deze module leer je projecten op te stellen en te programmeren in de VB.NET-omgeving.

Datastructuren en algoritmen

Vakgroep CW KAHO Sint-Lieven

Programmeren in C ++ les 4

Zelftest Inleiding Programmeren

Datastructuren Werkcollege Intro

2 Specificatie In deze tabel staat voor welk crebotraject de leereenheid is gemaakt Crebotraject code: 95311

Introductie in C++ Jan van Rijn. September 2013

Microcontrollers Introductie INLMIC Jesse op den Brouw INLMIC/

HBO5 Informatica Netwerkbeheer (90 studiepunten)

Zelftest Programmeren in Java

Studiewijzer BACHELOR KUNSTMATIGE INTELLIGENTIE EXTRA KEUZENVAK VAK: C++ PROGRAMMEERMETHODEN

C++ C++ als een verbetering van C. Abstracte datatypen met classes. Constructoren en destructoren. Subklassen. binding van functies

Practicumhandleiding. (versie 2010)

Dynamiek met VO-Script

Tentamen Objectgeorienteerd Programmeren TI februari Afdeling ST Faculteit EWI TU Delft

Ontwerp van Informatiesystemen

Datastructuren: stapels, rijen en binaire bomen

Modelleren en Programmeren

Examen Software Ontwikkeling I 2e Bachelor Informatica Academiejaar Januari, **BELANGRIJK** : Schrijf je naam onderaan dit blad

Java. Basissyllabus. Egon Pas

HOGESCHOOL VAN AMSTERDAM Informatica Opleiding. CPP 1 van 10

Elementary Data Structures 3

IMP Uitwerking week 13

Modeleren. Modelleren. Together UML. Waarvan maken we een model? overzicht les 14 t/m 18. ControlCenter 6.2

HOGESCHOOL ROTTERDAM / CMI

Informatica. Deel II: les 1. Java versus Python. Jan Lemeire Informatica deel II februari mei Parallel Systems: Introduction

Programmeren in C++ Efficiënte zoekfunctie in een boek

Informatica. Objectgeörienteerd leren programmeren. Van de theorie met BlueJ tot een spelletje met Greenfoot... Bert Van den Abbeele

Studiewijzer. Bachelor Informatica. Inleiding Programmeren Studiejaar en semester: jaar 1, semester 1 (blok 1)

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren

int getaantalpassagiers{): void setaantalpassagiers(int aantalpassagiers);

Academie voor ICT en Media 2013/2014

HBO5 Informatica Netwerkbeheer (90 studiepunten) Het schematiseren van probleemstellingen. met zelfgedefinieerde klassen werken.

INLEIDING... 1 AFSPRAKEN... 2 INHOUDSOPGAVE...

Python (gem=1,86) Java (gem=1,57) Enquete cursus informatica 1e bachelors oefeningen beter aansluiten bij project?

tot oplevering (thuis e maken met ondersteuning via forum) Cursus Moodle, boek, internet

Tentamen Object Georiënteerd Programmeren TI januari 2013, Afdeling SCT, Faculteit EWI, TU Delft

Software-Ontwikkeling I Academiejaar

Examen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar juni, 2010

De sheets zijn gebaseerd op met name hoofdstuk. D. Bell en M. Parr, Java voor studenten, Prentice Hall,

public Paneel() { knop = new JButton( Klik ); knop.addactionlistener( new KnopHandler() ); tekstvak = new JTextField(10); add(knop); add(tekstvak);

Tentamen Objectgeorienteerd Programmeren IN1205 Voorbeeld

Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2.

Modulewijzer tirprog03, programmeren in Java 3

Datastructuren: stapels, rijen en binaire bomen

Examen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar juni 2011

Onderwijseenheid INLMIC Inleiding microcontrollers

APPLICATIEBOUW 1E COLLEGE: INTRODUCTIE. Onderdeel van SmartProducts

Modelleren en Programmeren

Modelleren en Programmeren

Producten en prijzen 2012

Zelftest Informatica-terminologie

Programmeren in Java 1

Programmeermethoden. Recursie. week 11: november kosterswa/pm/

Een gelinkte lijst in C#

Vraag 1: HashTable [op 2 punten van de 20] Gegeven de header file HashTable.h van een hashtabel die pointers naar strings bijhoudt (in bijlage).

SYNTRA-WEST. Initiatiecursus JAVA. Deel

Software Ontwikkeling

de vereiste integriteit in acht nemen.

Vergelijking Oracle certificering voor Java en het CPP Gecertificeerd Javaprogrammeur van de Open Universiteit

Marketing met Interactieve Media

Tentamen Object Georiënteerd Programmeren TI oktober 2014, Afdeling SCT, Faculteit EWI, TU Delft

Programmeren in Java 3

Informatica. Deel II: les 1. Java versus Python. Jan Lemeire Informatica deel II februari mei Parallel Systems: Introduction

FACULTEIT DER LETTEREN RIJKSUNIVERSITEIT GRONINGEN. STUDIEHANDLEIDING Inleiding Programmeren II ( )

Voorbereiding onderwijsvisitatie: Bachelor Opleidingsonderdelen J. Broeckhove

APPLICATIEBOUW 1E COLLEGE: INTRODUCTIE. Onderdeel van SmartProducts

Scala. Korte introductie. Sylvia Stuurman

Inleiding programmeren

Objectgeorïenteerd werken is gebaseerd op de objecten die door het systeem gemanipuleerd worden.

9 Meer over datatypen

1e college Introductie Applicatiebouw. Applicatiebouw{ } Onderdeel van SmartProducts

Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, uur

Tentamen Inleiding Programmeren (IN1608WI), duur van de toets 2 uur Technische Universiteit Delft, Faculteit EWI, Afdeling 2.

Programmeren in Java les 3


Inleiding C++ Coding Conventions

Visual Basic.NET. Visual Basic.NET. M. den Besten 0.3 VB. NET

Beginselen van programmeren Practicum 1 (Doolhof) : Oplossing

Hoorcollege 1 datavisualisatie

LEREN PROGRAMMEREN IN C#.NET - INTRODUCTIE ADO.NET

Introductie tot de cursus

Studiewijzer Digitale Systeemengineering , versie 1.7, , J.E.J. op den Brouw

Aanvullende toets Gameprogrammeren (INFOB1GP) Woensdag 24 december 2014, uur

Inhoud. 1 De Microcontroller 1. 2 De taal C Declaraties Functies In- en uitvoer Voorwaardelijke opdrachten 41

Objectgeoriënteerd programmeren in Java 1

Inleiding Programmeren 2

Studiewijzer Keuzedeel Verdiepingsoftware (AO)

Stacks and queues. Introductie 45. Leerkern 45. Terugkoppeling 49. Uitwerking van de opgaven 49

Transcriptie:

FHT&L MODULE BESCHRIJVING Programmeren in C++ (deel 1) PRO4 Samenstelling: Cees van Tilborg, Thijs Dorssers Datum: september 2011 Versie: 1h

Titel: Programmeren in C++ Identificatie Progresscode: PRO4 Studiefase: Semester 4 Omvang: 140 SBU/5 ECTS-punten Lestijd: 7 lesweken Looptijd: 9 weken Toelichting en inhoudelijke beschrijving In de propedeuse-fase heb je een behoorlijke basiskennis informatica opgedaan. In het bijzonder heb je de eerste beginselen van het programmeren geleerd en in praktijk leren brengen in de OO-talen Java (module PRG1). Conceptueel lijkt C++ veel op Java de toepassingsgebieden zijn anders. C++ wordt o.a. gebruikt bij het implementeren van systeemsoftware, denk daarbij aan drivers, embedded systemen en applicatiesoftware. Ook het visueel programmeren in Visual C++ toont grote overeenkomsten met het visueel programmeren in Java. In de praktijk wordt zeer veel gebruik gemaakt van de OO-taal C++. We richten ons in deze module op de volgende hoofdzaken: introductie in de programmeertaal C++; gebruik van de programmeertaal C+ +; Introductie in het gestructureerd en objectgeoriënteerd programmeren; gebruik van ontwikkelomgeving; gebruik van libraries waaronder QT. Eindtermen Na het bestuderen van deze module: - kun je modulaire C++ programma s (console applicaties) te ontwikkelen met Visual C++ - kun je de rol van pre-processor, compiler en linker uit leggen; - kun je C++ functies met parameters (call by reference/value mechanisme, return value) toe passen; - kun je voor een eenvoudig algorithme (herhaallus) de initialisatie, het stopcriterium de C++-code ontwerpen en de correctheid ervan beredeneren; - kun je control flow elementen zoals switch(), if(), while(), do-while(), for() toe passen; - kun je met pointers en references werken - kun je variabelen, structures, typedefs, (meerdimensionale) arrays toe passen - kun je klassen, constructoren, destructoren, (multiple) inheritance, polymorphisme toe passen - kun je de implementatie van strings in C++ te begrijpen en toe passen - heb je voldoende kennis van de taal C++ om je snel in een specifieke bedrijfsgebruik van de taal C++ in te werken; - kun je de standaard programmeerconcepten toepassen van de taal C++; - weet je wat object georiënteerd programmeren inhoudt; - kun je een eenvoudig probleem op OOP wijze implementeren in C++; - kun je een specificatie in UML vertalen naar een C++ applicatie; - kun je een template-class maken; - kun je dynamische datastructuren als lijsten, queue's, stacks, bomen, etc implementeren en toepassen in specifike situaties en weet je daarbij gebruik te maken van recursie; - kun je een eevoudig dialog-based applicatie in Qt-C++ implementeren - kun je de elementaire besturingselementen van Qt-C++ en de bijbehorende Qt-klassen toepassen; - begrijp je de document/view archtectuur van Qt en het Qt-event-mechanisme; - kun je threads toepassen in Qt-C++

Competenties Verwijzend naar het boek Beroepsprofiel en Opleidingsprofiel HBO-I (ISBN 90-74793-17-7) draagt deze module bij aan de volgende kwalificaties voor het Hoger Onderwijs: de specifieke kwalificaties 5 en 11. Gevolgde modules Voortgebouwd wordt op het module PRO3 (programmeren in java). Gelijklopende modules Parallel aan deze module loopt het project Distributed Applications in C# (PRJ41). Aansluitende modules CSA2, Operating Systemen Leermiddelen De modulebeschrijving, de practicumopdrachten, de in de les gepresenteerde sheets en eventueel ander materiaal wordt via de Fontys ELO N@tschool beschikbaar gesteld: http://elo.fontys.nl Aanbevolen studieboek/naslagwerk (aanschaf facultatief): C++, Zesde herziene editie, Leendert Ammeraal, Academic Service ISBN xxxxxxxxxxx [BE1] Thinking in C++, 2nd ed. Volume 1, Bruce Eckel (=free E-book) [BE2] Thinking in C++, 2nd ed. Volume 2, Bruce Eckel (=free E-book) Free C/C++ books: http://www.freetechbooks.com/c-c-f3.html Onderwijsvorm Jaar Semesterweek 1 2 3 4 5 6 7 8&9 Totaal College 3 3 3 3 3 3 3 21 Practikum 6 6 6 6 6 6 6 42 Zelfstudie 2 2 2 2 2 2 2 14 Prakticumafronding 5 5 5 5 5 5 5 7 42 Toetsvoorbereiding 19 19 Toets 2 2 Total 16 16 16 16 16 16 16 28 140 De eerste 4 weken zijn vooral gericht op de C++ concepten, in week 5 t/m 7 komt Qt aan bod. Veel aandacht zal besteed worden aan het toepassen hiervan o.a. in de vorm van individuele opdrachten. Tijdens college-uren zal dan worden ingegaan op de hoofdlijnen, vragen over de theorie, bespreking opdrachten. Gedurende de practicumuren werk je deels onder begeleiding verder aan de opdrachten. Practicum opdrachten worden individueel gemaakt, tenzij anders aangegeven. Aanwezigheid tijdens practicum is verplicht en wordt bijgehouden, in geval van ziekte of iets dergelijks afmelden bij begeleidend docent. Opgaven worden via N@tschool ingeleverd. Opdrachten dienen volgens het opgegeven schema gemaakt te worden. De docent zal regelmatig de stand van zaken controleren en bij goed resultaat goedkeuren. Om dit practicum te halen moeten alle opgaven gemaakt en goedgekeurd zijn. 3/5

Weekplanning Week Theorie Individuele opdrachten 1 Inleiding, variabelen, declaraties, operatoren en expressies (1#1) Flow of control, rol van variabelen (1#2) Functies, scope van variabelen (1#3) Seperate modules (1#3) Pointers, call by value, call by reference (1#4) Pointers, typeconversies, casting (1#5) 1#1:1-5 1#2:1,2,3,5 1#3:2 1#4:2 1#5:1,3,5 2 Structures, fields, unions (1#6) Typedef, macro s (1#7) Klassen, scope operator, private, public, constructor, destructor (1#8) Default functie parameters, functie overloading, references, copy constructor, dynamisch geheugen, member initialisatie lijst (1#9) Conversies, explicit, mutable, static, zelf refenties, this pointer (1#10) 3 Friends (1#11:1-6) Implementatie gelinkte lijst (2#3:1-10) Uitleg tekstverwerkeropdracht (2#4:1-8) Pointers naar data - en functie members, Inheritance (1#11: 7- eind) Multiple inheritance, Public, protected en private inheritance, polymorphisme, (pure) virtuele functies, abstracte klassen (1#12+2#3) 4 Operator overloading (1#13+2#1) Functie templates en Klassentemplates Sequence containers en STL-iteratoren (2#2) Exception-afhandeling File I/O, binair of ascii met streams (2#5) Class persistentie, met streams, serialiseren (2#6) 1#6:1,2, een uit 3-6, 8 1#9:1 Optioneel 1#11:1 2#4:1-3 1#13:1-3 2#2:1-2 5 Qt Qt tutorial part 1 5, 2#10:1 6 Qt, Ontwerpbeslissingen bij container-classen 2#11:1 7 Qt Toets Beoordeling en afronding Voor de afronding van deze module bestaan een aantal verplichtingen voor de deelnemer: - op tijd ingeleverde prakticumopdrachten; - met voldoende resultaat afgeronde individuele mondelinge nabespreking van de practicumopdrachten met de docent, dit levert een practikumcijfer op. - toets maken. Het eindcijfer wordt alleen toegekend als het practicum met een voldoende (>=5.5) is afgesloten en de toets met cijfer >=3.5. Het eindcijfer wordt berekend op basis van de formule: 0.6 * toets + 0.4 * practicum. 4/5

Randvoorwaarden Voor de hoorcolleges is een ruimte met beamer nodig. Voor het practicum een lokaal met voor iedere deelnemende student een pc, met daarop geïnstalleerd Netbeans met C++/Qt-ontwikkelsoftware. De 6 uren practicum zijn verdeeld over 2 zittingen per week. Evaluatie Na afloop zal een evaluatie gedaan worden met als doel de module kwalitatief te verbeteren. De gemaakte opmerkingen zullen worden meegenomen voor de volgende keer. 5/5