Checking a tutorial for errors Arduino Programming Course

Hi NOT everybody,

Huh ? Why this red not?
If your blood-pressure rises fast if you read a wrong explanation about coding
or
if you are a friend of high sophisticated coding
or
if the only thing you would post is a IIIIIH !!! EEEEE! about a in your opinion too much simplified explanation

I'm very serios: immidiately close the browser-tab with this thread.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
You have decided to scroll down to see the rest of the posting.
You are free to still close this browser-tab.

If you go on reading, this is your own responsibility to whatever mood-change will happen to you.

I have recommended reading this tutorial

Arduino Programming Course

many times because my opinion is it is easy to understand.

Recently user @alto777 wrote his opinion about this tutorial in another thread

I agree that the paragraph he is complaining about is wrong as explained by user
@gfvalvo in post # 8

I have read the rest of the tutorial and my opinion is: very useful and easy to understand.

But it might be that there are errors inside this tutorial that I am unable to detect because of my limited knowledge.

So my request is to experienced users

that enjoy analysing beginner-tutorials

to read one chapter and in case there is an error to clearly point on this error and to correct it.
As this is a free forum where everybody can post whatever she/he wants I'm aware that I will get answers that other users would explain things different. I can't stop such postings. Me personal I'm interested in checking it for errors. Not so much for different styles of naming variables or different styles of coding or commenting.

So I invite that part of the users

that enjoy analysing beginner-tutorials

to read as much as they like and to enjoy pointing on errors and correcting them.

If you don't enjoy it don't even post. I'd rather this thread only collects 3 replies in a year than it gets crammed with "iggit" comments

best regards Stefan

" The println() function is different from the delay() function in that it has Serial and a dot (.) before it: Serial.println("Text to print.");"

It's not strictly incorrect (the functions really are different), but it is misleading, and the difference isn't explored or adequately explained.

I'm sorry, that's really about as far as I'm going with this one - I'm trying to avoid blood pressure medication.

1 Like

:+1:

3 Likes

What is the procedure for correcting it? Are you able to make the corrections to the contents of that website based on reports of errors made here on the forum thread?

No I can't. It is not my website. I could write to the author but I have doubts that she/he would change anything. The tutorial stays unfinished at chapter 19 for years.
It is personal interest from me. I'm playing with the idea to create a similar tutorial on my own and then improved to be more correct.

In that case, my suggestion would be to select a well maintained basic C++ course as a prerequisite and focus on the Arduino specific parts (e.g., Serial.print() instead of std::cout, setup() and loop() instead of main()¹, pinMode(), digitalWrite(), etc.) in an Arduino introduction course.

¹ A sketch can also use main().

2 Likes

Thanks for the clarification. I think it is good for this to be clear to the participants up front. It is interesting and useful to discuss regardless, but some might be frustrated if they had the impression that suggestions would be acted on.

Not exactly an error, but there is an important omission here and elsewhere:

https://startingelectronics.org/software/arduino/learn-to-program-course/01-program-structure-flow/#:~:text=monitor%20window.-,Writing%20the%20Sketch,-Modify%20the%20BareMinimum

void setup() {
  Serial.begin(9600);
  Serial.println("Hello, world!");
}

This won't work as described for users of native USB boards due to the lack of a while(!Serial) {}.

You might argue that the requirement for using a board with a dedicated USB chip is implied by the stated requirement "Arduino Uno or similar Arduino board (e.g. Arduino Mega)", but I don't think this will be at all clear to the target reader. The native USB boards are increasingly common even with beginners.

Introducing the concept of while(!Serial) {} so early in the tutorial would significantly increase the complexity. On the other hand, setting a requirement that the tutorial can only be used by those with a small subset of the available Arduino boards is also not ideal. So I'm not sure what the best way is to handle it.

Maybe the best approach would be to add the line to the code, but instruct the reader to disregard it during the first parts of the tutorial:

Don't worry about the while(!Serial) {} line for now. It will be explained in chapter n.

1 Like

I think it is wise and much better for the Arduino forum if you spend your own free time reviewing Arduino examples.
This approach has more added value for our Arduino community.

The basic examples are available on github for editing.

4 Likes

no mood changing but I left the tutorial on the first page after seeing how many advertising they fit into the page. They also use 6 trackers to profile you...
Capture d’écran 2023-07-21 à 11.02.08

hope it won't have advertising all over.

PS: note that the forum also has 6 trackers

image

Hello @StefanL38 ,

Good discussion, I've moved it to general discussion as that seems more appropriate.

I'm currently going through it but as doing so i am cross referencing it with the following Arduino Courses that were downloaded on my phone from Google Play Store (as i have Android)

  • Arduino Programming Tutorial - ALG Software Lab
  • Arduino USB Terminal - superus8r
  • Learn Arduino Programming - CODE WORLD
  • Learn Arduino Programming - Study Point

What i noticed initially is this
in the Arduino Learn to Program Course
There really is no intro to the board that is decent ,
something like this..
2023-08-02 13_36_15-learn arduino - Google Search

in one of the apps that i've opened it has all the pins , all onboard components and a tabled explanation of each. (i thought that was cool and very useful)

Now, we can argue

  • This is out of scope for a programming course,
    Ahhh i would disagree

  • We could argue that there is a pre-requisite to this course that is the basic electronics course on the same site,
    Yeah but it's not that great at explaining arduino dev board basics, it kinda says
    here's an arduino board
    here's how you illuminate the onboard LED_BUILTIN
    now let's build a project
    it adds a few caps and resistors and what not and then i noticed that the users on the site are left wondering "what just happened" and "what was the purpose of this and that"

Point being

  • it doesn't cover the board that well initially
  • The pre requisite course is not that great even though the programming course seems good

So my advice when you put together your course is

  • Don't skip the initial board explanations
  • Include some nice full colour photo's with arrows and things as such to make it easy

Beyond that, if we purely just start at "Structure ", yeah, no issues so far

Also just a brief summary of how these app courses approach things

  • Arduino Programming Tutorial - ALG Software Lab
    Now this one has a cool feature, after each section it has a test that you have to pass,
    i thought that was cool

  • Arduino USB Terminal - superus8r
    This one proved to be a wall of text, it had good stuff in it but a huge lack of images.

  • Learn Arduino Programming - CODE WORLD
    This was one was good, Lots of pictures, Good explanations and a very good initial board explanation

  • Learn Arduino Programming - Study Point
    This is useful however takes the approach of....
    Lets go through the example sketches 1 by 1 and just explain how the code works
    in each one instead of teaching the language from scratch.
    i guess there is a benefit to this method... sort of !

Maybe you can incorporate some of those aspects into your course

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.