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.