Machine learning

Skills

  • Implementing supervised and unsupervised learning methods:
    • Support Vector Machines
    • Artificial Neural Network
    • Multiple Linear Regression
    • k Nearest Neighbors
    • Decision Tree
    • Random Forest
    • Ensemble learning: Bagging, Boosting
  • Optimizing hyperparameters of an algorithm
  • Applying best-practices in machine learning

Tools

Scikit-learn, Weka, KNIME

Context

  • Lectures and practicals:
    • "Data Mining" by Nicolas Lachiche and Gilles Marcou
    • "Chemoinformatics 2" by Alexandre Varnek
  • MOOC: "Machine Learning" by Andrew Ng (Stanford University) on Coursera


Deep learning

Skills

  • Utilizing Google's framework: Tensorflow
  • Parametrizing Deep Neural Networks: softmax, one-hot encoding, cross entropy, gradient descent
  • Implementing convolutional neural networks, autoencoders, and other deep neural networks with Keras

Tools

Python: Jupyter-notebook, Numpy, Scikit-learn, Tensorflow, Keras

Context

  • MOOC: "Deep Learning" by Vincent Vanhoucke (Google Brain) on Udacity
  • PhD thesis


High performance computing

Skills

  • Launching calculations in parallel on a compute cluster
  • Describing the architecture of a supercomputer
  • Applying the different paradigms for parallel computing: process interaction and problem decomposition

Tools

MPI, SLURM, PBS, OAR

Context


Web development

Skills

  • Utilizing XHTML, HTML5 and CSS3 to organize and style a dynamic webpage
  • Creating a responsive webpage with Bootstrap
  • Scripting with PHP and Javascript
  • Developing a web app with Django framework, and deploying it with Gunicorn and Nginx
  • Integrating a website with a MySQL or PostgreSQL database
  • Complying with the W3C standards

Context

  • Lectures and practicals: "Internet Technology" by Eric Christoffel
  • Internship: Chemosim Lab
  • This website !


Python

Skills

  • Conceptualizing, developing, documenting and delevering a functionnal app
  • Designing an object-oriented program
  • Implementing parallelism with the "concurrent" package
  • Creating a friendly user interface:
    • Command-line: "argparse" package
    • Graphical: Qt with "PyQt5", or "TkInter" packages
    • Web: "Bokeh" package
  • Packaging an app as a single-file executable with "PyInstaller" package
  • Uploading a project to the Python Package Index (PyPI)

Tools

  • Package manager: Conda, Pip
  • Interactive environment: IPython, Jupyter-notebook
  • Packages: pandas, numpy, scipy, sklearn, keras, rdkit, mdanalysis, matplotlib, seaborn, bokeh, django, PyQt5, PyInstaller, subprocess, concurrent, argparse, lxml

Context


Bash

Skills

  • Scripting with awk, sed, and other UNIX tools
  • Developing workflows
  • Using the SSH protocol to connect to a remote machine, and for port forwarding

Context

  • Projects: ChemFlow
  • Internships: Chemosim Lab, IFM Lab
  • Lectures and practicals: "Programming 2 : Imperative Languages" by Dragos Horvath


JavaScript

Skills

  • Adapting a script to perform a desired action
  • Making simple queries and linking them to functions
  • Updating the content of a webpage automatically or on a user event with Ajax

Tools

JQuery

Context


C

Skills

  • Writing simple programs to perform standard operations (reading and writing from/to standard input/output or a file, making calculations)

Context

Lectures and practicals:

  • "Introduction to C programming" by Franck Guingne and Francis Avnaim
  • "Disciplinary Informatics" by Sébastien Fiorucci


PHP

Skills

  • Managing HTML forms with the POST and GET methods
  • Making operations and calculations from an input
  • Querying a MySQL database

Tools

  • LAMP server
  • phpMyAdmin

Context

Lectures and practicals:

  • "Internet Technology" by Eric Christoffel


Java

Skills

  • Writing a simple Object-oriented program
  • Understanding encapsulation, polymorphism, and method overloading
  • Following the SOLID guidelines
  • Recognizing design patterns
  • Drawing a UML diagram

Context

Lectures and practicals:

  • "Object Oriented Programming" by Léa Raya Decornod


Pascal

Skills

  • Writing a simple program to perform standard operations
  • Modifying an existing program to perform a desired action

Tools

Lazarus

Context

Lectures and practicals:

  • "Programming 2 : Imperative Languages" by Dragos Horvath


System administration

Skills

  • Building and maintaining a computer
  • Configuring BIOS settings
  • Installing an operating system:
    • Windows 7, Windows 10
    • GNU/Linux: Ubuntu, OpenSUSE, Arch
  • Installing drivers
  • Installing CUDA and OpenMPI for a more efficient use of the resources
  • Troubleshooting

Context

  • Personal experience as a geek !
  • MOOC: "NDG Linux Essentials 1116m" by Cisco Networking Academy
  • Internship: Chemosim Lab
  • Lectures and practicals: "Operating systems and networks" by Jean-Olivier Dalbavie


Database

Skills

  • Designing a relational database
  • Creating a conceptual data model and drawing data structure diagram: entity-relationship model
  • Submitting queries to a MySQL database

Tools

MySQL, PostgreSQL, Django

Context

  • Lectures and practicals: "Database 1" by Stella Marc-Zwecker, and "Internet Technology" by Eric Christoffel
  • Internship: Chemosim Lab


Software Engineering

Skills

  • Writing unit and integration tests, automatize their execution with Travis-CI, and assess the coverage of the test suite with Coveralls
  • Outlining the different phases of a system development life cycle
  • Following a software development methodology
  • Creating UML diagrams

Tools

Git, GitHub, Travis-CI, Coveralls

Context

  • Lectures and practicals:
    • "Software Engineering" by Régis Witz
  • Project: ProLIF