Course Identification

Evolution through programming
20253562

Lecturers and Teaching Assistants

Prof. Yitzhak Pilpel
Omer Kerner

Course Schedule and Location

2025
Second Semester
Thursday, 09:00 - 11:00, science teaching lab 2
27/03/2025
03/07/2025

Field of Study, Course Type and Credit Points

Life Sciences: Elective; 2.00 points

Comments

knowledge in programming is very needed.

The lesson after the Passover break will be on Wednesday, 23/4 between 9-11 at WSoS Room B. This lesson will be instead of the one on Thursday for that week.

Prerequisites

  • Some experience in programming.
  • Basic knowledge of evolutionary biology and genetics.

Restrictions

30

Language of Instruction

English

Attendance and participation

Required in at least 80% of the lectures

Grade Type

Numerical (out of 100)

Grade Breakdown (in %)

10%
50%
20%
20%

Evaluation Type

Final assignment

Scheduled date 1

N/A
N/A
-
N/A

Estimated Weekly Independent Workload (in hours)

3

Syllabus

Evolution is the foundational principle of biology, driven by the simple yet powerful "algorithm" of randomness generating diversity, environmental selection, and genetic inheritance of advantageous traits. This course explores evolutionary processes through computer programming, providing students with the tools to simulate evolutionary dynamics and analyze real-world data on natural evolution. Each week introduces a new topic, combining theoretical insights with practical coding assignments. Learning is facilitated through small team collaborations (2-3 students) with rotating groups to enhance peer learning and communication skills. Proficiency in programming is required.

Course Objectives:

  • Understand the fundamental principles of evolution, including natural selection, mutation, and genetic inheritance.
  • Develop programming skills to simulate evolutionary processes and analyze biological data.
  • Apply computational models to explore key evolutionary concepts such as fitness landscapes, cooperation, and molecular evolution.
  • Gain experience with evolutionary algorithms and their applications in biology and optimization.
  • Collaborate effectively in small teams, presenting findings and discussing evolutionary concepts.

Weekly Topics and Activities:

Week 1: Introduction to Evolution

  • Topics: Basic concepts of evolution—reproduction, selection, mutation, and mating.
  • Activities: Introduction to the course, team formation, initial coding exercise simulating basic evolutionary dynamics.

Week 2: Fitness Landscapes and Sequence Spaces

  • Topics: Binary genomes, fitness landscapes, quasispecies models, mutation matrices.
  • Activities: Code simulation of fitness landscapes; analyze how mutations affect population dynamics.

Week 3: Evolution of Cooperation

  • Topics: Game theory, frequency-dependent selection, evolutionarily stable strategies, and the Prisoner's Dilemma.
  • Activities: Implement game theory models in code; explore cooperation in simulated populations.

Week 4: Natural vs. Neutral Evolution

  • Topics: Moran process, fixation probability, and the role of drift vs. selection.
  • Activities: Code a Moran process; compare selective and neutral evolutionary outcomes.

Week 5: Molecular Evolution I: Protein Evolution

  • Topics: Evolution of proteins and emergence of new genes.
  • Activities: Simulate protein sequence evolution; bioinformatic analysis of protein families and evolutionary data from existing datasets.

Week 6: Molecular Evolution II: The Genetic Code

  • Topics: Evolution of the genetic code and its adaptive properties, codon usage biases.
  • Activities: Explore genetic codes through evolutionary simulations; analyze real genetic code data.

Week 7: Evolution of Gene Expression

  • Topics: Regulatory evolution, transcription factor binding site changes, gene network evolution.
  • Activities: Simulate and analyze data on changes in gene regulatory networks and their evolutionary impact.

Week 8: Molecular Evolution and Phylogeny

  • Topics: Evolutionary clocks, gene duplication, phylogenetic trees.
  • Activities: Use bioinformatics tools to build phylogenetic trees; study gene duplication events.

Week 9: Evolution within the Body

  • Topics: Evolution of molecular repertoires of the immune system, cancer evolution, pathogen evolution within hosts.
  • Activities: Model the evolution of cancer cells; analyze data on pathogen adaptation in populations of their hosts.

Week 10: Evolutionary and Genetic Algorithms

  • Topics: Genetic algorithms as optimization engines.
  • Activities: Implement genetic algorithms; apply them to examined evolutionary dynamics trends.

Week 11: Cultural Evolution and Evolution of Language

  • Topics: Models of cultural evolution, language development, and meme theory.
  • Activities: Code simulations and data analysis of language evolution; study cultural transmission models.

Instructor Contact:

  • Office hours, email, and contact details to be provided during the first class.

Learning Outcomes

Upon successful completion of this course students should be able to:

understand principles of evolutionary dynamics with good experience in programming simulation and data analysis

Reading List

Course Materials:

  • Textbooks: Selected readings from "Evolutionary Dynamics" M. Nowak, and research articles provided weekly.
  • Software: Any language, including Python, R or MATLAB for simulations; additional bioinformatics tools as required.

Website

N/A