Hi! Welcome to the blogs on my Bootstrap website.
Today, August 4th, we had a guest speaker come in from Cisco to speak to us about the Internet of Things. Mr. Rene Daughtry, the speaker, taught us about a lot of valuable things. He started off by explaining what he did. He talked about how he had gone into a room of people who didn't know who he was and asked them to guess what he did for a living. Many people said different things - like a garbage man or a mailman. While they were completely genuine perceptions, they weren't correct. Mr. Daughtry explained to us that other people's perceptions of us were not always correct and that was okay. Perceptions and how others viewed us was a recurring theme in his presentation. From that, the discussion of social media and our presence online stemmed about. He explained to us how, in this day and age, hacking was such a common thing. And, the colleges and places we want to apply to in the future would search our name online and find companies that looked into our social media. Sometimes, the reputation of a student on social media can be a make or break of their getting into a school or company they wanted.
He also talked a lot about jobs and the increasing need for jobs involving technology and engineering in our world. One thing he said that really stuck with me and that I really liked was his explanation of technology advancing in the fast food industry. He spoke to us about how there were machines that took orders of people and accepted their money as well. He said that in the future, the person making the food in the back might also be replaced by a robot. While that means that the $7 an hour jobs might not be necessary, that means that there will then be $30 an hour jobs to maintain those machines and program the code behind them. Back to perception, he also spoke a lot about LinkedIn and how crucial it was in this technology advancing world to keep an online resume, since everyone is just a Google away. He gave us the homework of going home and creating a LinkedIn and keeping that updated. I already had a LinkedIn, but it was primarily so that I could view other profiles on LinkedIn. I want to soon write a resume and put some of my credentials on LinkedIn.
He talked about how it doesn't matter so much who you know, it matters who knows you. He spoke about how he had recommended and connected with many people through LinkedIn. He led that into the high school internship program that Cisco offers. He spoke about how beneficial things like that were and how good they looked on applications. At the end, he answered a lot of questions and gave his information to us to send emails to him. Overall, I thought the presentation was very beneficial and he did it really well.
Today was my last day as a Shodor Apprentice. Ernie told us in the morning that we would be presenting at 11. I had written my script the day before and planned everything that I wanted to present, so in the morning before that, I worked on making my Bootstrap website look nicer and more presentable. I also practiced a couple times for my presentation. When it came time for presentations, I volunteered to go first. I started by introducing myself. After that I explained what we had done in block two and the projects that I was presenting from block two. I explained the projects, the code I had used to solve them, and the difficulties I had in the making of the projects. Then I moved on to block three and described my SQL and the Dice Roller Database. I ended my presentation with the website I had made in Bootstrap. I explained how it was different from my current website and the implementations I had make to change it. I finished with a short conclusion and thanks.
Today, I had morning reception. At reception, I started by working on my Bootstrap website. I had already finished all of the project requirements for this block, so I worked on making my current projects better and more presentable. Google Drive wasn't loading properly at reception, but I also wanted to complete a script for my presentation I'm doing tomorrow. Tommorow is my last day as a Shodor Apprentice! My Bootstrap website was at first just a bunch of randomly placed Bootstrap code that I thought was interesting, but didn't look good or really work properly at all. So, I deleted most of the useless bits of code and watched part of a tutorial and researched Bootstrap to turn what I had into a functional website. I modeled my Bootstrap website after the one that I currently have. In the afternoon, for the first part, I worked on my Bootstrap website and making it look nice. For now, I've done the research, but over my travel and at home, I definitely want to work on my website and Block One stuff, because I think the things other people worked on were really fascinating. Also, one error that I noticed on my website while editing it at home was that, while the CSS of my website works really well with the Macs at Shodor, there's an issue within my website that causes the navbar and most of the changes I've made to go back to their original state and change around. Hopefully, while it's a problem I still have to fix, it's not a problem that I'll encounter while trying to deliver my presentation tomorrow.
In the latter part of the afternoon, Dr. Panoff asked for someone to help with shoulder surfing in SSP, so I volunteered. I actually helped one girl a lot this time! I had a lot of fun shoulder surfing and thought it was really cool how I was the one helping her learn all this really valuable information. When the Scholars kids were doing their reflections, I had my block meeting with Kristen. Unfortunately, this was the last time that I would meet with her as an apprentice, but it was still good to talk about what I've been doing and what I hope to do in the future. Along with shoulder surfing and watching the workshops that the interns teach, it would definitely be really cool to be involved in teaching or helping the workshop kids in the future.
Today, I started by going through and writing my Quality Assuarance Document. I made all of Ernie's requirements sections and I explained what problems I had and how I had fixed them. After that, I searched CSS libraries and learned how to work with them. For my library, I chose to use Bootstrap. So that I wouldn't mess up my whole website, I made a new folder with other documents for Bootstrap. My Bootstrap website is still very much a work in progress, but it's going alright. After lunch, I continued to work on Bootstrap and making my website with it. Also, Caroline and I shoulder surfed for the Scholars Program at the end of the day. While I didn't help them a whole lot, it was interesting to sit in, since I did SSP last year at this exact time.
I started this morning by finishing going through the entirety of my website and fixing spelling and grammar errors. After that, I went and checked all of the links I had linked to make sure they worked. I also made sure that the navigation links between Home, Blog, Portfolio, and Projects worked consistently on each page. I also made sure my projects in my portfolio all worked and that the descriptions were all accurate. I went through all of the requirements Ernie put for the Quality Assurance Document. The only part of it that isn't fully working for me yet is the requirement for all users to be able to access my website part. For some of the morning, I duplicated all of the files and folders in my newdev and gave them the suffix "_public" to differentiate them from the newdev files and then moved them out of my newdev. Unfortunately, it still makes the user have to sign in with a Shodor account in order to view files that are in my newdev. I worked on the QAD for almost the whole morning.
After lunch, I worked on designing my website. My website works consistently in Google Chrome and Safari. Instead of the blogs just all being written out and ordered by date in one big page, I made 4 separate documents for the blocks. The blog has buttons that link to the summer block, the fall block, and the two summer blocks I've done. It looks a lot more organized now and it's easier for me to keep track of things. I edited some other CSS things in my website as well. Caroline had her mock interview in the afternoon, but also had reception, so for 30 minutes or so I took over reception for her. Tomorrow, I'm going to work on fixing the issue with user accessibility in my newdev and finish up the libraries task Ernie gave us. I also have scheduled my final stipend meeting with Ernie for tomorrow after lunch.
At the end of Friday last week, I spoke to Ernie about the problem that I was having with my database in MySQL. He let me know that it wasn't supposed to happen and gave me a hint on how to fix it. This morning I started by fixing it. I just had to make it so that it would only connect on an if statement. Leanne was having the same problem, so she helped me a little bit. Once the last id was properly working, I fixed the form and the CSS. Once I got everything working, I had all the apprentices put their information in the database and then I went and had the apprentices do the same. It all ended up working without the extra spaces in between their results! After that, I wrote the code that we had to query and put it in my syntax guide for reference. Then, I started working on my website. During the afternoon, I was mostly editing the CSS for my website and reading through my blogs, since we had to fix all spelling and grammar errors. It was kind of tedious and boring to go through the blogs, but I'm glad that I fixed the errors I did. After that, it was time to write our blogs and go home.
Today, I finished working on the dice roller database program. The program has forms where the user can put in their information. The user puts in their first name, last name, favorite color, shoe size, and how many times they want a dice to roll. Then, a table is outputted below with the rolls of the dice and all of their information. That was the easier part of the project. The more challenging part was to take the data that the user was inputting and save it to different tables in a database in Sequel Pro. The program I wrote uses PHP, HTML, MySQL, and links them all together. It was really difficult to start off, but I understood it more and more as I worked on it and I learned a lot from it. I worked on the program the entire day and finally finished towards the end. W3 Schools was very helpful in writing my program. After I finished, I went around and asked all of the apprentices to test my program, since that was the next part of the challenge. It all worked! There was a space in the People4 table every time someone inputted their information, I think just because of refreshing and stuff. I'll ask Ernie about it and fix anything if what's happening means it isn't completely working. After I finish all of that, I also have to ask all of the interns to put their information into my program and see if it works. Once I finish all that, I have to stand on one leg and flap my arms like a chicken and then I can start working on analyzing the data that I've collected. The analyzation of the data should be fairly easy, since we've previously used everything that we need in our syntax guide.
This morning, I was working reception. To start off, I went back to my PHP projects I had done in block two and checked the validation on a couple of them. I wasn't sure if I had finished validating one or two of them, so I finished the HTML validation. On Tuesday, I had made an HLD for my website and what I wanted to accomplish with the design of it. Today, I worked on implementing the designs I wanted in my website. I had previously made my vertical navigation bar into a horizontal one. I edited the CSS of my nav bar to make it more aesthetically pleasing and easier to work with. I also added a dropdown menu for Shodor Resources, instead of having it written out on the side. When I came back from lunch, I continued working on my website. I got a lot of parts of it to work the way I wanted it to. I also want to make a logo and make a couple more simple edits and I'll almost be done. After working on my website, I went back to work on the MySQL diceRollerDB program in PHP. It was challenging at first, but after talking through it with Ernie, it became a lot easier and I could keep working by myself individually. Hopefully, I'll finish the diceRoller program and get it fully working by tomorrow.
Ernie gave us a few challenges with PHP and MySQL to work on for today. To start off, we made a new database folder within our newdev. Within that folder, we put a copy of our dice roller program from Krista's Projects. We then edited the dice roller so that the user could only input numbers from 1 to 100. We also made a form and if(isset) statements so that the user could input their favorite color and their shoe size. Then, the program outputted their results. After that, we programmed in MySQL. We created a new table called DiceRoll. We were supposed to use the statements we had used to make the CoinFlip table and edited them to make the DiceRoll. The primary difference between the two tables was that CoinFlip outputted either heads or tails and DiceRoll outputted any number from one to six. Once we wrote all of the code in Atom, we copied and pasted it to MySQL and got it to work. I finished that earlier in the morning. For the rest of the day, I worked on another challenge that Ernie had given us if we were "Feeling Adventurous". It was fairly difficult to work with but I talked to Ernie and he'll help me with the bit I'm stuck on tomorrow. I also spent some time helping Felix and Caroline work on their PHP projects.
Today, we started by working on our MySQL syntax guide until Ernie was ready. Once he was ready, he started giving us a demonstration on relational databases. We used Atom to type out and save all the code that we were putting in the query in Sequel Pro. We made four different tables: People4, Shoe, FavColor, and CoinFlip. Within the tables, we made fields (columns) for what we wanted to define. In our People4, we made an id column and in the other three tables, we made peopleID columns. For People4, we included fName and lName; for Shoe, we included size; for FavColor, we included color; and for CoinFlip, we included results and position. Ernie earlier drew out a map on Google Sheets of how the relational database would work and we referred to that document throughout writing our code. Along with the tables we created, we also added the code for a primary key in People4 and the code for foreign keys in the rest. Once we all had that code, we put the bits into the query and fixed errors until it was up and properly running and all of us had our tables made. After that, we inserted the Google Sheets data into the proper tables and looked at how they all referred back to the People4 table. There was an arrow next to each row of information that, if clicked on, took you to the specific person who inputted that data. By the time we had finished all of that, it was time for lunch.
After lunch, we did a much shorter and more basic demo with Ernie on calling individual fields within tables and joining them together. Once we finished the demo, we worked on our MySQL syntax guide until we had finished all of it. I finished the syntax guide ahead of time, so I started writing the HLD document for my website that the people in block one had already done. Once I finished my HLD, I started working on my website and implementing the changes that I wanted to make. Tomorrow, we'll work on programming PHP with MySQL and doing different projects that we already know, but storing information about them in a database.
Today, we started working on databases. Ernie gave us a quick briefing on databases to start off. We all downloaded Sequel Pro and used the code Ernie gave us to make a table within Sequel Pro. Just like we did with PHP, we got a MySQL Syntax Guide. The table that we made was a table called "People" that listed everybody's first name, last name, favorite color, shoe size, and their result for a flip of a coin. Within the syntax guide, we were given many different functions and we had to figure out the code for them and list the results and the working code. Once we wrote the code, we had to run it through and make sure that it actually worked. Because we got to run it through with examples and make sure that all of our code was correct, I liked the Syntax Guide for MySQL a lot better than the one for PHP. I finished day 1 for the syntax guide early, so I started reading the five page document that Ernie linked for us. After a while, Ernie started explaining ER Diagrams and how they worked while Huny drew the examples up on the board. We're doing a demonstration of it tomorrow. Once we learn about relational databases, we can start working on day 2 of the syntax guide.
Today, I started off by going through and HTML validating all of my PHP programs for Krista's Projects. I also validated a few of the other programs we made, that weren't a part of Krista's Projects, but still needed to be validated. I also worked some on my website, although I haven't finished up everything I want to with my website yet. I also found out that my Background Selector, while it works fine in Google Chrome, doesn't work in Safari. Ameya had the same problem. We talked to Ernie about it and he said that it was something Safari specific and that our code wasn't necessarily wrong. After lunch, I kept working on HTML validating. After break, I sat in the jury for the forensics workshop to determine who was guilty.
Today, in the morning I worked on form validation. I went through all of the PHP programs I had made where there was a $_GET or $_POST box and edited through them, adding the form validation code that Ernie showed us how to do. After I finished with form validation, I worked on the design of my website a little bit. I made my navigation bar horizontal instead of vertical. To change it, I used what I already knew about CSS and web design and I used some of the CSS tutorials on W3 Schools. After lunch, I did documentation for the afternoon forensics workshop. The workshop kids are a day away from their final trial, where they figure out who's been kidnapping people and leaving notes. It was interesting to document for them, because last year I was in the forensics workshop. I took pictures and emailed my documentation. I didn't realize that I had to HTML validate all of my programs, so I'll do that tomorrow.
Today, I finished up the calendar, so I've finished all of Krista's Projects. The user can choose a month out of the 2017 calendar and my program will output the month and the days, factoring in the day that the month starts on. I still have to form validate my Dice Statistics and my Dane Joe programs. After I finish up that, I will have finished all of the requirements for the block. If I have free time, I hope to work on designing my website. I have documentation for the forensics workshop tomorrow, so hopefully I can finish everything by tomorrow morning, so that Friday will be a free day to design my website.
Today, I finished up the XML blog with the added loops. I also started working on the calendar. In the afternoon, I did documentation for the Explorations in Engineering workshop for the high schoolers. While I was doing documentation, Jennifer gave a presentation on interviews. We had to sign up for mock interviews and mine is tomorrow afternoon. I went through the slides she posted at home and practiced for the interview.
Today, we started by independently working on Krista's Projects. Ameya, Leanne, and I started working on the XML Blog together. We got both documents working, but Leanne and I still have to add the loop aspect in. After we worked independently for a little while, Ernie gave us a demonstration on forms. We learned about $_POST and $_GET and how that could be used to store different inputs. We also learned about forms and how they worked. We also used isset to set and determine different $_POSTs. In the afternoon, I did documentation for the Forensics workshop. When I was doing documentation, Ernie gave another demonstration on documentation, which I have to catch up on later.
Today, we started with working on Krista's Projects. I've finished all of Part 1, except for the calendar. The calendar seems to be the most challenging, so I'm saving that to work on last. This morning, I started working on and finished the Background Selector project. Basically, there is a drop down menu of colors that the user can pick from. When the user picks a color, the background of the website changes to be that color. We also had to implement cookies that store the color the user chose. If the user closed out of the website or went to a different site and came back, the goal was that the color they had picked would still appear. The initial setting of the drop down menu and the changing of the background color was the easier part. The more difficult part was using the cookies and getting them to work the way they were supposed to.
Leanne and I worked on the Background Selector together and finished it right before lunch. Today I had afternoon reception. Since I had missed the coin flip demonstration Ernie did on Tuesday because of documentation, I watched the video and followed along with the tutorial in my spare time while doing reception. I also completed and submitted my weekly reflection. Next week, I hope to finish up all of Krista's projects by Tuesday or so and then redesign my website to make it look more presentable.
Today, we started with a demonstration from Miguel on Dynamic Pages, which was one of the projects we had to make as a part of Krista's Projects Part 2. After we finished that, we worked on projects independently for most of the rest of the day. I worked with Leanne on the Dice Statistics program today. Before that, I fixed my Dane Joe program so that it worked for every name and switched both the first letters of their first and last names and the last letters for their first and last names. For the Dice Statistics program, Leanne and I made three different arrays, one for the first dice, one for the second dice, and one for the sum of the dice. We got the dice program working, but my formatting was all messed up. It took some time but eventually the site looked moderately alright and fully worked. After I finished that, I worked on adding the past projects to my portfolio. I still have to work on the Coin Flip project at home and fix the rendering and the embedding of the coin flip document.
Today, we worked on Krista's Projects independently, until Ernie was ready for a demonstration. Ernie showed us how to embed HTML in PHP code with our previous coin flipping document. Also, for part of the morning I worked on my Syntax Guide. I've finished the first and second parts and still have to finish the third part. During the morning, I was working on and finished up my random hex code generator program. The goal of the program was to randomly generate a hex code and change the background color of the page to the color generated. After lunch, Leanne and I started working on the Dane Joe project. The goal of the Dane Joe project was to take a first name and a last name that were inputted into text boxes and switch the first letter of the first name and the first letter of the last name. It took us awhile and some help but eventually we each got it fully working. After I finished both programs, I started working on the style of both projects, since neither were very aesthetically pleasing and the font was too small to read. While changing the style, I used different features in the style tags in HTML.
Today, I was assigned documentation for the morning workshop. The workshop was Advanced Programming Concepts and it was taught by Joel. I wrote up around 2 pages, but shortened it before sending the email. In the workshop, Joel was teaching about drawing with JavaScript and HTML and making different shapes. After the morning break, he taught about animation. For animation, they made a shape and had it bounce from one end of the screen to the other. After lunch, I started on the Random Hex Code project. I had missed the earlier coin flipping description that the rest of the students did in the morning, so it was more difficult to get started. At this point, I have a hexcode being printed out onto the screen, but I haven't found out yet how to make it into a string and then turn the screen a certain color depending on the hexcode. Tomorrow, I hope to finish up the hexcode project and start on another one.
Today was the first day of my summer blocks and the first day of the second block. To start off, we talked about respect in the office and ODAA with Ernie. We went over etiquette when working with the workshop kids and with our peers in general. After that, Ernie introduced us to the Programming Concepts Syntax Guide, which we worked on until lunch. The Syntax Guide had three different columns for researching three different languages. We were assigned JavaScript (which we already knew) and PHP (which we were learning as a group). We also were allowed to choose our own language to research. Since I didn't know C++ and thought it would be interesting to learn, C++ is what I chose for my first language. The research was difficult at times, because with Google, sometimes you could only find forums talking about a specific example instead of a general tutorial. It was difficult to work through what they had done and apply it to and create your own example. We worked on that for nearly the entire morning. For the rest of the morning, we made a NewDev folder in Cyberduck and created the files and folders for our coin program. We went to our website and viewed the empty coin flip document.
After lunch, we started actually programming a coin flipping program in PHP. We had previously programmed a coin flipping program in JavaScript as a group so we knew what needed to be put in and done, we just had to apply it to PHP instead of JavaScript. Ernie was screen sharing and walked us through the steps for creating the program. While we did encounter a lot of bugs along the way, we eventually all got our programs working(ish). When you refresh the page, "HEADS" and "TAILS" randomly appear on the screen back to back in a line of text. The number of times the coin flips depends on how many times you set the loop to repeat. After we reached a point where we couldn't keep working on the coin flipping program, we went back to working on our syntax guides. I finished the first part of the Syntax Guide before lunch was over and got permission to start working on the second and third parts afterwards.
Today we worked in VirtualBox to create our own computers and used Linux as our operating system. We started off by changing a lot of different parts of the computer, like the hard drive, operating system, and memory. It was especially interesting to work with this after learning about parallel computing and how changing different aspects of it can affect the speed, rate, and time it takes to get tasks done. We ran a couple of different programs, changing certain aspects to them in the code and seeing how the programs changed in turn. We also all hooked our computers up together and ran it on different computers with the ones nearby us. We additionally created graphs with the information we had gathered through running the programs and analyzed them.
We started by reviewing the basics of what we had gone over in the notebook last week. Then, we went on to the next activity. We searched for careers that use high performance computing to learn about how what we’re learning in class could be applied in real life. I looked for ways that doctors could use high performance computing. Many articles came up about how computers could replace doctors in the future, but there was one specific one about “Dr. Watson,” a supercomputer that could store way more information than a human doctor could. It did the job faster, more effectively, and knows more than a human doctor would. It was fascinating, but also interesting that the job of doctors could be “replaced” with a computer that was more effective. We then discussed and learned about different careers that used supercomputing. After that, we answered questions in our notebook about the world’s fastest supercomputers, looking at the TOP500 site. We reviewed the questions as a class and discussed supercomputers and their corporations.
After the break, we looked at Little Fe and talked about how it used what we had learned in class earlier. We talked about Blue Waters, saw how it was built, and talked about why it wasn’t included in the TOP500 list and why they opted out. We then saw how Blue Waters could be accessed, with a high security system ahead of it. To use Blue Waters, you have to reserve time, using a scheduler program. We also talked about kilo-, mega-, giga-, tera-, and peta- and what they meant. We shopped for the parts to make our own supercomputers. Little Fe at Shodor cost around $3000, so that was around the range we were going for. I decided to go all out and get something of a little higher price. My grand total came out to $20,489, half of it coming from my cooling fan. Once we finished that, we were done with our parallel computing notebooks. We learned about BCCD and started to work on actual parallel computer programming, instead of just talking about it in theory. Using Terminal, we discovered important things that helped to configure our system and what different commands meant and did. I learned a lot about parallel computing and I’m excited to work with it in the future.
Today, we started by making a copy of the Parallel Computing Notebook, which we accessed through our apprentice docs. After we all made copies that were accessible through our website, we talked about parallel computing, serial computing, what they both were, and examples of the two. We used an already made model to visualize flipping coins in parallel and serial, changing the work size (total amount of coins we wish to flip), maximum amount of time steps, number of parallel workers, and the maximum worker memory (how many coins the workers can remember that they flipped). Our notebooks have a series of questions that relate to the model, depending on changing the different variables and comparing the serial worker to the parallel workers. We discussed the three ways that parallel computing was better than serial. It got the task done sooner, more of the task done, and did it better than the serial worker. We talked about communication versus computation, and how that can change the best type of worker(s) to use.
We then went to Shodor's Interactivate forest fire model for the next part of our notebook, something similar to what we built in the group projects last week. In this model, we used humans as computers. The goal was for nobody to be an idle computer, everybody working and nobody just sitting and watching someone else. We started by assigning ourselves numbers. To simulate message passing that computers do, we passed around Post-It notes to communicate. We each went through the model 5 times with our individual probabilities. We then averaged the percentages and iterations it took for the model to burn out and Aaron graphed all of them. After we finished analyzing the graph, we answered a series of questions about the experiment. Then, we worked on an activity called Domain Decomposition. We tried different ways of changing the workload to see how it affected the number of dependencies. The most number of dependencies happened when the colors were most spread out, not touching each other, at 112 dependencies. The least number of dependencies happened when one color covered the whole model, at 0 dependencies. We talked about dependencies and workload sizes and which models were interesting. We then worked on a parallel "recipe", containing materials, instructions, and dependencies. We used a store example to talk about things that could go wrong, dependencies, and communication. We chose Interactivate models to explain the model and write about parallel tasks and data. We then discussed some of the Interactivate models.
Today, Leanne and I wrote our script, linked our final forest fire model to our websites, and presented. I thought our presentation went well. We accomplished everything that we set out to do in our HLD and I'm really glad that the clicking aspect worked successfully. If we had to add any other aspects to our model, I would add the ability for trees that were burnt to eventually regrow, having some density in the forest. Another aspect that we could add is a percent chance that trees light on fire. Right now, all healthy trees that are adjacent to a burning tree will end up lighting on fire, and it would be interesting to see trees that just didn't light on fire, or took longer to turn to a burnt tree. The part overall that we had the most difficulty with was the clicking into the agent model in order to light a healthy tree on fire, which was difficult and required a lot of help from the interns in order to complete it successfully. It would be really cool to learn how to do everything that the interns did and helped us with and be able to do that from scratch. They explained it well, but I'm not sure if I would be able to remember what we went through in order to apply it to a new model. It was also difficult for us to create the burnt trees and have them fully work, although we did that successfully all by ourselves. I had a lot of fun and am excited for what we'll be doing in April and the next group project!
Today, Leanne and I continued working on our Forest Fire project. We now have the whole model successfully working. The agent model and the graph both work correctly. The user can also click on a healthy tree in order to turn the healthy tree into a burning tree. Next week is the week that we present. Before we present we want to write our script, finish up and link our project to both of our websites, and make sure everything is working. We got a lot of help from the interns with clicking into the model and other things.
Today we started our new group projects. The goal of the project is to change the disease model that was created from a previous predator prey model into a forest fire model. We learned about how these three models aren't really that different when you get into the details of them. Leanne and I are working together. As a class, we all got an HLD document for this model. We had to list out our agents for the model and the behaviors that the model would do. After we finished that, we had to present it to Aaron, the manager, and get it approved before we started working on the model. Our goal for this model was to have healthy trees, burning trees, and burnt trees. The user would click on a healthy tree in order to select it and set it alight. Once a healthy tree was set on fire, it would become a burning tree. Burning trees have a percent chance of turning the healthy trees adjacent to them into burning trees as well. After a certain amount of time steps, the burning trees would turn into burnt trees, no longer able to spread fire or catch on fire.
After Leanne and I got our Desired Behavior/Components section approved, we started working on editing the disease model, in order to turn it into a forest fire model. We kept healthy as healthy, changing the "people" to "trees"; but changed the "sick people" to "burning trees." Then, we changed the html so that the description for our project matched the project idea we had in mind. After that, we went through, looking for all the places where "healthy" was written, so we could additionally add "burnt", so that our new shape would be successfully created. We haven't worked in changing burning trees to burnt trees yet, but have most of the code to do that. After we created a working model, with healthy trees and one randomly placed burning tree filling the grid and all the healthy successfully turning into burning, we wanted to implement the user being able to burn trees by clicking on a healthy tree inside of our agent model. Leanne and I didn't know how to do this, so we got help from the interns, Anagha and Albert. They put clicking into our program, the console log knowing that the healthy tree was supposed to turn red, but we still have more work to do in order for our program to fully work. I also had my monthly meeting with Kristen today and had my stipend meeting with Aaron this previous Wednesday.
We looked at the Console tab in the web inspector again and learned about new things that it can do. We worked with different functions within the Console and learned about and installed a linter, which checks the syntax in code. We looked at how the Console told us where and what our errors were, for most things, and how it could output different random values we could use. We then stopped the food from regrowing, using ESLinter to check our work through the way. We learned about functions being used in JavaScript and how they were defined. In addition to stopping the food from regrowing, we also stopped reproduction and stopped our agents from eating from within the step function. Instead of commenting out variables this time, we commented out functions. We also learned about the correct order to place things in in JavaScript. We also covered calling and defining functions and variables. We also learned about keywords and how they cannot be used for the names of variables or functions. We changed "eating" to "infecting" and edited the functions and then moved them so that they were in alphabetical order. We worked with arrays again and reviewed them. We looked at how to add functionality to the model once we knew what it was supposed to do. Now, the model has sick people and healthy people. When a sick person is next to a healthy one, the healthy person turns into a sick person. The number of people always stays the same, however the number of sick grows and healthy reduces, the model eventually getting to 40 sick people and 0 healthy people. We finished and successfully created a disease model out of a predator prey model!
We reviewed what we went over last time and how the web inspector works. We went to the Console tab in the web inspector and tried different calculations using arithmetic symbols that we already knew of. We learned how JavaScript can even do algebra. Every time the web inspector had a different value entered into it, it changed the "$(number)" sign written in light gray next to the answer. We also learned about how, just as we can parse words, we can also parse code. We also worked with variables in the web console. We learned how to give different values to variables, how to set the value of one variable as the value of another variable, and what defines a variable and what doesn't. We learned about how, unlike in math we learn in school, the equal signs in JavaScript aren't bidirectional. We also learned about using "typeof" and using "==" and "!=" to test if the values were or weren't equal. We also learned about when certain strings or numbers were greater than or less than others. We also learned about adding strings together, known as concatenation, and how we couldn't subtract, divide, or multiply strings. After we finished working on the web console, we went back to the predator prey model that we were changing to a disease model. We edited the description in the HTML so it was describing a healthy/sick model instead of a predator/prey model. We decided to take away reproduction, food, and aging to simplify our model, as those things weren't necessary. We went through the model and commented out all the parts that contained food, removing the food from our graph and stopping it from regrowing in our agent model.
We started off today by listing all the programming concepts we had learned about and taken notes on, what they meant, and how they could be applied in programming. After we went over the list as a class, we talked about Expectation, Observation, and Reflection, a recurring topic in today's discussion. As a class, we listed out the materials that we use for programming and examples of those materials. We learned about different topics, such as obfuscation being used to avoid plagiarism. We worked on programming today, using Atom as our text editor. We went over the predator/prey model that Aaron had already programmed, going through the code and talking about what the different lines meant. Our end goal was to turn the predator/prey model into a disease model, and eventually turn that into a forest fire model. Using Atom, we found all the places where "predator" and "prey" were written, and we've changed some of the "predator" parts to "infected". We also learned about how making backups was a very important thing to do, so that you would have a working copy if you couldn't identify where you made a mistake. We also reviewed why we should save often, to avoid making mistakes that would take more work to reverse than it took to create them. We also learned about using the inspect element function to read code, and saw how Google obfuscated their code so that people wouldn't be able to plagiarise and understand the code.
Ameya, Caroline, and I presented our group project today. We wrote out a script throughout the project and we read from that script while presenting. After introducing ourselves, Caroline and Ameya talked about the Vensim model while I was on the computer going through it. After we finished with Vensim, Caroline controlled the computer while Ameya and I talked about the model in AgentCubes. We all had a lot of fun working on this project. If we did it again, I think we could have added a couple of additions or different aspects to the project that would've made it even better. One of our ideas was to put a "scent" by using hillclimb from our young fish to the deep water, and another one that would guide our adult fish back to the shallow water to lay eggs. Since the random aspect of the movement of the fish would decrease, the population of the fish overall would increase. To keep that in control, we would also add a scent from the predators to each of their prey, so that not only are the fish moving more efficiently, but the predators are catching the fish faster. It would also be interesting to experiment with other factors that could affect the fish. Another idea that we had brainstormed originally as an addition was that we could add an "oil spill" to the agent model, which would slowly affect and kill off the fish and predators in a certain area. In our Vensim model, it would have also been interesting to add predators to the relationship, so it would be more realistic, and the prey wouldn't just be dying of natural causes. We also learned a lot about presentations and ways to present properly and effectively.
Today, I wasn't in class. I was in India visiting family and sightseeing. Caroline and Ameya worked on the group project. They added a fish net, creating another "predator" in the model. They also tried to add a hillclimb, where predators sought out prey and prey went towards the deep end and back, depending on the point in the life cycle that they were in. The hillclimb didn't end up working, but the fish net did. I also added the description for the AgentCubes model in markdown language at home and finished up our script. Caroline and Ameya added finishing touches to both models and we were ready to present.
Ameya, Caroline, and I worked a lot on our group project today. We started by catching Ameya up on what she missed and helping her fill in her notebook and explaining our assignment. After that, we started working on our Vensim model, which was almost completed. The Vensim model represented the life cycle of a fish in a more mathematical way. The fish transitioned from an egg to a baby fish to a young fish to an adult fish and eventually died. While Caroline and Ameya were working on the Vensim model, I started writing the simple code for the website and Caroline and I switched around and added to it as we went on. After we finished up the Vensim model, we started working on our model in AgentCubes. In our AgentCubes model, we started with eggs hatching in the shallow part of the ocean. Eventually, the eggs would either turn into baby fish or "erase" themselves and essentially die. In the case that they turn into baby fish, they kept swimming in the shallow water and regular ocean until they turned into young fish. If the baby fish went into the deep ocean, they died. Once the baby fish turned into young fish, they would eventually make their way to the deep ocean, where they would turn into adult fish. The adult fish would eventually make their way back to the shore and lay eggs and the cycle would continue. After creating the graph in AgentCubes, we added fisherman and people who hunted the fish eggs to make it more realistic. We also started working on our script and are almost done with that and our websites.
Today we started off by learning about using diffusion in AgentCubes. We had already done a diffusion example in Excel, where we averaged the values of the cells around each cell to find its value. In AgentCubes, we used diffusion as a kind of "scent" to draw people towards or away from something. We started off by using it in the example of drawing sick people to a hospital for them to get better. Dr. Panoff showed us how we could also use it in a model which represented bees being drawn to flowers and talked about how we could use it to draw a predator to the prey or the prey away from the predator. Afterwards, we divided up into groups and started brainstorming. Ameya wasn't here today, but Caroline and I brainstormed a lot of ideas before finally deciding on representing the life cycle of a fish with AgentCubes and Vensim. We wrote out our story for AgentCubes and drew our model for Vensim in our notebooks. After getting it approved, we started working on our model in Vensim and we're almost done with it. We also started making the agents and shapes for our AgentCubes and will keep working on it next week.
Today we learned about how agent models and system models compare. We also learned about global and local variables, aggregates, and individuals and how they all relate to modeling. We started off by learning about the basic types and Vensim models and how they can apply to many different things. Then, we started working in AgentCubes. We learned the basics and then made a simple model with "things" moving around on a world. Then, we expanded that to flies bouncing around a room and erasing themselves once they get to a window. After we made those, we got even more advanced and made an SIR model in AgentCubes, with sick people infecting the healthy, and the infected changing back into healthy after a certain amount of time. We also were slightly introduced to diffusion in AgentCubes.
Today, we started off by learning about the equation Have = Had + Change, and how we can apply it in the real world and how we use it in a lot of our classes without even realizing it. We then used Excel to model the population of rabbits and different factors that can affect the population. After we worked in Excel for a while, we moved on to Vensim and modeled rabbit populations with simple life and death factors and then SIR (Susceptible Infected Recovered) populations in Vensim. I also made extensions to the Vensim model, adding in a Recovered population that wasn't there before. It was really fun and really interesting to learn more about modeling and using and applying a system model.
Today, we continued to learn about programming in Excel. We started off with a simple program where we added the cells that stored the value of the number of cats and the cells that stored the value of the number of dogs and stored it in a cell that represented the number of pets. After that, we worked on figuring out how the syntax of Excel works. We also used iterations and learned about them and how they apply to programming. We also used a model to show how heat diffuses in a room, averaging the cells.
Today, I wasn't in class, I was in Michigan visiting family. In class, we learned about basic programming concepts and programming in Excel. We created a coin model that had the same chance of flipping to heads as it was to tails. We then learned how to reiterate it to make the model run repeatedly, finding that the more results we ran, the closer the chances got to 50% and 50%. We found out the percentages by giving a value of 1 to heads and a value of 0 to tails.
Today, we learned about professionalism in a place of work and how to interact with our peers and the staff members. We met Dr. Panoff and he taught us about the origin of Shodor and a lot of other things. We all brainstormed different types of models and how we can apply them to real-life situations. We also learned to question everything, even the places where we get our answers from, such as Google.
Today, we introduced ourselves by pairing up and introducing our partner. We also all went through the Code of Conduct together and talked about basic rules and expectations. We learned how to use our Shodor accounts and took a tour of Shodor. It was really exciting and I'm really excited to become an apprentice.