Exercises and Research Topics

Click here for the main page.

A designer (in software, hardware, or both) needs to solve problems. So some items are just exercises (i.e.: "try to explain this or do that, as you now should be able to") and some are real-world issues, whether new problems to solve, or a request to find the rationale behind a choice I made. Both require some brain-time: thinking of the problem at large and being creative; I don't care care a lot (or not at all) about the real circuit or the code lines: what is important is finding the right direction, then the implementation is not interesting, it's just clock time to be spent, also called "sweat of the brow" in lawyer speak.

And how can you tell exercises from research topics? It's simple: if you solved it, it was an exercise, otherwise it was a research topic -- I found this pearl by Richard Bellman in The Art of Computer Programming by Donald Knuth.

During the interactive lessons, solutions are provided to some of the problems, sometimes by students, sometimes by me, usually after some brainstorming. Solved problems are marked as such: if you missed the discussion or the solution, please ask me by email. Such brainstorming and solutions happen in RAP mode ("random access problems"): they are not boringly solved in the order they are asked: I want you to think about them, until the time is ripe to disc{uss,lose} each of them.

Exercises that are not going to be solved, because they are just boring "study" items, are marked as such.


Table of Contents

The exercises are divided by lesson, where the lesson is where I proposed the exercise. Each of them may or may not be related to the subject matter, and sometimes they probe forward to later topics.

No more exercises are asked after lesson 03 because of the complete lack of feedback and interest by the audience.


01- Git

Please note that exercise 1.6 is mandatory for each student. You must be able to send me a commit of some sort during this first week, because you'll need to be confident with the procedure later on.


02- C language


03- VPS and PCB design

All circuit references here refer to the TDC device. Some (most) of the questions here a a little advanced, they will be clearer in later lessons, where we start looking at the individual components (esp. the microcontroller) in more detail.

Please note that exercises 3.13 and 3.14 are mandatory for each student. You must be able to send me a key and use ssh or putty to log in remotely, because you'll need to be confident with the procedure later on. As a side note, being able to work on the VPS simplifies, in a way, exercise 1.6 above.


Alessandro Rubini
Last modified: April 2022