This learning module Tom and James learned about UDP (User Datagram Protocol), which is a communication/internet protocol. UDP allows for the transfer of data without establishing a connection. Tom and James used Java for this learning module to create and utilize UDP sockets (known as DatagramSockets within Java). This week Tom and James decided they would simplify UDP in Java to allows for the sending of simple Strings simulating that of a map with keys and values. Meaning you could send the number 2 with the key "val" and get the number 2 on the other side from the key "val". On the left was just a simple test program that would just receive a message sent to it from the other UDP socket typed in by the user.
This learning module Tom and James would learn cryptography hashing and encryption. They would once again use Java for this learning module. Tom and James would learn about RSA and AES encryption for the sending of data. They would learn about Hashing and Salting for passwords using PBKDF2 with SHA1. Using TCP they would make a simple Account Manager that would allow for storing of data on accounts that would be encrypted and decrypted during and after transfer. The passwords would be stored using hashing and salting. As seen on the left is a simple example of this account manager code (This program also works across multiple wifi networks along with different computers).
This learning module Tom and James would learn about Augmented Reality. They would use Unity and Unity's AR Foundation to accomplish this. Throughout the learning module they would learn about things such as plane detection and ray casting. In the end they ended up making a simple game as seen on the left where you just had to fire lasers at the enemies before they hit you. Also on the left you can see our full presentation along with more videos of our progress.
In this learning module, Tom wanted to get a proficient understanding of Python since it opens the door for so many different opportunities. Tom decided that he would use SoloLearn to help him understand the basics of python and help him in the beginning. After he had thought he had understood the basics Tom decided to do some smaller projects to test his knowledge. The first one was a binary converter which could convert between decimal and binary and vice versa as well. The next was a web scrapper which would give you the first link from DuckDuckGo of what you wanted to search. The final one was making a TCP Server in python. These all worked out great and Tom believes he accomplished his goal of gain a proficient understanding of python. Some examples of Tom's work can be seen below.
In this learning module, Tom wanted to create a functional website and gain a greater understanding of what goes into website development. Tom decided that he would use Sololearn as his main resource introducing him to the coding languages of CSS, HTML, and JavaScript. During this time Tom mainly focused on using CSS and HTML since there are the main components that go into creating the appearance of the website. However, he did use JavaScript to create his button on the website. Also on the left,t you can see my full presentation along with a picture of my final product.
In this learning module, James and Tom learned how to use APIs such as Yelp's API, Amazon Web Service Polly, and Mapbox's map API. James and Tom using these APIs wanted to create a location-based game like Pokemon Go. In the game, James and Tom ended up creating you would receive voice calls in-game from customers and using the Yelp API would ask for an item from a local business. You would then have to go pick up this item and bring it back to a base you placed at the start of the game. Users would also create an account at the start of the game and their passwords would be encrypted and saved with their data on a server. The app was programmed in Unity with C# and the server was programmed in Java.
This learning module James and Tom learned about HTTP, Web Sockets (using ws, socket.io, and other libraries), and Node.js. James and Tom ended up creating three different projects during this final learning module. The first project they made is a Capture the Flag game that allowed you to pick a team and join other people's games online on a website. The second project they made is a simple chat website in which users can join rooms and send messages and images to the other people in that room. The final project they would make is a clone of Kahoot called notkahoot. You could host a game at notkahoot.com/host and create a game at notkahoot.com/create and then play a game at notkahoot.com or notkahoot.com/play. The first project was programmed using Unity WebGL and a Node.js server using ws. The other two projects were made using React and a Node.js server using javascript.