Giter VIP home page Giter VIP logo

miage23's Introduction

This is the repository of the MIAGE C3P lectures done by S. Ducasse and G. Polito

contact: [email protected] / [email protected]

Discord channel: https://discord.gg/MqP32ZB29

Modules

In this course, you will learn the following topics.

  • Module 01: Test introduction. Unit testing. Fixtures, stimuli, assertions. Test-driven development (TDD). Extreme TDD.
  • Module 02: OOP refresh. Classes and methods. Method lookup. Polymorphism. self and super.
  • Module 03: Reverse engineering. Exploring an existing code base. Analysing source code. Abstracting details. Looking for documentation outside and inside the project. Tests as documentation.
  • Module 04: Test Quality. Mutation Analysis. Mutation Score. Equivalent mutants. Analysing surviving mutants.
  • Module 05: Hook and templates. Hooking behavior using inheritance. Template methods. Overrides and super sends.
  • Module 06: Double dispatch. Single vs. multiple dispatch. Message sends as choices. Double choices. Symmetrical and non-symmetrical double dispatch.
  • Module 07: Visitor. Extracting operations from class hierarchies. Double dispatch as extension mechanisms. Recursion revisited.
  • Module 08: Composite. Modelling complex tree-like structures using classes. Recursion revisited 2.
  • Module 09: Inheritance. Subclassing vs. subtyping. Inheritance vs. composition.
  • Module 10: Types. Dynamic vs. static message binding. Overrides vs. overwrites. The role of inheritance and interfaces in polymorphism.

Course Material

All slides, videos, and tutorials are available in (or linked from) this repository.

Course Contract

This course proposes a series of teorical lectures and practical exercises. Modules are divided in weeks, each in a different folder, and you will find the theory and practice in that folder. To pass this course you will need to:

  • pass the exams (see Calendar.md)
  • make a presentation (see Calendar.md)
  • do at minimum all the homework in the exercises (file Exercises.md in each folder)
  • watch all the videos of the lectures not done during the lectures (yes there are videos for 99% of the support)
  • write (short) weekly reports to tell us your activity. Remember, focus on the important things, and show us that you are learning.

Make a group

Some of the activities during the course require group organization. For example, this is the case for reporting and presentations.

Make your groups and create a folder inside the Groups directory. Choose a name for your group and use that as folder name. Put inside your group folder

  • a file with your full names and emails
  • all your activity and reports

make recurrent pull requests to update it.

For example, imagine that Jeanne D'arc and Tintin LeBelge are together in a group called RevolutionX. They create a directory RevolutionX

Groups
    - RevolutionX
        - members.md (names and emails)>
        - report-week01.md (one section for Jeanne, one for Tintin)
        - report-week02.md (one section for Jeanne, one for Tintin)

FAQ

Solving SSH problems in Git/Github

Make sure you have correct configured you authentication setup

  • If you want to use SSH authentication
    • set up your SSH keys with a recent encryption, check github's instructions
  • upload your public keys to github
    • If you want to use HTTPS authentication (or not do the SSH setup)
    • change Icebergs setting, "Metacello Integration" with the value HTTPS imagen
    • create an access token to be able to push (and make sure of giving it permissions by ticking the check boxes)

miage23's People

Contributors

3xtasio avatar axelsenechal avatar benjaminalexandrelille avatar cheyma2001 avatar delgaylord avatar ducasse avatar duklindonut avatar elflora avatar elisa2502 avatar gabinl21 avatar gabriella3620 avatar gacinoufel avatar guillep avatar harrarz avatar kenba18 avatar lucasfournier-git avatar lydiatarmelit avatar lynag16 avatar mehdizse avatar metzo-gh avatar nadiness avatar naysparrow avatar oysiss avatar patriciatot avatar rachidchabane avatar rawanghosn avatar salmazendah avatar sbaka avatar sellahrabah avatar thillelisahnoune avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

miage23's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.