Search
Nederlands
  Prospectuses 2010-2011
Radboud universityProspectusesFaculty of Science > Bachelor Informatica en Informatiekunde

Programmeren 

(Course ID)
Vakcode
IPI002
(Credits)
Studiepunten
6
(Scheduled)
Periode
eerste semester (N.B. deze cursus begint twee weken later)
Inleiding (Introduction)

Volgens een systematische methode worden programma's ontworpen en (in C++) geïmplementeerd met behulp van basisdatatypen en (niet recursieve) structuren.
Op het college worden de belangrijkste zaken toegelicht. Bij de basisdatatypen en structuren worden de mogelijke operaties en een aantal ‘standaard-algoritmen' erop besproken en geanalyseerd.
Ontwerpen, implementeren, uittesten en zonodig aanpassen van algoritmen leer je pas echt in het practicum, dit heeft dan ook een belangrijke rol in deze cursus. Practicumopgaven bereid je voor en werk je uit in koppels. Opgaven worden toegelicht en nabesproken, meestal in de vorm van een werkcollege.

Leerdoelen (Objectives)

Na afloop van de cursus kan de student:

  • De werking van gegeven programma-code doorgronden en expliciteren.
  • Gegeven algoritmen implementeren.
  • De voor oplossing van eenvoudige problemen benodigde datatypen en operaties erop aangeven.
  • Voor eenvoudige problemen zelf systematisch een algoritme ontwikkelen en de geschiktheid hiervan aannemelijk maken.
  • Globale afschattingen maken van de complexiteit van algoritmen en programma's.
  • De kwaliteit van programma's beoordelen (zowel door redeneren als door testen).
  • De correcte werking van een programma verifiëren.
  • De geschiktheid van een implementatie valideren.
  • Programma's ontwikkelen die aanpasbaar zijn (duidelijke structuur, goede naamgeving, abstractie via typesynoniemen en functies).
Onderwerpen (Subjects)
  • Algoritmen, systematische programmaontwikkeling door het opsplitsen van problemen in deelproblemen;
  • Taalbeschrijvingen in de vorm van syntaxdiagrammen;
  • ‘Controlestructuren': opeenvolging, keuzes, voorwaardelijke herhalingen, herhalingen-met-teller, functies en procedures;
  • Variabelen en constanten, globaal versus lokaal;
  • Parameteroverdracht: call-by-value, call-by-reference;
  • Datastructuren: typesynoniemen, enumeratietypes, rijen, structuren; bestanden;
  • Eenvoudige complexiteitsanalyses van algoritmen, standaardalgoritmen voor zoeken en sorteren, recursie, recursief sorteren.
Studielastverdeling (Study investment)
  • 56 uur computerpracticum
  • 14 uur groepsgewijs college
  • 28 uur hoorcollege
  • 70 uur zelfstudie
Toelichting werkvormen (Teaching methods)

De cursus is deels taakgericht opgezet. Hoorcolleges, werkcolleges en zelfstudie zijn grotendeels gericht op de nieuwe practicumopdracht die uitgewerkt moet worden.

De wekelijkse hoorcolleges zijn vooral bedoeld als introductie op de bijbehorende practicumstof, waarbij telkens nieuwe datatypen en algoritmen worden besproken. De werkcolleges worden deels gebruikt voor oefenen met de op het college besproken stof, maar zeker ook ter expliciete voorbespreking en nabespreking van practicumopdrachten. Tijdens de zelfstudie bestudeer je de besproken collegestof en bereid je ontwerp en implementatie van de practicumopdracht voor.

Op ingeleverde uitwerkingen van practicumopdrachten krijg je expliciete feedback.

Toetsvorm (Examination)

De cursus wordt afgesloten met een schriftelijk individueel tentamen. Er zijn twee tussentijdse, individuele toetsen die meetellen voor je eindcijfer. Voor de bepaling van het cursuseindcijfer heeft elke toets een gewicht 1 en het tentamen een gewicht 3.
Voor toelating tot het tentamen dien je serieus aan het practicum te hebben deelgenomen. Practicumopdrachten worden bij voorkeur in koppels gemaakt. Practicumopdrachten worden beoordeeld met g (goed), v (voldoende), o (onvoldoende) en nsi (niet serieus ingeleverd). Van je practicumresultaten [behalve van de laatste twee opdrachten] mag je de twee slechtste wegstrepen. Er mag dan geen 'nsi'-beoordeling resteren.

Vereiste voorkennis (Pre-requisites)

Geen.

Literatuur (Literature)

Dictaat (in elektronische vorm).
Boek: "Problem Solving with C++; The Object of Programming" van Walter Savitch, 7e druk ISBN: 0-321-53134-5;
in orde is ook het gebruik van oudere drukken van dit boek: ISBN: 0-321-412699 (5e druk) of: 0-321-44263-6 (6e druk).

Bijzonderheden (Extra information)

De gebruikte ontwikkelmethode kent vijf stappen:

  1. Probleemanalyse: zorg dat het probleem duidelijk is;
  2. Ontwerp van algoritmen en datastructuren;
  3. Reflectie: zal het gaan werken, zal het probleem opgelost worden;
  4. Implementeren: het schrijven van het programma;
  5. Evaluatie: testen, werkt het, is het probleem opgelost.