Rene Daughtry came in from one to two-thirty to talk about his company, Cisco, and engineering. He started by talking about perception, as well as how people perceive him. Mr. Daughtry thought that we have to accept the way people perceive us, but can still strive to change this and build our reputation. Then he brought up the topic of networking and communication, in addition to how this has grown over time. He specifically brought up social media, and how this is used constantly to interact. Next he talked about how computing and its job opportunities have been growing immensely in the past few years. There are so many jobs in this field that pay well and help you move on to even better things. Afterwards, he spoke about the importance of getting started early. He told stories of people who got high-paying jobs straight out of college because they volunteered and got experience early. Then he told us how we specifically could join Cisco toget work experience, an amazing opportunity.
Today I spent my time editing my portfolio. I made the images in my slideshow link to the project if linked, and display a description if hovered over. Then I used my Block 3 page as a model for Block 1, Block 2, and the spring module, though I did not get a chance to add the fall module. Then I made a copy of my portfolio page, where I added buttons to the 3 summer blocks, but do not have links to the remaining modules yet. Graphic design takes a lot of time, so I expect to be doing this for at least another day.
I started this morning by fixing my Calendar program, which had a warning when validated. Next I took screenshots of my Block 3 projects and then started building a slideshow. I used a W3Schools tutorial, where I added a next and previous button with JavaScript. Then I used my knowledge of HTML to turn the images into links. Then Rohin came in and asked if anyone wanted to help workshop students with AgentCubes, and Divya and I volunteered. We helped students with their models for the rest of the day.
This morning I finished quality assurance for my website, and then added my dice database to MySQL. Then I modified my die rolling program so it would store data in MySQL, and made nothing store if a survey question was not filled in. Then I had reception, where I reviewed for my mock interview with Jennifer. I wrote down my strengths and weaknesses, as well as an example for each. Then I went through the interview presentation and role play one last time to remind myself of what the interview will be like. Ten minutes before my scheduled interview time, I asked Divya to cover reception for me and went to see Jennifer. We went over how the Internship interview usually goes, and asked eachother some questions. Afterward I went back to reception for the rest of the day.
Today I started by going through the Block 3 Day 2 videos, which entail how to construct a relational database, and add data to it. Next I finished the Day 2 MySQL guide, where I explained different commands and tested them out. Then I had to start my PHP database project. I edited my die rolling program code, to make it work for this project, and added first name, last name, favorite color, and shoe size. Then I drew out my relational model for this database, but have not yet added it to MySQL. Last I started doing some quality assurance on my website to break up the work.
This morning I had morning documentation for Intro to iPhone App Development. Aaron was teaching this class and Keith was assisting. They were working on a Forest Fire model that included Healthy Trees, Burned Trees, Burning Trees, and Watered Trees, which put out the fire. At break, I went and got snacks for the workshop students, and afterwards I made sure to take lots of pictures. After lunch I got back to working on MySQL. I finished Day 1 on the Syntax Guide, where I even constructed different commands, based on the information Ernie requested. Last, I watched Ernie's video on the ER Diagram, which had CoinFlip, FavColor, ShoeSize, and People.
This morning I had to validate my PHP programs. First I started copying the form validation function into all of my programs with forms, and changed them to accommodate this function, and not use any "dirty" data. Then I started running my pages through an HTML validator, where I found that I was styling my pages in the wrong place, and using the break tag incorrectly. After fixing this, all my programs validated and I went on to watch the interview video. After viewing the presentation, I emailed Jennifer about scheduling an interview, and started to prepare for it. I wrote down some questions I have for Jennifer, and practiced an introductory statement. Next I started on some block 3 work. Here I set up MySQL, and added a table called people. Last I started testing out different commands in MySQL programming Syntax, and will continue to do so tomorrow.
Today I first watched Miguel's tutorial on Dynamic Web Pages, and made my version of the page, which included adding a title, body, and navigation bar. Then I started to code my Background Selector, which is a PHP program where you can choose the background color, and the site will remember what it was, if you go back to it within a day. Next I started working on my XML blog, where I made a simple XML file, and linked it to my PHP page using a for loop. The next program I made was Calendar, which simply asks for the month, and the day it starts on, then displays a calendar based off of that. I managed to complete this project without any help, which I was very proud of. Lastly, I watched Ernie's video on form validation, but was not yet able to apply this to my other programs.
I started today by creating my dice roller. I successfully made it roll two dice a modifiable number of times, but was having trouble using the form, so I watched the Day 6 morning video, which explained how to use forms. After watching this I made my form, then added a table to display the results. Then I had to do my ODAA, which was reception. One parent came by asking for Levi, so I asked Jennifer to go get him. Afterwards, I had a workshop parent fill out a form, and I answered a call from Dr. Panoff. Then I had some time to work on my projects. I finished parts three and four of My Programming Syntax Guide and added it to my portfolio. Then I edited the CSS on my existing PHP programs to make them look better. Lastly I made sure that workshop students signed out and said salutations to people leaving the building.
This morning I sat in the classroom until Aaron got there, monitoring the workshop students, which was a short ODAA. Then we went over Shodor rules as a class, and Ernie told me and Felix to get started on our work. Because I missed block 2, I am working on the block 2 work during block 3. Due to this, I started going over videos of lessons, rather then listening to a lecture with the class. I started by doing the first section of My Programming Concepts Syntax Guide, where I wrote about simple functions in JavaScript, PHP and Python. Then I moved on to the Coin Flip Demo. I completed this program and learned how to embed PHP, as well as render PHP, successfully combining HTML and PHP. Then I got started on Krista's Projects, by editing the Dane Joe and Random Hex Code I already had coded.
Today I started using my knowledge of PHP to make projects. I looked at the PHP projects that past Apprentices did, and made my own version based off of their product. I made a name letter switcher called Dane Joe, a random hex code generator, and a Dynamic Story program. After doing this, Rohin and Ojas asked me to make a boat image for this, which I made with Inkscape and cropped with Gimp. They actually ended up using this on their website, and Jennifer complimented it.
I started the morning by continuing my PHP tutorial, which taught me a lot. I learned how to right arrays, and create classes, which made me able to do more complicated things. After finishing this tutorial, I edited my adaptable website, so the Shodor Resources drop-down menu displayed to the side of the bigger menu. Next, I fixed my interactive website, by making my menu icon appear. Then, I started learning javascript with the Shodor tutorial, where I learned how to define variables and write functions. I found that I could apply a lot of what I learned from the PHP tutorial to this. Then I made a snake game with javascript, which was pretty basic, but still cool. After this, Ernie said that throughout different blocks, I should continue to remake my website if I have extra time. He even showed me example websites of a student who did this.
I had morning reception this morning, so I got to Shodor at 8:30. Aaron showed me how to answer calls, and we did practice runs until I could do so well. I also greeted people as they came in, and told them the time if they were signing in. I got one call, which I successfully transferred to Ron, but otherwise reception was uneventful. I edited my CSS slightly, but TextWrangler was not working, so I could do very little. After lunch I got back to the Apprentice lab, and made my website more adaptive. Then I started to learn how to code in PHP. I used Codecademy for this, because I had already started a PHP tutorial on this website. I more or less learned how to code for loops, while loops, do-while loops, if loops, and basic math functions.
Today I finished making my banners, and uploaded them to my website. Then I got started on my interactive website design. First I made a title section, a navigation bar, a body, and a footer. I colored these all individually then added text to each. Then I added an original logo to my title section, to make my website look more unique. Next I added a drop down menu for Shodor resources, which ended up looking very nice. Last I made my website adaptive by adding a menu button, and taking away elements that looked off with a small screen. When doing this I found that I was using the wrong command; visibility instead of display. Miguel fixed this for me, and then it worked perfectly.
Today Ernie took us through the Gimp tutorial, where we photoshopped images. I made a turtle nebula, a butterfly galaxy, and a picture of Ernie and Aaron playing basketball. Then I worked on designing new logos, and made 2 new initial logos. Then I started remaking my logos into web banners, but have not yet uploaded them to my website. Last I started figuring out how to reconfigure my website, and have copied my pages to start modifying code.
This morning Ernie showed us how to use Inkscape, and we made a seven object collage as a group. Afterwards, I started designing my own logos, specifically my name logos. Right before lunch, Caroline Clary told me that I needed to fill in for lunch ODAA, so I spent the whole lunch hour there. Then I uploaded them all to my website and got started on my interactive website HLD, which I then shared with Ernie to be reviewed.
I started today by going through a website tutorial on how to make an interactive and mobile-friendly website. I had to code new HTML and CSS, in order to make a new page, which looked pretty good when it was done. This took me about half the day, due to the length of the video, but I ended up with a functioning website. Then I made my models more interactive, by adding slider bars with realistic values. Next I started making logos with Inkscape, a program used to make text or image designs. So far I have made a rose logo, a person on a computer, and two CC logos. This was very difficult because I am not very familiar with the technology used in Inkscape.
Today was relatively uneventful. I finished making my agent cubes model, and created my website for the project. I also wrote up descriptions for my agent model and system model, in addition to taking screenshots of the models. Then I started the gimp tutorial, where I learned how to use Gimp to change the quality of images, scale, and crop them. Afterwards I uploaded those photos to my website as well. Next I started writing the HLD for my website, but could not finish, because I had not yet completed the Inkscape project. I started on the Inkscape project, but unfortunately, I did not make much progress.
Today I had morning documentation, so I got a camera and notebook, then headed to the workshop room. The workshop was Exploration in Engineering, and they went over different structures and how they balanced. Next they dealt with trusses where they experimented with different types, trying to minimize compression and tension. After taking a few pictures and notes, we went to break, in which I got their snacks and supervised the students. I finished taking notes and pictures, and wrote up my report after break. Then I returned to normal Apprentice class, and worked on my Bees and Flowers program. Today I made my agent cubes model, and successfully created the program and a graph that shows different population. I noticed that the flowers slowly moved to the hive, which makes sense. Due to this, I would like to make a graph that displays flowers' distance from the hive, but am not sure how to do this yet.
Today we started by learning about ODAA (Other Duties As Assigned). I will be doing morning documentation and workshop break tomorrow, where I will take notes on the workshop, take pictures, and set up the snack. We also went over guidelines for respecting other Apprentices, Interns, and Workshop students, where we talked about helping others and how to act. Next I brainstormed ideas about a project, and decided on a model of flowers and bees. Then I started creating my HLD document to write the description of my project, and the steps in the process. I decided to have bees and three stages of flowers: Seeds, Young flowers, and Adult flowers. Seeds have a certain chance of turning into Young flowers and otherwise die. Young flowers produce nectar and have a certain chance of dying each time step, otherwise they turn into adult flowers. Adult flowers produce nectar as well, and have a pollination count that goes up when they are visited by a bee. If Adult flowers have a certain pollination count they can reproduce. Adult flowers have a certain chance of dying. This is displayed on the screen, along with the graph of different populations. After writing this I got it approved by Ameya, Ishaan, and Ernie. Next I started working on my Vensim model, which I eventually got working smoothly.
Today we started by creating our own virtual computer, bccd, using virtual box. We edited many parts of our computer, like the memory, hard drive, and operating system, where we used Linux as our operating system. We started running a galaxy program, that modeled stars and how they moved in relationship to each other. We changed the number of stars, and cores running the program, by using different commands. We did this to see how this would affect the runtime. In addition to this we ran top in another program, to see what was running. Along the way we figured out how many cores we each have, and how many are in our computer cluster. I learned that our computers only had 2 cores, while the other Apprentices had 4, due to the fact that we have an older computer model. Next, we connected our computers, and had the program actually run on different computers in our group. Last we started creating graphs with this information, and started running other programs.
Today we started working on the parallel computing notebook, by talking about supercomputers. First everyone chose a job they wanted to do or found interesting, and looked for ways that job used supercomputing. I researched theoretical physics, and found that scientists have used super computers to create models of particle interactions. We looked at some of the biggest and most efficient super computers, such as Blue Waters, as well as how they are built. We then examined Shodor's 3 LittleFe cluster computers, and took out the mother boards, going on to create our own LittleFe, by looking for each part of the computer and recording prices. I got a cluster computer with 5 motherboards for about 200 dollars, including a case and cooling system. We then started to get into computing ourselves by opening terminal, and entering some of our own commands, to begin learning how to use it.
Today we started by copying the parallel computing notebook, and linking it to our website. We did this in local accounts, in order to have less beachballs, making it easier to get work done. We started by experimenting with a coin flip parallel worker program, which helped us determine the advantages of parallel computing; sooner, more, and better. We then used parallel computing ourselves; by experimenting with the forest fire model. We had each person have their own percent probability, then Aaron put all the information into a graph. Then we worked individually with a dependency/workload program, which helped us figure out the optimal way to parallel program. Having equal work loads, and very few dependencies can help things be done optimally. Then we made our own recipes, with detailed steps, then turned the recipe into a parallel programming task. My recipe was for making peanut butter cookies, and it had 61 steps serially, and 23 steps when turned into a parallel program. Last, we examined other models, and saw which data and tasks could be made parallel, and which could not. This was a very interesting, yet difficult introduction to parallel programing.
Today Felix and I presented our forest fire model. We wrote detailed script and felt very prepared for our presentation. It went smoothly, and people seemed excited to see another version of a forest fire model. It was very interesting to see how different people interpreted this project. I was most surprised that some people started with the predator prey model, because to me it seemed best to use the disease model. The predator prey models actually worked extremely well, which showed that you can come up with a successful program, even from a very different starting point.
Today Felix and I finished our forest fire model. We first managed to have the fire turn into a burned tree, both on the graph, and on our drawing. Then we started on our website. We wrote code for a new website, and linked it to our home page with a screen shot. We also got to see a few other programs, and got to compare how they made their program to how we did. Most of our time was spent fixing small bugs, but in the end we got a functioning program.
Today we started our group project of turning a disease model into a fire model. I was partners with Felix and we started by changing variable names. This was relatively easy and rewarding work; everything was changed pretty quickly. Then we changed some of our code to make our agents no longer able to move. Next we added in code for a burned tree - a tree after having been on fire. This also went smoothly, but next we had the task of having burning trees turn into burned trees. We had to do a lot of reading over code and figuring out how things work to do this. We were able to have the burning trees disappear, and were even able to display this change on the graph, but were unfortunately unable to finish it. We were never able to have the new burned tree appear on the canvas. Hopefully next week we will be able to get this done.
Today we started by updating our code to make sure we all have the same starting program. Then we learned about linters, which are programs that check syntax as you write. It also checks to make sure you follow programming conventions; like indentation. This is helpful, because you know something is wrong immediately. Then we looked at the coloration of different words, where we saw that purple words are keywords. Keywords are used to declare or do something, so they cannot be used as a variable. Along the way, we tested unknown functions by using the console, helping us understand the code without having to edit it. While organizing the code we changed, we were very careful to keep everything in alphabetical order. This is helpful for both the developer, and future users that look at the code. In addition to this, we had to insure that we did not call any variables before defining them, which would cause the program to crash.
Today we started by using the console part of the web inspector to figure out how it worked, and what different functions did. This taught us the idea of numbers vs. strings and concatenation. We did this to help learn how to figure out the syntax of a new programming language. Then we went back into Atom to continue the editing of the predator-prey model into a disease model. First we replaced all occurrences of predator and prey to, respectively, sick and healthy. We decided that in our model, people would not eat food, reproduce, or age. We started going through the javascript code and commenting out all lines about food. We made sure to keep testing our program, to check that we only erased what we meant to.
Today we focused on understanding a simple predator-prey model, and how to change it. We edited Aaron's code, and began to break down each line. We used Atom as our text editor, which made it easy to slowly turn the program into a disease model. We used the expectation, observation, reflection thinking process to help decipher the code. We also learned how important it is to save different copies of code, incase something goes wrong. In addition to this, we discussed many common programming terms, like pair programming, obfuscation, and mystery meat. We also talked about what someone needs to create a program, to help us understand our goals in this project.
Today Divya, Ameya, and I presented our fish cycle project. We divided up our scrip into sections for different people to read, and I talked about our Vensim model, because I spent the most time on it. I then controlled the computer for the AgentCubes model, which overall went pretty smoothly. Our fish all died out once, but after re-running the program, they stayed alive for a long time. It was a short Shodor day, where I spent a lot of time waiting for other groups to be ready. It was very interesting to see some other projects.
Today Ameya and I worked on our fish life cycle project. First, we edited our website to have descriptions of our models, and the link to our AgentCubes model. Today was mainly a polish day, where we tried to improve our model as much as we could. We added hill climb, so young fish would seek out deeper water, and adult fish would travel back towards the shore. This helped simulate fish migration throughout their lifespan. We also added a fish net, so when fish were directly above it, they would have a certain chance of being "caught" and dying. This was less likely for smaller fish, because they would be more likely to escape. We also drew our own animations for all of the agents, to help make our model look more realistic.
Today Divya, Ameya, and I worked on our group project of a fish life cycle. We worked primarily on our AgentCube model, where we added our different types of fish, and predators. We had three predators, for each different water space, and made the shallow water predator prey only on eggs, and the deep water predator prey only on adult fish. It was very difficult to create the balance between fish birth, and fish death. We had to mess around with chances that prey are eaten when next to a predator, chances they lay eggs, and chances they randomly die to make our model stay relatively constant. If we had fish produce too rapidly, the program would become busy and over populated, but with them dying too quickly, the fish would soon all disappear. Finally, we finished this program, as well as our website, and our script for our presentation.
Today we started our Fall Projects, which I am working on with Divya and Ameya. Divya and I picked our idea of the fish life cycle, and created our basic Vensim model. This includes eggs, baby fish, young fish, and adult fish, which each have a different probability of growing into the next stage, or producing the next piece. This was a very difficult process, because it was the first big part that we did by ourselves, without constant teacher guidance.
Today we did a lot with Agent Cube. This was very interesting, because we could visually see the model, and the individual Agents. Initially, we made a model of flies in a room, that were trying to get out through random movement. There was one window in this model, that if the fly reached, it disappeared. Next we made the classic model of sick people and healthy people, which we quickly counted and graphed. This was an interesting change, because instead of looking at averages, we had individual Agents, that we summed up.
Today we learned how to model population, sickness, and death. We did this primarily with excel, where we modeled the population of rabbits. This included a graph of the population, competition, and multiple variables to help define the population of rabbits. Through doing this, we learned about the relationship of change and behavior. We found that with a change of 0, we had a constant behavior, with a constant change, there was a linear behavior, and so on. This created a knowledge of basic calculus, and helped us understand exactly what we were doing.
Today we studied many basic programing concepts. We went through an accelerated concept course, as to build our understanding, to making future coding easier. Since we have learned why code works, when doing later programming all we will have to learn will be syntax. This sets us up for a future in coding where we will already know the purpose, making it easy to move ahead with clever and functioning programs.
Today we focused on actual code for simple programs on Excel. First, we learned how to add up a large line of results for our coin flip program. Using this tactic, we then made a random walk program, then put our ending x-coordinate on a group spreadsheet to compare probabilities and answers. By doing things this way, we started with very basic knowledge, and built up to more and more complicated programs.
Today we saw how people think, and what reason they have for thinking in that way. We looked at necessary vs. perception, and expectations, through many hands-on activities. We also talked about types of modeling, and what we will be doing in the future. We were also assigned some of our first big homework assignments, including an essay, some questions, and this website.
Today we learned the rules and protocols of Shodor. We went through the Shodor wiki to learn about what we should be doing while at Shodor and how we should act. In addition to this, we went on a tour of the building. We got to see the computer lab, the classroom, and the break room; all places where we will be spending a lot of time. Overall we got to figure out what it is like to live in a work-replicating environment such as Shodor.