Topic outline

  • General

    Please be kindly informed that using Chat GPT in doing assignments in this course is not allowed.

    Please note: In order to have your registration for this or any other course accepted in Sisu, the course must be included in your study plan. Check that this is the case and also check that you have the latest version of your study plan in place.

    Please also note: Professors or lecturers don't have permission to enrol students in Sisu. So, if you need to register after the deadline for the course in Sisu, please send a message to grades-sci@aalto.fi. You can cc me, Riku Linna (riku.linna@aalto.fi), just in case if the people in learnng services need a confirmation from me. If registering in Sisu cannot be done right away, send an e-mail to me, and I will add you to MyCourses (provided you have an aalto e-mail).

    Lecturer: Riku Linna (riku.linna@aalto.fi)

    Teaching Assistants:  

    • Pranav Arora (pranav.arora@aalto.fi) 
    • Yejun Zhang(yejun.zhang@aalto.fi)

    Lectures, Tuesdays 12:15

    Lecture hall D/ Y122, "Kandidaattikeskus" (Main Building). 

    Exercise sessions, Thursdays 10:15

    Computer Science building, T7 (Linux) - C106.1 

    Or join Zoom Meeting: https://aalto.zoom.us/j/63547357552
    While you are welcome to join, attendance is not required. The course is taken by returning weekly assignments and grading two or three assignment submissions weekly, using Peergrade and taking the exempt the end. Instructions for joining the course Peergrade can be found under Materials. Deadlines for submission of solutions, peer grading, and feedback can be found under Assignments. 20 % of the points come from peer grading, that is, how our grading is evaluated, and the rest from the graded solutions.

    To join the class in peergrade go to www.peergrade.io/join and type the class code TW49Y5In peergrade, please use your whole name - the same name that by which you are registered as a student at Aalto - to avoid problems in transferring grades to Sisu after the course.

    Please note that since the assignments are peer-graded, unfortunately, you cannot come back next year and return possibly similar/same problems for grading.

    Grading The grade is determined by the exercises (appr. 70 %) and the exam (appr. 30 %).  Peer grading will constitute 20 % of the exercise points.

    Please subscribe to the General discussion forum - under 'Forums' top right corner, for important announcements. Otherwise, Slack workspace (CM) will be mainly used for communication. To join Slack, go to CM Slack invitation.There you can ask questions, help others, etc. Please contact T.A via email if you face any problems in joining Slack. You are allowed and, in fact, encouraged to solve problems together. Just make sure that your solutions are not complete copy-pastes of someone else's.

    The purpose of this course is to provide an understanding of fundamental concepts and computational methods of stochastic simulations and models. After completing the assignments the student will have a library of (skeleton) algorithms used in stochastic simulation and an understanding of how they work.


    Topics include:

    1. Simulating standard probability distributions. 

    2. Methods of simulating 'non-standard' distributions. Logarithmic binning.

    3. Markov processes and stochastic models.

    4. Monte Carlo (MC) method and Metropolis sampling.

    5. Markov Chain Monte Carlo (MCMC) method; Gibbs and Metropolis-Hastings sampling.

    6. Hamiltonian/Hybrid Monte Carlo (HMC) method.

    Literature: Parts of the books Taylor, Karlin (newer edition Pinsky, Karlin): An Introduction to Stochastic Modeling (Academic Press), and Wilkinson: Stochastic Modelling for Systems Biology (CRC Press). Lecture notes and other distributed material.

    The book Hossein Pishro-Nik, Introduction to Probability and Random Processes, freely available online is a good reference for some parts of the course: https://www.probabilitycourse.com 


    Prerequisites: 

    Basic programming skills. The programming language is Python. Jupyter notebook will be used.