 So hi everybody I'm Alexander Ladovic. I am an assistant professor at the Polytechnic University in Bucharest in Romania My colleague here is one of my ex-student now a senior student at the same university and an undergraduate TA And he has more than six years experience in teaching and using Linux My main job at the Polytechnic University is to teach computer science in the computer engineering department mostly Linux operating systems and programming a Thought that has been bothering my group for several years is that computer science is kind of becoming like mathematics It's not only an own science But it's distributed in every other field that you can find from fine arts to mechanical engineering to power Engineering and all the fields that you can imagine the same way that we use math we will use computer science for these fields and The question that has been bugging us for years is how do we teach this computer science or the Necessary knowledge of computer science to these other fields So in the future Everybody will need something from computer science It doesn't matter if it's a car mechanics on the car or the electrics on the car If it's an artwork or a robot that moves or it's an automation installation The engineers and the builders of those devices will have to have some basic knowledge of our Algorithms work and how software for devices work So some minimal basic knowledge for these things And this is difficult and I will ask Alex which studied programming devices to share your his knowledge His experience for this in the third year at our University We have a subject at which we have to build and program a microcontroller. So after two years of learning Programming and advanced operating systems We have to create a project for this board It took us several days to to actually achieve this so on Linux and Mac After a few tries it worked for Windows. It was even harder So it is quite easy to understand why for most of my colleagues. This wasn't a favorite subject Now let's take a moment to imagine how this would have been for students with no computer science background. I mean having to Write embedded C code and use advanced Linux commands in order to write the program on the board would have been next to impossible So to tackle this on ten years ago in Italy, we had a project that you know as Arduino researchers at that project decided to teach the usage of computer science of and basic programming to To people that have nothing to do with it like fine artists and people that did electrical engineering Or just people that would tinker and this project is known today as Arduino What they actually did is they took the CPU or the microcontroller that was most used in devices put it on an embedded board for education and Built a really easy to connect device. You didn't need any program or anymore You didn't need a special cable. All you had to do is buy a USB cable They built a really easy Program to write software for the Arduino. It's the Arduino IDE from a computer science perspective. It's a really Bad program like really simple. It doesn't have code completion. It's Nendertal technology, but for somebody that does not do programming every day It was perfect one window copy paste some code modify a little bit run it on the microcontroller and it worked and This is why we have Arduino today and it's used in IoT so much The problem with Arduino is that's limited to devices if you want to connect it Well, we can but it's not advised so we can add a Wi-Fi shield or an internet shield But security is bad over there Second if you want to interact with the internet the C programming language is a really big barrier So Arduino is not that great for connectivity So what about connected devices? We have the Raspberry Pi disappeared somewhere in 2012 and It's really easy to use if you use it as a computer That means you plug in a screen and the keyboard and start writing some code. It's super for kids It's super for people that want to write a little bit of code but They use it as a normal computer. It's not a device and The second problem that it has there's so many languages that you can use So many examples and if you need to hook two of those examples together it becomes a mess So if you want to build a robot or device or something that sits on a rooftop We can't connect the screen and the keyboard and This is a problem. So transferring software to the Raspberry Pi becomes increasingly difficult Students need to know SSH need to know networking need to understand an IP address and some Linux commands and Again Alex will share his experience at one of our programs where we did teach the Raspberry Pi this way Yeah, actually in the ninth grade. I was part of an IOT training It was my first contact with embedded systems and it was pretty hard like we had to find out the IPs of the Boards we had either to scan the networks for for the IP either connect an HDMI cable and a monitor to find out the IP The boards kept changing the IPs. It was really hard And for most of my colleagues which were high school students It was their first contact with a Linux terminal. It was the first time they have seen a Linux terminal at that time And another fact that we were really scared of as people with no computer science background Was connecting the sensors. We were really afraid of frying things So for computer science engineers programming the Raspberry Pi is really easy We talked to several universities. They all said, oh, yeah, it's easy We just SSH into it write some code. Let's computer scientists That means people that dream of this guy or this guy every day But people that are not computer scientists They have a serious problem in using the Raspberry Pi So myself I kept it on a shelf for a year because it was not clear use it as a computer use it as a device For a device. Okay. How do you write code for it? So inspired by the Arduino example we built while you're doing studio This is a really simple user interface. It's a really simple IDE For computer scientists, it's too basic like just write some code But for people that are not in computer science, they write a few lines of code Click a button the program goes to the Raspberry Pi and it's executed It's not just for the Raspberry Pi. It can be used for any embedded device The most important thing that we learned in using this software was the one click run So if they can write the program and click a button and run it Students are super happy if they have to SSH have to copy the program install libraries run it manually Computer science students do it. Um others don't We encourage them to use Python as the Raspberry Pi foundation does this And also we adapted Blockly Google Blockly to write Python code for them This has been particularly useful for students that had the first contact with the Raspberry Pi so When they start building more complex programs, Python is fine But for the first contact, this was great. They would just drag some blocks hit a run. Oh, it works Um, they could also see the python code on the side um What we found out in six years of trying this piece of software and teaching iot to several fields Is that there's three categories of knowledge that they need um One is software for devices so minimum programming skills a minimum algorithmic skills like if else Something like that connectivity This means how to connect devices to the network to bluetooth and how to connect sensors and peripherals to devices And this is something that we learned the hard way some basic security measures Most important change the default password Like it took we had a hackathon and we hooked up some raspberry pies Never bothered to change the default password. We got hacked in five minutes. I think five minutes after connecting them to the internet We got hacked like pies were completely deleted New software was running on them and trying to infect others So basic security measures like change the password Stop the ssh if it's not necessary This is super important for students that are not in computer science um On the connectivity side, um, Alex can share you another story Uh, one thing that the students loved about using the the wider dream studio was the fact that you could Or you could see in the interface listed all the devices like the ip address And another fact is that you can change you can set a name for the raspberry pie so that if the IP address changes because it happens You can still find out which raspberry pi is yours because if you have a larger course and you have at least I don't know 15 or 20 raspberry pies connected Having no way to identify which raspberry pi is yours. It's a nightmare And also, uh, another thing that the students loved is that the fact that they can use visual code like visual programming Because if they have no background on writing code, it really helps them um Having the software deployment issue solved. Um another issue that we had was connecting sensors I cannot tell you how many sensors we fried mostly for bipolarity inversion They just hooked them up in the wrong way. So what we ended up doing I mean if you have one student, it's fine. But if you have 20 or 30 students in a class it becomes difficult. We did a board like this So we used the raspberry pi. I did an extension board with some growth connectors. Um It is impossible to hook them up in the wrong way So for students that were not accustomed to electronics. This was super. I mean, they were just plugging cables They could not put it in the wrong way sensors would just work So this is great besides that we printed we really printed some um objects like stop sign or a house or a windmill So the students could have a feeling of what they're doing not just some sensors hooked up with cables and okay This is a house. But actually it's not a house um And they were really really great for the energetic crew of students. Uh, yeah courses. Um another story that we have Was building a lab. So scaling from three students to 20 students or 100 students is super difficult One is the problem that alex said it was difficult to find out the pies second it was difficult because students were Kept installing Software on the pie. We had to use the pies for several courses. So what we started doing is a boot server Finally the raspberry pi knows how to boot from a network So we designed the boot server that was serving the image for the h raspberry pi teachers were able to pre-install a package of programs Put it on the server Students would just come with while in studio connect to a pie and the programs were mounted on the pie So we did this with a lab with of 20 students and it worked great Like we reduced the time from starting the lab from 45 minutes to about three minutes um So this is the board that we designed we made it for power engineering students students that Learn about nuclear power plants hydro power plants electric power generation and transmission They don't learn computer science What they used to do before having this lab they would program some microcontrollers It was hell for them. I mean nobody wanted the class They were not dropping out because they can't they have to take the class But it was not their favorite After using the boards the 3d prints while you're in studio and the visual environment um Most of the students said it was one of their favorite classes because it was the first class where they saw They can build something and even if it's This device is not something that they will use in the industry. The principles are the same Because power engineering students don't need to code but need to have a basic understanding of coding Need to be able to modify some plcs and some code on some plcs um Because it was so successful, um The first iteration of while in the studio was built kind of organic Like we need to add this and then we need to add this and okay. Let's say what about this one and became a spaghetti code So we made a new version of the while in the studio Which is the same easy to use ide it's focused for iot so connecting to devices hooking up devices And it's easily easy to extend. It's basically a collection of plugins Adding a new device or a new board is super easy um for the moment these is these are the boards that we almost already support um The application comes into flavors either a local application either a web application This was funny. We started with the web application because it was easier for students They didn't have to install anything And then we did some trainings in germany like five years ago And we found out it's illegal for students to have accounts on a third-party server Mostly for high school students So what we had to do we had to somehow make a local application So that's why we have the local application. You just download it. It stores your projects locally. Everything is fine For the web application. It's still easier to use a web application We have a new principle. We store it in your local storage. So none of your data goes to the servers. Everything is locally stored It's fully gdpr compliant, which in europe is a big big issue and Yeah, no account. No name. Just use it in the browser We support most of the browsers that you have today It's open source. It's free It's written in javascript mostly for electron or for the browser But we need your help I mean, it's an open source project. So we would love to have more contributors to it We're hoping to have the code better documented than the first version And we built it in an extensible way We would love to have more translators. I mean we have about seven languages that we translated in But we need more because for students it's super important to have it in their own language And of course because it's a free project. We are looking for sponsors I mean, we do this in our free time And it would be great if we could actually do it more professionally Thank you very much That's the website That's the github repository and we have a technical showcase at 5 p.m Where you can actually try it out If you have any questions Well, thank you