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.