Centrale Lille Course Catalogue

Refresher in Computer Science

Course label : Refresher in Computer Science
Teaching departement : EEA / Electrotechnics - Electronics - Control Systems
Teaching manager : Mister PIERRE-ANTOINE THOUVENIN / Mister PIERRE CHAINAIS
Education language :
Potential ects : 0
Results grid :
Code and label (hp) : MR_DS_S1_RCS - Refresher in Computer Science

Education team

Teachers : Mister PIERRE-ANTOINE THOUVENIN / Mister PIERRE CHAINAIS
External contributors (business, research, secondary education): various temporary teachers

Summary

Fundamentals of object oriented programming, with a strong focus on the Python programming language. This course emphasizes the theoretical fundamentals of object oriented programming with hands-on training for rapidly prototyping applications. The practicals will illustrate : ● the benefits of object oriented programming, ● the ability of Python to quickly translate ideas into code, ● the process of developing and scaling a proof-of-concept, and preparing for production. Some of the frameworks and tools we will utilize are : ● pyTest, cProfile, pycallgraph, Pylint, Travis, asyncio, zeroMQ, Docker, Flask.

Educational goals

After successfully taking this course, a student should: ● understand the notions of class and object, ● understand the concepts of encapsulation and inheritance, ● understand the most common design patterns used in object oriented programming, ● understand the principle of inversion-of-control through dependency injection, ● lay the groundwork for testing, analyzing and profiling software, ● learn to leverage continuous integration in the development process, ● learn to package and prepare an application for production, ● learn to scale applications through asynchronous parallelization, ● learn to quickly prototype applications with simple web frontends.

Sustainable development goals

Knowledge control procedures

Continuous Assessment
Comments: Labs, grading scale: (min) 0 – 20 (max) Exam, grading scale: (min) 0 – 20 (max)

Online resources

Design Patterns: Elements of Reusable Object-Oriented Software. Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Python Programming: An Introduction to Computer Science. John Zelle. Clean Code: A Handbook of Agile Software Craftsmanship. Robert C. Martin Series. Flask Web Development: Developing Web Applications with Python. Miguel Grinberg. Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation. Jez Humble, David Farley.

Pedagogy

24 hours, 8 lectures 4 exercises Language of instruction is specified in the course offering information in the course and programme directory. English is the default language.

Sequencing / learning methods

Number of hours - Lectures : 12
Number of hours - Tutorial : 12
Number of hours - Practical work : 0
Number of hours - Seminar : 0
Number of hours - Half-group seminar : 0
Number of student hours in TEA (Autonomous learning) : 0
Number of student hours in TNE (Non-supervised activities) : 0
Number of hours in CB (Fixed exams) : 0
Number of student hours in PER (Personal work) : 0
Number of hours - Projects : 0

Prerequisites

Basics of programming in Python.

Maximum number of registrants

Remarks