Topic outline

  • General

  • Welcome to MODAL-IoT

    During these coming 10 sessions, your teaching staff will be accompanying you in discovering how to conceive, and construct, not just "connected objects", but "IoT systems". One of the key things, which characterises the "IoT systems" in particular, is that it is "operation under constraints" - which forces making choices, and having a broad technological and algorithmic view.

    This MODAL will consist of 4 activities, through which your teaching staff (which you can see to the right) will accompany you:

    • Basic lectures, which introduce key technological concepts for conceiving IoT systems
    • "Amphi's d'ouverture" that try to provide a broader technological view
    • Tutorials, which will take you "from IoT neophyte" to a competent IoT prototype designer, and which will teach you how to program micro controllers, have them talk to each other, to your smartphone, and to the Internet.
    • A mini-project, wherein you demonstrate that you are able to put what you have seen through the tutorials, to independent use.

    And, this moodle page will be the central nexus for information, and discussion, throughout the MODAL. Use the forums, ask questions, discuss, share. 

    Thomas Heide

    Juan Antonio
    Cordero Fuertes

    But most of all: have fun!

    • On the course evaluation

      This course consists of a set of tutorials and a mini-project, for a total of 100 points.

      • Tutorials serve to help students to acquire a certain set of skills. Each tutorial requires a submission of some code, a diagram - and, you should demonstrate what you have done during the tutorial to one of your teachers. It will then be evaluated. 
        • Some simpler tutorials are worth [0-2] points. Other, slightly more complicated tutorials, are worth [0-4] points. And, the largest tutorials are worth [0-10] points.
        • The tutorials appear in the order, in which you should attack them. While we won't force you to strictly follow the order, it is generally a good idea to do so. Think about it this way: if you think a tutorial is too easy, then you should be able to get through it quickly and score the points with no much effort - that sounds like a win.
        • In total, if you do all the tutorials correctly, you will be able to score 60/100 points.

      • The mini-project reflects your ability to put what you have seen during the tutorial into use, independently. Independently means "without following a step-by-step tutorial" - it does not mean that you cannot ask your teachers, or work with a buddy, of course. If you do work with a buddy, however, make sure that you communicate clearly, in all your submissions, with whom you have been working. It's a good idea if your mini-project relates to something that you'd have to be doing anyways, for example as part of your PSC (but, it doesn't have to, of course).
        • The mini-project is evaluated, and will allow you to score up to 40/100 points :
          • The schematics of your IoT system [0-5] points
          • The code (server, Arduino, ...) [0-5] points
          • A mini-rapport [0-5] points
          • The demonstration and presentation [0-25] points
        • If your project is made with a buddy, all submitted files and documents must indicate both your names, and the demonstration will be done together. You may, however, still get different grades depending on your individual performances.

      Literal Grades [A-F]

      Here's how we'll be giving literal grades:

      • There are a total of 100 points up for grabs
      • At least 60 points are required to “pass” the course. Exactly 60 points corresponds to having perfectly (and exclusively) completed all tutorials, and gets a letter-grade C.
      • All students scoring [60-100] points will thus be given A/B/C grades, in accordance with the "note de cadrage" from the Direction d'Etudes.
      • Any instance of plagiarism will be met with an F.

      Numerical Grades [0-20]

      For numerical grades (0-20), here's how we will be grading:

      • Any literal grade of F will result in a grade of 0/20
      • The highest score (in the 0-100 interval), assuming that that score is >80, will be mapped to 20/20
      • The scores (in the 0-100 interval) will be mapped to the 0-20 scale according to a curve that ensure compliance with the "note de cadrage" from the Direction d'Etudes as to the grade distribution curve - which is included to the right.

      A Word On Plagiarism
      Any detected (attempt at) plagiarism will, mechanically, give you an F and 0/20 - and send you to the jury. Fortunately, avoiding plagiarism is really easy, by following these simple rules:

        • If you've worked with a class-mate on some block of code that you submit (in a tutorial, or in a project), then you simply indicate with a comment in your code that "The block of code below was developed in collaboration with my class-mate XXXX XXX" - and if your class-mate does the same, then your teachers may talk to you about the code submission, to ensure that you understand it -- but this is not plagiarism.
        • If you use a library that you find on the Internet, or you copy blocks of code off from StackOverflow or any other WWW-site, then you simply indicate with a comment in your code that "The function below was found on <website>. I modified it as follows ...". Again, your teachers may talk to you about the code submission, to ensure that you understand it - but this is not plagiarism.
        • Of course, if you copy just a single line of code from an example somewhere, then that would not necessarily require that you indicate where you found it, unless that is a really clever line of code. If in doubt, ask your teacher - who will advice you.

      • Mini-Project

        This mini-project is worth about 40% of the final grade. 

        You are encouraged to work on something that is relevant for you -- for example, something that has to do with a hobby of yours, or which may is related to your PSC, etc.

        You are allowed to work with a buddy - but, if you do, you still must make sure that each of you submit all of there required parts, least we won't be able to grade it.

        Finally, while it is a good idea to start thinking about what mini-project you might want to do early, we will not actively start working on that until about halfway-through the MODAL. So don't panic if you don't have a good idea (yet) - talk to your teachers, to your classmates, and be creative.

      • Lectures

      • Basic IoT Tutorials: Wrestling the Arduino Microcontroler

        During this set of tutorials, we will dive straight in to be looking at one of the things at the heart of the IoT: Microcontrollers. We'll get very (very very very) hands-on, with some initial Arduino tutorials, which will serve to ensure that everybody will have a working prototyping-and-testing set-up, which will be useful for both exercises through the following Fridays, which we'll spend together "in the classroom" ... as well as for development of your project".

        Each of these tutorials is intended to introduce specific elements of a "connected object design", such as how to interpret the signal from a "gray code" generating sensor, to how to use digital signals (such as those used in a computer) for emulating analogue values. 

        At the end of each tutorial, you will be asked to submit three files:

          • Your code
          • A diagram of the circuit you built (a PDF file)
          • A picture or a small video of it working (that's why cellphone cameras exist!)
        • Analog Input - Commented Solution Page
          Restricted Available from 31 August 2026, 1:30 PM
        • Proximity Alert! - Commented Solution Page
          Restricted Available from 21 November 2026, 10:00 PM
      • IoT PAN Communications Tutorials

        During the "Basic IoT Tutorials", we saw how to make an object "sense" (analog/digital input) and "control" (analog/digital output) the world. During this session, we will be teaching our objects learn how to listen, and speak, (to each other).

        So, we will be familiarising ourselves with the most common IoT PAN (Personal Area Network) modules through these tutorials: Bluetooth and IEEE 802.15.4

        The former of these is perhaps more common -- with the latter having somewhat more extensive functionality.  

        By the end of these tutorials, you should be able to make your objects talking with each other -- for example, control a light remotely, or even build a multi-hop network connecting wide areas!