Skip to content

Code-Maven/wis-python-course-2025-03

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

103 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WIS Python programming course started in 2025.03

Course number: 20253072

Students

Home page Repo Assignments Project Status
Aaron Finn repo repo
Abraham Zucker repo repo Time evolution of deterministic card games
Amit Paz repo repo Analysis of Visium HD: Combining Gene Expression and Morphological Features (private)
Anastasia Paz repo repo
Anat Ben-Yaacov repo repo
Andrei Sarenko repo repo Root & Shoot Colour & Morphology Analysis Across Plant Genotypes
Aviel Rosenbaum repo repo Predicting-Immunotherapy-Response-from-Tumor-Mycobiome-Composition
Beatrice Mereshensky repo repo
Benel Levy repo repo Recipe Recommender – Smart Cooking From Your Fridge
Chen Bibi repo repo Amplicon_analysis_for_SNP_detection
Chen Weller repo repo Codon-Based Frameshift Translator
Coral Shalmoni repo repo Genetic Art Generator
Dana Brosh repo repo DNA-to-protein
Elizabeth Popov repo repo Oligo-Barcode-Profiler
Emmanuel Amzallag repo repo Determining aggregation propensity from proteomics data
Gal Hermelin repo repo Baby Feeding Correlation Analyzer
Gaya Granot repo repo Base Editor Design Assistant
Giulia Carradori repo repo TissueGraph: Spatial Graphs for Tissue Microenvironments
Inbal Naveh repo repo Diamond-polishing-directions-analyzer
Karen Waskewitz repo repo Analyzing-Interview-Transcripts
Kedar Waychal repo repo optogenetic-data-analysis
Lee Halevi repo repo Codon Usage Analyzer and Optimizer
Maya Salomon repo repo Movie-scan-correlation-viewer
Maya Skolozub repo repo Automatic DMI Experiment Report
Michal Zamberg Elad repo repo Neural Activity To Behavior
Noam Weil repo repo Extract Scientific Article Text from PDFs
Paramita Manna repo repo
Priel Siman-Tov repo repo Gibson Assembly Assistant
Ruthie Surujon repo repo Image Reconstruction From Hdf
Sagi Maor repo repo Particle-by-Particle Aerosol Analysis
Shani Rochell repo repo
Sophie Piwko repo repo Preprocessing of Proteomic Data
Sun Terletsky repo repo Trajectory Visualization for Virtual‑Arena Experiments
Uri Monsonego repo repo
Yotam Yaniv repo repo Gene Interactions and Machinary
Yovel Edri repo repo

Lecturer

Teaching Assistants

Plan

SYLLABUS

Schedule

  • Day 1 2025.03.27 9:00-12:00
  • Day 2 2025.04.03 9:00-12:00
  • Day 3 2025.04.10 9:00-12:00
  • Passover
  • 2025.04.24 9:00-12:00 cancelled
  • Independence day
  • Day 4 2025.05.08 9:00-12:00
  • Day 5 2025.05.15 9:00-12:00
  • Day 6 2025.05.22 9:00-12:00
  • Day 7 2025.05.29 9:00-12:00
  • Day 8 2025.06.05 9:00-12:00
  • Day 9 2025.06.12 9:00-12:00
  • Day 10 2025.06.26 9:00-12:00

Assignments

There will be assignments after every lecture. You will submit them via GitHub. I'll explain the details during the lectures.

Extensions

Each assignment and the project will have dead-lines. If you need to ask for extensions, do it up-front asking your TA. Make their life easier and ask specify the new dead-line you need.

Project

Towards the end of the course you'll be asked to do a project. First you will need to submit a proposal for the project and when it is accepted then implement it. The project should be something that is useful for your studies or at least it is fun for you to make. Ask in the lab where you work what needs are there that you might implement as your final project. You can get inspiration from the projects listed here and the projects of the 2023 autumn semester or those of 2024 spring semester and 2024 autumn semester.

The idea of the project is that you write something that is going to be useful for you beyond the course. e.g. There is some manual work in your lab and this project will automate it. It can be also a tool to help you with your research. etc. It can also be useful in your private life. e.g. we had projects trying to register for visa applications at the USA embasy and we also had games.

You can even take an existing project and make some valuable improvements to that project. (e.g. one project from one of the previous courses).

How to submit your proposal?

  • Create a separate repository for the project. Its name should reflect the project: (e.g. Gene-Amplification-and-SNP-Analysis) and not the the course. If someone looks at this repository they should see it as a real application and not "some stuff you wrote just to get the grade".

  • The proposal should be the README.md file of the repository. If you need to include images or data files, those should be also included in the repository. It should be a description that will help any future visitor of the project to understand

  1. What does this project do?
  2. What kind of input data it expects and what kind out output the user might expect?
  3. The technicalities: How to download it, install the dependencies, run the tests, and run the project?

It would be nice if at the end of the README you mention that this was written as part of the course and link to the course repository.

We understand that the project and thus the description might evolve during the implementation. That's fine. You can update the README with the new information. In the proposal we would like to see your understanding of the project before you start implementing it.

Before you submit it for approval it is recommended that you send it to another student and ask if the description is clear. If that student has any questions then you probably will need to update the README to answer those questions so the next person won't need to ask.

Once you are ready, open an issue on our repository linking to you project to get it approved.

Once the project is approved you will implement it in the same repository. Open a new issue when you'd like the project to be graded.

Expected workload

In addition to the lectures you will spend about 2-4 hours / week on the assignments and 20-40 hours on the project.

The actual time spent will greatly depend on your previous experience with programming in general and Python in particular.

