Today was the orientation for the Shodor Apprentice Program.
First we were introduced to Dr.Panoff, who is the director of Shodor. He talked to us about
what Shodor is and the goal of this program. He mentioned that Shodor is
not just coding or programming, its applying and learning coding skills to
create models and simulations. We also took a tour of the building.
During break we played cards and got to know each other.
After break, we set up our accounts and created a public.html folder where
our website will be. I am super excited to get my website started and I want
to learn HTML and CSS so I improve and make my website more advanced.
Today Dr. Panoff talked about sources and how to determine the accuracy of a reliable source. He taught us how not to blindly believe the first thing we find, but to explore and find the most dependable and valid source. We also worked on a challenge problem, which involved finding a mathematical way to prove which coin-maker had an incorrect weight for their coins. How he approached this problem, was defining the amount of coins each of the eight coin makers placed on the weight. After weighing the coins, the amount that the total weight was off from the actual weight, would identify which person was cheating. This made me think logically to find a smart solution. After lunch, we worked on our websites. I started with HTML and did the basic tutorial. Today was a very interesting day, and I look forward to adding CSS to my website design.
Today, I brought my personal laptops and learned how to set up my computer so I can edit my website and access my public_html remotely. This was a long process because we had to download a few programs; PuTTy, which replaced Terminal, Notepad++ which is a Text Editor, and WinSCP. Using these three programs I was able to write code, and make changes, that saved onto my website which is on the Shodor Directory. Joel also taught us some basic functions on vim. He taught us how to create a new portfolio using vim portfolio.html. HE also showed us the different modes; Shift I is insert mode, a lowercase w is written mode, and escape is back to normal mode. This was very interesting and I want to learn more on vim.
Today, Dr.Panoff introduced us to models. We started the day by brainstorming types of models. A few that we discussed were computer models or simulations, mathematical models, and physical models. An important fact I learned was that "ALL MODELS ARE WRONG, BUT SOME MODELS ARE USEFUL." All models are wrong because they are a representation of something, and are never completely accurate. We also viewed an interactive fire simulation on the Shodor website. We entered calculus by discussing derivatives; no change means constant behavior, constant change means linear behavior, and linear change leads to quadratic behavior.
Today was my favorite class so far. We learned about models and created a few models on a program called Vensim. We started class by talking about uses of materials like a rope and a straw, in Physics, Chemistry, and Biology. I said the rope could be used to model air resistance or circular motion. In biology, the rope could be used to model DNA or RNA, and in chemistry it could model the pentagonal shape of a five carbon ring. We then created models using the statement What you HAVE = What you HAD + What you CHANGE. This is the basic rule for many relationships. For example, in the rabbit model I created, the total number of rabbits is equal to the rabbits originally there and the change in rabbit population (number of rabbits born or rabbits died). I created my own model of healthy people getting sick using an infection fraction and I also added a curing fraction to represent the portion of the sick that get cured.
Today, we started the class by discussing a new statement; one object interacts with another object after which the first object now has a property the second object already had. We brainstormed different examples of these models like Elastic and Inelastic collisions in Physics and the spreading of infectious diseases in Biology. We then were introduced to a new program called Agent Cubes. In Agent Cubes I created an SIR with an initial amount of sick people and a larger initial amount of healthy people. I made the rule that if a sick interacts with a healthy the healthy also becomes sick. After completing the basics, I played around with adding more Agents. I included two doctors and a manual doctor that I could control. In Agent Sheets I was able to use he idea that a Noun represents the Agent, an adjective represents a shape and a verb represents an action to create a "society" that depicts how sickness travels through a population. I really like the Agent Sheets program and I am excited to work and explore it more.
Today, we started our first Group Project! We are using the three model creating programs we learned about - Vensim, Agent Cubes and Excel. I am doing the Vensim Model for our Population Change model of a city. We had to create a separate website for our project and I learned how to add a picture to the background of my website by using "Background.jpg" in the sitecss.css. I am proud that I was able to create a website on my own (check my portfolio)! Dr.Panoff helped me a lot with my Vensim model. He taught me that you can have people enter a population from "thin air" which i was getting stuck on. I also think working on the HLD for our project and writing the objectives of our model will be interesting but hard work (Ernie says that HLD Documents are very important).
Today, we started the class by discussing a new statement; one object interacts with another object after which the first object now has a property the second object already had. We brainstormed different examples of these models like Elastic and Inelastic collisions in Physics and the spreading of infectious diseases in Biology. We then were introduced to a new program called Agent Cubes. In Agent Cubes I created an SIR with an initial amount of sick people and a larger initial amount of healthy people. I made the rule that if a sick interacts with a healthy the healthy also becomes sick. After completing the basics, I played around with adding more Agents. I included two doctors and a manual doctor that I could control. In Agent Sheets I was able to use he idea that a Noun represents the Agent, an adjective represents a shape and a verb represents an action to create a "society" that depicts how sickness travels through a population. I really like the Agent Sheets program and I am excited to work and explore it more.
Today... was PRESENTATION DAY! Sahiti (my partner) and I came in during the week to work on the AgentCubes model because she was confused on how to do it. It was a small team struggle but we ended up re-distributing the work so she worked on the HLD and I worked on Agent Cubes. I realized that Agent Cubes is very tedious but it is a very cool visual. We had the first half of the day to finish up our presentations and get all our models linked. Our presentation went very well (according to me). I have really enjoyed this first "session" at Shodor and I cannot wait till we start JavaScript in February!
Today we started JavaScript with an Intern, Anja. She taught us about console.log and how to do basic functions. We also started learning the syntax of it and about Conditional Statements like if and else if. I found the conditional statements a little confusing but I will hopefully work on it more next week. I really liked learning about the symbols like =, ==, ===, && and what they mean. The = symbol for example just sets a variable equal to something like var x = 5. The == statement compares two things just for value like a number 5 can equal a string 5. The === compares two things for value and type so a number could not equal a string. I am really excited to learn more.
Today we learned more about JavaScript. Anja taught us about Loops in the morning and Aaron taught us about Arrays after lunch. I really like loops and I was pretty excited that I understood them. I was able to do the mini project on my own! My favorite loop is the for loop because everything is in one line. I like how you can put a loop into a loop and I will hopefully get better at coding that. One thing I am still learning is the Syntax of JavaScript. Today, after much struggling I realized that JavaScript is very case sensitive which was the problem with one of my projects.
Today was a continuation of JavaScript. We learned more about the syntax for creating and using functions and objects. With functions we learned how to define and call a function and the difference between the two (defining is labeling what the function should do, and calling is making the function run). We also learned some basic functions like function add and function multiply. My least favorite part of functions is having to use the curly brackets - it messes me up! I liked learning about objects much better. Objects are used to group similar data and they are similar to an array wich I already earned about. The most interesting thing was when Aaron introduced the idea of scope to us. The scope is how it would be seen compared to other objects/functions. We learned that the window is always global so there is no need to constantly refer to it. I liked learning the syntax of objects and functions and I am excited to learn more about using them later.
Today we spent most of the class time working on our projects. My partner, Joseph Ma, and I made a little progress but were still confused with the HLD Document. I was able to set up our website for the project and finish the first three steps on our HLD page. I was slightly confused about how to approach steps 5 and 6 but Aaron helped us with it so we got a good start. I am hoping that for next week we can finish the document and make tons of progress on the coding for our project. This is going to be a little more challenging than the previous project because we have less days than everyone else to do it. I am ready to rise to the challenge and get a basic working fire model by the end of next week’s class. I learned the importance of creating a step by step list and having checks for each item because if one part of the code goes wrong, and you do not check it – at the end of the project you will have a lot of work to do.
Today we got to work on our project again. I made a ton of progress with the HLD Document and worked on it with Aaron to finish it. We also got started on the code for our project. I think I worked very diligently and got a lot done today. One major problem for me was in my Forest Fire Model (which you can find in my portfolio) I could not get trees to show up. My ignite fire function was working well but I could not draw trees on my canvas. Ernie, Aaron and Ian helped me with my project this week. Today I also tested the individual steps of our code to make sure each part had no errors. I helped Joseph with the HLD Document and explained what each step meant. It took me some time to figure out all the functions and objects necessary for this model so I explained that process to him. I am hoping by next week I will be able to come into Shodor and work out a few kinks with my model. I want TREES!!
Today was yet another project day and we were able to finish our project! I got TREES and I was able to go through all the code and make a working model. Now all we have left to do is making our main website, from which we can navigate to the actual project and our HLD. I was very happy when our project finally began working and I'm looking forward to presenting it. I also look forward to adding buttons that control the amount of trees and the burn chance. Aaron, Ernie, and Albert all helped me out a lot today, by assisting me when I did not understand something, especially with the color changing functions – which gave me a lot of trouble. Now, other than fixing up some last details to the HLD Document, my Forest Fire model is complete and I think I am ready to present.
Today was not an official Shodor day but because last week’s class slipped my mind, I had to come in to make up the project presentation. I was a little upset with myself for missing class but it was okay because I got to go ahead and present my model on my own since my partner was not there. I think my presentation went pretty well but I also realized there are many ways I could make my model a lot better. I was able to answer the questions Joel and the other mentors asked me but when I was asked about the function of my burn chance I realized that it was not very realistic and it could use some work. Joel and Aaron pointed out places where I could improve my model and make it more realistic like change the burn chance of trees dependent on the distance and type of tree. I really would like to implement those additions soon because I believe this was not my best project and I would like to make it better. I am excited for the next week of lessons considering this project is now done!
Today, I learned about parallel computing. Dr.Panoff and Aaron told us that these next two classes about Parallel computing and series vs parallelism will help with everything else we do so I am excited to learn more of how it relates to everything. I am most proud of my Parallel computing notebook because I completely understood the ideas of parallel data vs series data and how to use parallel thinking. I am excited to learn more about how HPC, high performance computing, can be used in my future career path. I am leaning towards statistics as my career and there are definitely many applications of it for modeling spatial data. I helped Darius with our parallel computing notebooks working on how to identify what data and tasks would be parallel and what would be series. I told him that parallel data and tasks are not dependent on anything else - like a refresh or reset button.
Today was the last Shodor class of the spring! The goal was to finish the parallel computing unit that we started last week. We finished our parallel computing notebooks after finishing the agenda Aaron had for us. After lunch, was my favorite part of the day. Aaron led the entire class through an actual supercomputer which was created by linking the apprentice computers using a Linux operating system. Aaron also showed us some command line, which we used to access a galaxy simulation. I thought it was very interesting because it was really new and I had never actually learned about supercomputers before. I want to learn more about the details of parallel computing, like how to create a program that uses the idea of parallelism. Maybe we will be doing that in the summer portion!
Today was the start of the SUMMER BLOCKS! I actually missed Shodor so today was fun being back with the other apprentices. I like the laid-back more free schedule that we have during summer. We were given a list of projects that need to be completed by the end of this first block and we were given the whole day to start them at our own pace. In the morning session, Ernie gave us an overveiw of our schedule and our duties as apprentices. Today, I started on the HLD Document for our first project. I decided to go with one of the stories Ernie provided for us - the Museum artwork one because I thought it was an interesting and challenging project. I am trying to make my HLD Document very clear and descriptive so it is taking some time but I have gotton through half of it so far. The only problem I had was my computer keep freezing, the rainbow wheel of doom, so I might consider bringing my laptop in from tomorrow. I really liked today and I am excited to finish my HLD and get started on some of the other projects
Today was much more productive for me. I finished my HLD Document and altered it so the user could use it for both AgentCubes and Vensim or Excel. I sent it to Ernie and I am just waiting for review and comments if I need to improve anything. After lunch me, and five other apprentices got the opportunity to meet with a few successful women in STEM and learn how to succeed in our fields. It was cool to hear what majors they took and how finding a job was for them. I was really worried about getting internships before and during college but they gave me some great tips! During break, we engaged in a friendly chess competition and almost all the interns were playing chess during our break. I am excited to start a new project tomorrow - maybe advancing my website or using GIMP because both seem like cool projects to take on.
Today was a very fun and intersting day for me. When I came in this morning - Ernie was coughing (he's sick) on the screen and told us he made comments on the HLD Documents we submitted. I got pretty good feedback, he only told me to change one thing which I easily added. Then I moved onto a new project! I spent my morning working on a responsive web design project. This project is cool because it explained the code behind getting a website to look nice on any screen size. It was very intersting with me cause I am annoyed when I have to scroll left on a page to see the entire thing but by using a responsive web design the webpage responds to the changing size of the window (like on a smartphone). I finished the entire project and updated it onto my portfolio (check it out :). After that, I tried starting working on GIMP which is another project but there was a problem with that so, I instead worked on my final website design HLD. This one is different than others because it is more writing, than coding or function logistics. I hope to finish this by tomorrow. Overall, it was very productive and I got a large cookie during lunch which was a highlight.
Today was not my favorite day because I started working on my partner's (Akash) HLD Model. I worked on AgentCubes the entire day! It was a struggle. In AgentCubes I could not figure out how to to randomize the amount of guests entering the museum because they do not have a random number genorator - instead I had to use a percent-chance system which was not as effective and was much more tedious. One thing I do not like about AgentCubes is how limiting it is- they only have a certain amount of functions to choose from, but I do think the visual aspect of it will enhance my model. Today, I also finished up my final website HLD and I am going to put that up on my portfolio tomorrow. During break, I worked with Aaron on my Agent cubes model and I learned alot from him. Hopefully I will make more progress tomorrow.
Today I worked on my AgentCubes model to further improve it and include more of the features that were on the HLD. I added the function that for each guest they must wait at a piece of artwork for a specific amount of time. I still have to randomize the wait time which will be hard but I am excited to tackle that challenge next week (after a little break). Over the weekend I want to finish my final website HLD and add a few more specifics to it, so next week I can focus just on my two models. In our Shodor group, chess has become a huge thing so during breaks, I play chess against the other apprentices (most of the time I win :). In the afternoon, I was on reception duty, meaning I had to sit at the front desk and answer phone calls (I only got one phone call from Aaron, who was teaching me how to do it - so not very busy). During my reception, I worked on Inkscape and Gimp. It was pretty cool but also a little annoying having to redo my NIKE sign five times (check it out in my Portfolio, it looks pretty cool)! Next week, I will finish Inkscape and Gimp and hopefully my models.
Today was a very annoying day for me because AgentCubes was proving to be a struggle - but the good news is I almost done with my model. I need to include a few more functions but I have most of it done. The most challenging part was probably getting hillclimb to work but I finally figured it out and my guests are moving from one artwork to another using the function. I am going to work more on my model tonight because tomorrow I need to start on my Vensim model (that is going to take a few days too). Ernie was back today and he gave us another project. We get to photoshop a picture of Ernie onto any body we want. I'm excited for that one :). I got a lot done today and I realized the only way to plan an idea for programming is to write it down. Systematically writing down every function and step that I thought would work helped me eliminate a lot of potential mistakes I could have made. I still need to finish my Inkscape and Gimp project, my two models, and the photoshop one so I have a lot of work to do today.
Today I was able to accomplish a lot. In the morning I finished my Inkscape work. Inkscape is a really cool program, although it did give me trouble in the beginning. Once I got used to it, I did make myself a cool and very starry logo! After that, I had lunch with another apprentice and Aaron (a genius and really cool mentor). After that, I dedicated my afternoon to finishing my Agent Cubes model - and I GOT IT DONE! I am so relieved to have that stress off my mind and I am really proud of my model. I learned a lot about AgentCubes while working on it and I think it is very close to the HLD prompt I was given. Tomorrow, I am hoping to start on my Vensim model because it might take me some time to work out the logic of how to convert a model from AgentCubes to Vensim - but hopefully it will turn out just as cool!.
Today was a really fun and productive day for me. In the morning, Adithi and I decided to get everything except the Systems (Vensim) model done so we could focus Thursday and Friday on just those. I think it was a pretty smart idea because today I finished GIMP and the "Photoshop Ernie" project. The GIMP application is also very cool and I think I like it a little better than Inkscape. I discovered the importance of using and defining layers in my images to make it easy to edit. For Photoshopping Ernie, I used both Inkscape and GIMP together because I knew how to do some functions in Inkscape like cropping a photo - which I could not figure out how to do in GIMP, and GIMP's layers were very essential for placing Ernie's head on top of a baby! I also put all my projects in my portfolio on my website. I made a new website page for my Inkscape and Gimp and it took me a little time to figure out how to display the pictures the way I wanted too. Tomorrow, I am going to focus just on Vensim because I have finished all the other projects for this block. I am excited and a little stressed at the challenge of converting my AgentCubes model, and the prompt that goes with it, to fit a Vensim model, but we will see how it goes!
Today, I am not at Shodor because I am at a Fidelity Technology Design Challenge.
Yesterday, I was not here because I was at a Fidelity Technology Design Challenge! It was really cool and we got to do some design thinking. I won 2nd place - a $100 Amazon gift card! Today was the last day of block 1! I am really proud that I finished all the projects for block one and they are up on my portfolio. Today I worked really hard, and I was pretty stressed because my systems model was not finished and I missed a day of Shodor. It ended up being okay because a fellow apprentice, Adithi, really helped me with my model so I was able to finish in time. I think my favorite project of this block was definitely AgentCubes. Although I did hate the modeling tool at some points, after I understood it, it was really fun to use and the logic behind it was cool to learn more about. I also liked getting into the Inkscape and Gimp because I had not worked with designing as often and it was a nice experience to try (but definitely not my forte!) I am excited for Block 4, which is the next block I will be doing. See you in August!
Today Block 4 started! I just came back from my camp in Minnesota and I am ready to get back to work. Today I was way behind all my apprentice peers because I missed the block about PHP. Keith, one of the interns, gave me a quick lesson on it but I still have not completely gotten the hang of it. I completed two projects with PHP and I am getting the hang of the syntax and more importantly I am starting to understand the basic concepts about for loops and arrays that I had forgotten about from JavaScript. I am excited to finish the other projects in PHP and I am planning on doing some more research tonight so I can be fully caught up. I am glad to be back at Shodor and I am honestly really looking forward to creating an interactive part of my website and making it more updated and cool from the basic one I made at the beginning of my apprenticeship.
PHP is not my favorite! Today I started on the PHP projects that were assigned for Block 4. Since I missed two blocks because I was at a summer camp, I have to catch up. PHP was a little confusing for me at the beginning because I had no clue what I was doing. With the help of one of the interns I worked on a dice project that is pretty simple. Using for loops and if statements it creates the probability of getting a sum (between 2-12) from rolling 2 dice a certain number of times. This was a struggle because I was confused about how to combine PHP with the loops and syntax I learned while doing java script. Eventually I was able to create my project (which is in my portfolio :). Overall, today was pretty stressful but I am glad that I understood what I was doing by 4 pm (thanks Aneesha)! Tomorrow I am determined to work on the next project by myself - with a little help from google of course.
Today I spent the entire day working on my Calendar project in PHP. It was a little difficult but I was very proud of myself for completing the entire project by myself. I created the for loops and the if statements on my own. After I got the Months and the dates to appear on the screen, I did have a few formatting issues that Ernie helped me out with. One thing I discovered today was how to combine PHP and HTML and CSS on one file. I had to use HTML in my PHP code so I could create tables for each month of the calendar. I also needed to use css style id and tag to make a nice background for it. On my Calendar I still need to create a formal webpage (with a nice title and everything - because Ernie wants me to) but after that I will almost be done with the PHP projects. I really want to update my website because when I was sitting in documentation for the Scholars program, Dr.Panoff showed off a few of the apprentices websites and mine is still very basic because I missed that block! Hopefully a new and improved version will be up soon!!
Today, I worked on more PHP. I have finally gotten the hang of how to complete the PHP projects and I think they are pretty cool. I worked on two projects today - one called Dane Joe which switches the first letter of the first name with the first letter of the last name. That was fun to work on because I learned how to use different functions to cut and modify strings. I used substr to find the location of the character I wanted to switch and where I wanted to place it. I also worked on a Hexcode project. The hexcode project was basically coding the background of a website to use any color (created by a combination of numbers and letters) when a page is loaded. I did this by creating an array of all the possible numbers and letters and then using a for loop. Check both of these projects out in my portfolio.
I was really happy about today for two reasons. One being I completed all the PHP projects and uploaded them to my portfolio for your viewing pleasure and two, because it's Friday! I am really happy with the progress I have made with PHP and I am glad that I finished most of the Block 2 material in one week. The plan for next week is to work on mySQL (something else I missed) and finally update my website using bootstrap. Unfortunately I have to leave two days early so I need to make sure I finish all the projects before I go!
Today one of the other apprentices, Albert, helped give me an introduction to mySQL which was surprisingly not too difficult. mySQL is an open-source database management system and it can be used with PHP and HTML to create databases. I created a college database which is a list of potential colleges that I would like to attend and information like GPA and acceptance rate that is important. Getting the basic table was not too difficult but Ernie also wanted specific filters on the table as well. The filters for me were slightly harder because I wanted a user to be able to apply 2 filters at once. Eventually using a crop function I was able to get my program to stop having errors (that took forever). I am really pretty happy with my database project and usually I would make it prettier (with some nice css) but I am running short on time! If you are a fellow apprentice or have the permissions to access my database feel free to add on some colleges!!
Today, I kicked it off with some Bootstrap (haha)! I looked up a couple of themes that I like and I found one that I wanted my website to look like. Bootstrap is fun but it is also tedious because it takes a lot of time to copy my old blogs and information into a new format. Overall, I like my new website and how it is starting to look but it does need some changes to the portfolio to get everything updated, which I will do tomorrow! I also spent some time formatting my php pages because they looked very bland. At lunch, me and a couple others engaged in a very heated and intense game of Go Fish - trust me, it was brutal. I'm pretty sad that I am going to be leaving tomorrow because I have really loved my time as an apprentice and working with my apprentice friends! After lunch I had a talk with Levi about what he expects for my presentation tomorrow. Hopefully I will nail it :).
Today was my last day as an apprentice!! I presented four of my summer projects and I think it went pretty well. I presented my Inkscape and Gimp, my Agent Cubes model, my PHP dynamic page and my College database. I also spent some time in the morning working on my bootstrap on my website because I really want an updated website before I leave Shodor. I am planning to apply to be an intern and work on the Google Fiber project. I am excited to be done with this apprenticeship program and hopefully I will become an intern too! Until then, I had a great summer at Shodor and I learned alot - everything from JavaScript and PHP, to Vensim and Agent Cubes.