Introduction Computational Science

6 EC

Semester 2, period 4

5062INCS6Y

Owner Bachelor Informatica
Coordinator dr. Valeria Krzhizhanovskaya
Part of Bachelor Informatica, year 2Dubbele bachelor Wiskunde en Informatica, year 2

Course manual 2019/2020

Course content

This course will focus on modelling real world phenomena, ranging from physical to sociological processes. After an introduction to modelling and simulation as the third paradigm of science, we cover three methods for modelling real world systems: cellular automata, ordinary differential equations, and complex networks. The course provides basic understanding of each method and their relation and introduces well-known examples for each approach. Every now and then we will derive some mathematical results such as integrating a simple ODE or deriving the diameter of a network structure; a degree mathematical skills are important to a computational modeler. Practical experience is obtained with back-to-back lab assignments which correspond to the concepts introduced in the weekly lecture material. The preferred programming language is Python. Example modelling assignments include traffic congestion, the flow of gas molecules, and the spreading of infectious diseases through our highly connected society.

Study materials

Literature

  • Laszlo Barabasi. Network Science. E-Book: 

    http://barabasi.com/networksciencebook/

Syllabus

  • 'Modelling and Simulation' by A.G. Hoekstra and P.M.A. Sloot

Other

  • Maarten van Steen. Graph Theory and Complex Networks. Available online via http://www.distributed-systems.net/index.php?id=gtcn-copy

  • David Easley and John Kleinberg. Networks, Crowds, and Markets, reasoning about a highly connected world. Available online via http://www.cs.cornell.edu/home/kleinber/networks-book/

  • Other papers and reading material will be provided during the course.

Objectives

  • After successful completion of the course, the students can: explain the added value of computational modelling to science;
  • describe the properties of several classes of models and explain their meaning;
  • formulate suitable models for a range of realistic phenomena and explain the choices;
  • explain the power and limitations of modelling;
  • explain the role of real data (note: this course does not explicitly handle model fitting);
  • implement simple models in computer code, verify and validate the correctness of implementation;
  • formulate some models in ordinary differential equations and solve them analytically (by integration) and numerically (by Euler algorithm);
  • explain and analyse how discretisation and numerical approximations affect the outcome of simulations;
  • describe some models of complex networks and explain their properties;
  • implement a few algorithms to generate different types of networks;
  • derive some basic mathematical properties of networks, such as diameter and giant component size.
  • can implement a model on real-life data and use it to run experiments.

Teaching methods

  • Lecture
  • Self-study
  • Working independently on e.g. a project or thesis
  • Supervision/feedback meeting
  • Seminar
  • Computer lab session/practical training

There will be two lectures and one computer lab session per week. Additional workshops will be arranged to help with the advanced topics in mathematics or programming. 

Learning activities

Activiteit Aantal uur
Hoorcollege 28
Laptopcollege 14
Werkcollege 14
Vragenuur 2
Deeltoets 4
Zelfstudie 106

Academic skills

This course is substantively in line with Academic Skills Informatics 2. It is assumed that students of the Bachelor's degree in Computer Science follow both courses simultaneously and part of the study load of this course has been placed with Academic Skills Informatics 2. 

Attendance

Programme's requirements concerning attendance (OER-B):

  • For practical trainings and tutorials/seminars with assignments attendance is obligatory. When students do not meet the requirements for attendance, this may lead to not finishing a course with a pass mark.

Additional requirements for this course:

Attending lectures is highly recommended, because they give essential information needed in the practical assignments. The lecturer also offers small quizzes during the lectures to help understanding new material.

For computer lab sessions attendance is obligatory. In these sessions, Teaching Assistants explain the assignments and help the students. Questions over email cannot be answered because of the large number of students. 

Additional workshops are optional -for students who need extra help or have small questions before the report submission. 

Assessment

Item and weight Details

Final grade

1 (100%)

Deeltoets

Students are assessed based on their submitted codes and reports from the lab assignments (60%) and an exam (40%). A student passes if the overall average grade is at least 5.5, with the additional constraint that the exam is at least 5.5, and an average of all assignments is also at least 5.5.

Inspection of assessed work

Feedback and grading results for lab assignments are published in Canvas. Students may ask questions via Canvas as well, or approach their TAs during the computer lab sessions. 

Assignments

Weekly individual graded assignments.

Fraud and plagiarism

Over het algemeen geldt dat elke uitwerking die je inlevert ter verkrijging van een beoordeling voor een vak je eigen werk moet zijn, tenzij samenwerken expliciet door de docent is toegestaan. Het inzien of kopiëren van andermans werk (zelfs als je dat hebt gevonden bij de printer, in een openstaande directory of op een onbeheerde computer) of materiaal overnemen uit een boek, tijdschrift, website, code repository of een andere bron - ook al is het gedeeltelijk - en inleveren alsof het je eigen werk is, is plagiaat.

We juichen toe dat je het cursusmateriaal en de opdrachten met medestudenten bespreekt om het beter te begrijpen. Je mag bronnen op het web raadplegen om meer te weten te komen over het onderwerp en om technische problemen op te lossen, maar niet voor regelrechte antwoorden op opgaven. Als in een uitwerking gebruik is gemaakt van externe bronnen zonder dat een bronvermelding is vermeld (bijvoorbeeld in de rapportage of in commentaar in de code), dan kan dat worden beschouwd als plagiaat.

Deze regels zijn er om alle studenten een eerlijke en optimale leeromgeving aan te kunnen bieden. De verleiding kan groot zijn om te plagiëren als de deadline voor een opdracht nadert, maar doe het niet. Elke vorm van plagiaat wordt bestraft. Als een student ernstige fraude heeft gepleegd, kan dat leiden tot het uitschrijven uit de Universiteit. Zie voor meer informatie over het fraude- en plagiaatreglement van de Universiteit van Amsterdam: www.student.uva.nl

Timetable

The schedule for this course is published on DataNose.

Additional information

  • Programming in Python is highly recommended and preferred; if necessary then C or Java is also accepted. Some mathematical skills will be used, such as basic calculus, basic statistics (binomial distribution), and the exponential and logarithmic functions. Students should review the necessary mathematical skills mentioned. 
  • Any necessary reading material will be provided through Canvas. 

Processed course evaluations

In response to student feedback, the mid-term exam is removed this year. That will help achieving a better workload distribution during the course.

A gradual increase in the assignment complexity is however an intended feature, where new assignments are built upon the previous ones, integrating the acquired skills and knowledge. 

Contact information

Coordinator

  • dr. Valeria Krzhizhanovskaya

Please contact ICS-2020@list.uva.nl for all course-related questions.