The time you spend on the project will also depend on the availability of the data you work on. If you pick a project that you would want to do anyway then this is basically time you would spend anyway.

Grades

  • Each assignment counts as 5% (we will have 10 of them).

  • The project proposal is 15%.

  • The project is 35%.

  • The project is a requirement. Without that you won't get a passing grade.

Slides

During the course I'll use some of the slides that can be found here. These slides are publicly available and will remain on the web site after the course is over.

Videos in English

There are recording of this course from 3 years ago.

There are also recordings from the 2023 autumn semester.

There are also recordings from the 2024 spring semester.

You can watch those, but be also warned, this semester the order of the material will be different.

There are many more videos in my English-language YouTube channel. You are invited to check them out and to follow the channel.

Videos in Hebrew

Some of the material is also available in Hebrew. You can find them on my website and in my Hebrew-language YouTube channel. You are invited to follow that channel as well.

Language

The default teaching language of WIS and of this course is English.

In writing please stick to English.

If and when we have one-on-one conversions I'd be happy to speak in Hebrew, Hungarian, Spanish, or Ladino as well.

Bring your own computer!

You are expected to bring your own computer to the lectures.

Installations

There is no need to install anything up front. We'll do that during the lectures.

Videos

Login to Moodle and you should be able to see the video recordings on the right hand side.

Day 1

  • Self introduction
  • Overview of the course
  • Programming
  • Version control
  • GitHub
  • GitHub pages

Assignment (day 1)

  • Watch

  • Create web site for yourself using GitHub pages. Remember to use the repository name USERNAME.github.io. Get ideas from the pages of the students in the previus courses.

  • Watch the 2nd video.

  • Create a separate public repository for all the assignments of the course. (e.g. call it python-course-assignments)

    • Create a folder called day01
    • In the folder create a program that will print "Hello World!"

Once they are ready open an issue on the GitHub repository of the course. The title of the issue should contain your full name and name of the assignment e.g. "Day1 by Foo Bar", in case your name is Foo Bar. In the issue include the link to the site, the link to the repository of the site, and the link to the repository of the assignment.

Dead-line: April 1, 23:00 April 3, 23:00

Day 2

  • Biopython project, issues.

  • Computer architecture (memory vs hard-disk), filesystem

  • Continue the First Steps chapter (till Floating point limitations)

  • Someone should have mentioned in class that I mistakenly let co-pilot write weight instead of width and that's why it wanted to compute my BMI intead of the area of the rectangle.

Assignment (day 2)

  • In the repository of your assignments create a folder called day02 and put your solutions in that folder.

  • Write a program called circle.py that will ask the user for the radius of the circle and will print the area and the circumeference of the circle.

  • Write a program called rectangle.py that will ask the user for height and width and calculate the area and the perimeter of the rectangle.

  • You will have to use the int() or the float() function to convert tha data you received from the user to an int or float in your program.

  • Once you are done, open an issue on our repository in whch the subject includes your full name and the number of the assignment so the TAs will be able to handle it. Include a link to the repository of your assignments.

Dead-line: April 8, 23:00

Day 3

Covered chapters

  • End of "First steps"
  • "Second steps"
  • Numbers

Assignment (day 3)

Task 1

  • Open issues on the repository of the web site of 2 students. In order to make sure every student receives issues, first open for student who do not yet have issues or only have 1 issue opened. In the issue write down what you like and what improvement you'd like to see. Mention the TAs and my by including our GitHub user ideas with an @ mark. E.g. @szabgab will notify me about the issue.
  • When you receive an issue, comment on it. Decide if you'd like to implement the suggestions and one you implemented it or if you decide you don't want to do that, close the issue.
  • The goal here is to have some experience with GitHub issues and to improve your web sites.
  • I recommend you collaborate with each other. Feel free to pick a random student and ask her/him to work on this together in-person or via a zoom session.

Task 2

In a folder called day03

Task 3

  • Copy the circle.py and rectangle.py from day02 to day03 and change both of them to get the values one the command line (using sys.argv) intead of waiting for input.

Dead-line: April 23, 21:00

Day 4

Covered chapters

  • Comparison and Boolean
  • Strings
  • Loops

Assignment (day 4)

Dead-line: May 15, 21:00

Day 5

Covered chapters

  • Formatted strings
  • Lists
  • Tuples

Assignment (day 5)

Dead-line: May 22, 21:00

Day 6

Covered chapters

  • Files
  • YAML
  • JSON
  • beginning of the Biopython chapter

Assignment (day 6)

Dead-line: June 4, 21:00

Day 7

Covered chapters

  • Dictionaries
  • Sets
  • Code-reuse
  • Functions

Assignment (day 7)

Dead-line: June 8, 21:00

Day 8

Covered chapters

  • Modules
  • Regular Expressions part 1 and 2

Assignment (day 8)

  • Take one of your solutions to one of the earlier assignments. Split up the code into functions. Move the functions to a module. Submit the new script and the module.
  • parse hours log file and create report

Dead-line: June 15, 21:00

Day 9

Covered chapters

  • Regular Expressions part 3
  • math, sys, os, pathlib, shutil, time, datetime, subprocess, argparse
  • Testing Demo
  • A few words about classical machine learning.

Assignment (day 9)

  • Take one your earler solutions. Convert the code into functions and move the functions to a separate module.
  • Write documentation for the non-I/O functions with examples and run doctest.
  • Write tests using assert and use pytest to run the tests.

Dead-line: June 22, 21:00

Project

For detailed desciption see above.

Project proposal dead-line: June 12, 21:00

Project submission dead-line: July 3, 21:00

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages