Objectives: 

-Students will combine their knowledge of software and hardware to understand computing on a broader scale: computer networks. 

-Students will understand the function of a web server. 

-Students will be tested on their progress in their Python skills. 

Welcome to Week 7! We have come a long way since the beginning of the quarter. We have been introduced to software, hardware, and have now put together fully functioning Raspberry Pi computers! 

It is time to take things to the next level. For the majority of this course we have been trying to understand how computers work on a singular level, i.e. we have just been looking at how individual computers work. But one of the greatest things is that computing allows us to communicate with others, right? 

Computer networking is a complex and multi-faceted. Go into this lesson with an open mind and do not worry if you do not understand ever detail. At it’s core, computers run on a system. And any system, can be broken down. 

But first….PYTHON POP QUIZ! 

By now, you all should also be caught up with all the lessons we have done so far in CodeAcademy. It is time to put the skills you have learned to the test! Each of you will log into your accounts, pull up a piece of your code from one of the HW’s onto the projection screen, and will have to explain to the class two things: 

     1. What does the program do? 

     2. What does each line in the program do? 

The code you have been chosen to explain has been assigned randomly. This will be graded.

On to the lesson…

What is a server?

A server is actually a computer itself—but not the kind we are used to. The laptops in front of us and the desktops sitting in our rooms back at home are called personal computers. That is to say, they were designed to be used for personal ventures such as internet browsing, gaming, or work. The world of computing stretches far beyond personal computers and we will be exploring that world today with our Raspberry Pi’s. So, what does a server do? 

“It is a computer on a network that provides services to other computers on the network” – Eli the Computer Guy 

Servers run on operating systems specifically designed for this purpose. These O.S.’s are also, very unlike the type of operating systems we are used to. They are not “user-friendly” and typically do not provide a GUI. 

So what type of a computer is a Raspberry Pi?

The great thing about this little device is that you can make it into anything you like. With the right materials, you can build it into a laptop, use it as a desktop, or incorporate it into other non-computing systems. For example, many have implemented Raspberry Pi’s into entertainment systems and robotic systems. 

What is “The Network”?

From your general tech assignments, you have already been doing a little research of your own on computer networks (sms, cloud computing, web pages, etc.). To become a little more familiar with this idea of computer networks, let us watch the following video: 

https://www.youtube.com/watch?v=7_LPdttKXPc

What is a web server? 

Different servers provide different services. The type of server we will be focusing on today is the web server:

“Web servers are computers that deliver (serves up) Web pages. Every Web server has an IP address and possibly a domain name. For example, if you enter the URLhttp://www.webopedia.com/index.html in your browser, this sends a request to the Web server whose domain name is webopedia.com. The server then fetches the page named index.html and sends it to your browser.

Any computer can be turned into a Web server by installing serversoftware and connecting the machine to the Internet. There are many Web server software applications, including public domain software and commercial packages.”

-Webopedia, Vangie Beal

How will we be making a web server with our Raspberry Pi’s?

Over the next two class sessions, we will be turning our Raspberry Pi’s into web servers. This will be done by downloading different types of software onto our systems. Today, we will begin by setting up the apache web server. Apache is one of the top web server softwares currently available. Watch this following video to become more familiar with what apache does (pro tip: watch at 1.25 speed): 

https://www.youtube.com/watch?v=glU-qJb1mD8

From here on out, we will be following this lesson plan provided by the Raspberry Pi Foundation: https://www.raspberrypi.org/learning/lamp-web-server-with-wordpress/worksheet/

It is up to you and your partner to get through the first part, “Set up apache web server” by the end of today. 

Best of luck! 

Homework Assignment:

Please complete the following lessons:

  • Unit 7: “Lists and Functions” + “Battleship!” assignment
  • Unit 8: “Loops” (“Practice Makes Perfect” assignment optional)

Submit your profile link to the raspberry pi email address in order to get full credit.