Datastructuren en algoritmen

Datastructuren en algoritmen

  • Informatica
  • IB1502
  • 5 EC
  • Vanaf € 384
  • Voor dit product gelden ingangseisen
Deze cursus heeft een vast startmoment. Kijk in het Jaarrooster wanneer de cursus van start gaat en wanneer de begeleiding is ingeroosterd.

Inhoud

Om goed te kunnen programmeren is een aantal vaardigheden belangrijk. Je moet allereerst vertrouwd zijn met de taalconstructies van de programmeertaal waarin je programmeert en je moet in staat zijn om je programma op een logische en heldere manier te structureren in deelcomponenten. Aan deze vaardigheden wordt in de cursussen Objectgeoriënteerd programmeren en Geavanceerd objectgeoriënteerd programmeren ruime aandacht besteed. In deze cursussen wordt echter relatief weinig aandacht besteed aan algoritmen en de datastructuren waarop deze algoritmen werken. Je kunt daarbij denken aan methoden en technieken om gegevens op te slaan, snel op te zoeken, te sorteren, of op een efficiënte manier een optimale weg te vinden in een netwerk. In deze cursus wordt een overzicht gegeven van de datastructuren waarmee gegevens kunnen worden vastgelegd en van de bijbehorende algoritmen.

Na drie inleidende hoofdstukken over ontwerpprincipes en analysetechnieken worden in negen hoofdstukken de basisdatastructuren (en de hierop werkende algoritmen) uit de informatica behandeld: stapels (stacks), wachtrijen (queues), rijen (sequences), (zoek)bomen, prioriteitswachtrijen (priority queues), verzamelingen en (gewogen) grafen. Ook wordt aandacht besteed aan recursie. De algoritmen worden in veel gevallen gepresenteerd in een taalonafhankelijke pseudocode; daarnaast wordt regelmatig (een deel van) de implementatie in Java getoond. Behalve de behandeling van de algoritmen zelf wordt ook de nodige aandacht besteed aan de analyse van algoritmen, in het bijzonder om te kunnen voorspellen hoeveel tijd een algoritme kost voor een probleem van een bepaalde omvang. Een zelfde soort analyse wordt gebruikt voor het bepalen van het ruimtebeslag van de datastructuren waarop de algoritmen werken. Voor deze analyses is een enigszins wiskundige benadering noodzakelijk. Aan het eind van de cursus heb je een overzicht gekregen van, en een inzicht in, de standaarddatastructuren en -algoritmen.

Ingangseisen

Aanmelden voor deze cursus kan pas nadat je de cursussen Objectgeoriënteerd programmeren (IB1102), Geavanceerd objectgeoriënteerd programmeren (IB0902) en Logica, verzamelingen en relaties (IB0402) conform je online studiepad hebt afgerond, dan wel hebt vrijgesteld gekregen dan wel daarvoor bent ingeschreven (en je die cursussen grotendeels bestudeerd hebt).

Toelichting aanmelden

Deze cursus start 1 september 2024. We adviseren om uiterlijk zondag 11 augustus 2024 hiervoor aan te melden zodat je tijdig het eventuele cursusmateriaal ontvangt, toegang hebt tot de leeromgeving en (indien van toepassing) ingedeeld kunt worden in een studiegroep. Bij aanmelding na 11 augustus 2024 kunnen we dit niet garanderen. Aanmelden is mogelijk tot en met 31 augustus 2024.

De cursus wordt eenmaal per academisch jaar aangeboden.

Begeleidingsvorm

Deze cursus heeft een vast startmoment. Kijk in het Jaarrooster wanneer de cursus van start gaat en wanneer de begeleiding is ingeroosterd.

Bij de cursus worden online bijeenkomsten aangeboden in de periode van september t/m november.

Begeleidingsbijeenkomsten


Studiedag Informatica en Informatiekunde, Utrecht
Kwartiel 1 - begeleider: dhr.dr. S. de Gouw
1. za 07-09-2024 / tijd wordt nader bekend gemaakt

Online-bijeenkomsten
Kwartiel 1 - begeleider: dhr.dr. S. de Gouw
2. ma 16-09-2024 / 19.00-21.00 uur
3. ma 30-09-2024 / 19.00-21.00 uur
4. ma 14-10-2024 / 19.00-21.00 uur
5. ma 28-10-2024 / 19.00-21.00 uur

Tentamenvorm

Opdracht en mondeling tentamen.

Tentamentoelichting

U dient zelf tijdig aan te melden voor een tentamen.

Het eindcijfer voor het vak wordt bepaald door het gewogen gemiddelde van de serie huiswerkopdrachten (telt 40%) en het mondelinge tentamen (telt 60%). Ook moeten beide deelcijfers voldoende zijn. De mondelinge tentamens worden (digitaal) afgenomen in of rond de tentamenweek van Q1, Q2 en Q4. De huiswerkopdracht worden (aan het eind) van dezelfde kwartielen als de tentamens afgenomen. Omstreeks drie weken daarvoor wordt telkens een nieuwe serie huiswerkopdrachten gepubliceerd.

Tentamendata

Opdracht: volgens afspraak.
Mondeling tentamen: volgens afspraak.

Meer informatie

Voor een inkijkje in de cursus, ga naar de snapshot.

Cursusmateriaal

De cursus bestaat uit een werkboek en het Engelstalige tekstboek Data Structures and Algorithms in Java van M.T. Goodrich en R. Tamassia, 6th edition.

Mediagebruik

Tijdens het bestuderen van de cursus kun je demo’s bekijken van de werking van algoritmes. Daarvoor is een browser noodzakelijk. Verder kun je desgewenst de beschikbaar gestelde Java-code uitproberen in de programmeeromgeving zoals gebruikt in eerdere programmeercursussen; dit is echter niet noodzakelijk.

Digitale leeromgeving

Bij de cursus hoort een cursussite in de online leeromgeving. Je vindt daar actuele studie-informatie, aanvullend cursusmateriaal en voorzieningen voor communicatie en discussie met docent en medestudenten.