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_S3_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

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