BIO-210 / 4 credits
Teacher: Mathis Alexander
We present and apply software engineering principles to program projects in Python. Projects cover problems in life sciences, and will be developed over the course of the semester.
- Python (object types, statements, functions, packages, object oriented programming)
- Distributed version control via git
- Debugging, profiling, refactoring
- Unit, integration and functional testing
- Project and code documentation
- Models of developmental biology and neuroscience
The first part of the semester is devoted to acquiring the necessary skills and tools. In the second part, biological problems are presented and the students form groups of 2 to 3 people to realize a python repository that addresses one biological question. The software has to meet various specifications with regard to the application programming interface, documentation and performance. The hours of practical work will be devoted to planning, coding and presenting.
Python, software engineering, pattern formation, associative memory
Object-oriented programming and Information, Computation, Communication
Important concepts to start the course
By the end of the course, the student must be able to:
- Design an application meeting given specifications
- Optimize the adequacy of a program in relation to the targeted functionalities
- Use tools dedicated to the realization of software projects (version control, debugging, profiling)
- Develop a medium-sized application using python
- Use known libraries and interface other programming languages
- Interpret software documentation
- Write a scientific or technical report.
- Evaluate one's own performance in the team, receive and respond appropriately to feedback.
- Resolve conflicts in ways that are productive for the task and the people concerned.
- Manage priorities.
- Use both general and domain specific IT resources and tools
- Keep appropriate documentation for group meetings.
- Assess progress against the plan, and adapt the plan as appropriate.
- Set objectives and design an action plan to reach those objectives.
Lectures with code examples, practical work on computers, problem sets, realization of one graded project
Expected student activities
Participation in the course. Realization of problem sets and projects in exercise sessions and individual work during the week.
The final mark is a combination of 3 evaluations: individual work for the problem sets in the first classes (50%), evaluation of the second project carried out as a team (25%), individual contribution to teamwork (25%).
In teamwork, programming tasks are defined collaboratively and difficulty points are assigned to them. The individual contribution is calculated by the number of points accumulated by the student during the project (by carrying out the corresponding tasks).
The evaluation criteria for final projects take into account:
- full history on git
- integration and completeness of tests
- quality of documentation, clarity of code
- code quality, program performance, elegance of visualizations
- understanding algorithms
Virtual desktop infrastructure (VDI)
- Learning Python, 5th Edition by Mark Lutz | O'Reilly Media, Inc ISBN: 9781449355739
In the programs
- Semester: Fall
- Exam form: During the semester (winter session)
- Subject examined: Projects in informatics for SV
- Lecture: 2 Hour(s) per week x 14 weeks
- Exercises: 2 Hour(s) per week x 14 weeks