Blog

October 4, 2014

Today we learned about the apprentices handbook. We learned about the codes of conduct, the agreements, and the policies of which we all are required to follow. We learned about general office ethics and workplace professionalism. Most importantly, we learned that it is important to stay consistently on task and to avoid distraction.

On my own, I began to start construction on my Shodor Apprentice Website. I went over basic HTML and CSS with the tutorials provided for us on the Shodor Website.

October 11, 2014

Today we learned about problem solving and the different methods for these tasks. We went through a list of vocabulary terms relating to correctly understanding and computing/analyzing different tasks/problems we are given. We learned differences between consistent and conclusive, proof and evidence, sufficient and necessary as well as convention and definition. Computers calculate in binary, so it is also important to understand that algebra and complex math done on a computer is always approximate (unless it is mathematics calculated from numbers of base 2). I also met with my mentor today.

October 18, 2014

Today, we began the day by learning about modeling. Through a cool exercise with Bob, we learned that we can simplify how we tie knots by representing it with mathematics. We thought about all the different things we could represent with rope. We can represent things visually, behaviorally, and mathematically. We then proceeded to make a model in excel. The excel mathematical model modeled the diffusion of heat. We were able to color code the different parts of the model in order to show the diffusion of heat. We used a limited iterations so it is able to calculate circular formulas. Then we created a disease population model in excel.

November 1, 2014

Today I learned about basic Command Line skills in Terminal, and I learned about the language they are given in, UNIX. I learned about how to manipulate folders, directories, files and other items within Terminal.

November 8, 2014

Today I learned about modeling with agents in a program called Vensim. We learned about Have Boxes, Rate Pipes, Influence Arrows, and knowledge pieces. We created a SIR model; a model representing the spread of disease with the measure of the population of 3 categories: Susceptible, Infected, and Recovered. The influence of "sick fractions" and "recovery fractions" allowed us to manipulate the amount of people who contracted the disease over time. We then learned how to create a live model and replace these constants with sliders, so we can see the effects of changing them.

November 15, 2014

Today, we explored the different types of computer modeling. We began with looking at the more advanced features of Vensim, such as the SyntheSim, a live simulation with editable values. We worked on more advanced graphing and information display from our models. After we finished looking at System based modeling, we began looking at Agent-based modeling in a program called AgentSheets. We created complex SIR models that explained how individuals interacted with each other in a population. I also had a meeting with my mentor Ron today

November 22, 2014

Today, we began group work on our final projects for this semester. I was able to create a Vensim model showing the relationship between tagged fish, untagged fish, and seals in the environment using a predator-prey representation. I was able to create an efficient model, which was visually organized and gave successful results. I was able to add a 4th animal, the tagged seals, and figure out ways to balance the habitat to maintain relatively constant populations of both groups. I was able to output this data successfully to a graph, which modeled the change over time.

December 6, 2014

This Saturday, we spend the day working on and improving our personal projects. I was able to troubleshoot some small lurking errors to my original Vensim model, and then I was able to introduce a new categorical variable of gender. This new variable allowed me to create a more accurate representation of reproduction within the populations of organisms. This model was complicated, and I hope to continue to improve upon it more. I also met with my mentor Ron today, which concludes my final necessary meeting before the winter break.

December 13, 2014

This weekend concludes the final workshop of our fall semester. Today, Andrew Nyland and I gave our presentation of our Fish and Seal predator-prey relationship models in Vensim and AgentSheets. Today we worked very hard on trying to make our material presentable and available to be viewed on both of our websites. I finalized my portfolio to hold this work. After I had all of my required assignments and my presentation completed, I worked on further stylizing my website (under development). Progress can be viewed here.

February 7, 2015

Today we began working with JavaScript. I had already learned quite a bit of this language from previous uses so it did not challenge me much, and after a short refresher, I was very comfortable working with the code. We began the day learning how to think like a computer; how we would choose to carry out tasks in very simple steps if we were a computer. We then began learning about variables, and the different kinds of variables. Integers, floats, strings, and booleans. We finished the day learning a little about loops and more complex applications of the code.

February 14, 2015

Today we worked to further increase our knowledge in JavaScript. We began working with more complex ideas, by using Arrays and loops, and even loops which created arrays. We made a Magic 8 Ball program which would give us a random outputted expression from a group of set expressions stored in an array. The program would randomly choose an integer, and this integer would have a corresponding string (or fortune).

February 21, 2015

Today we continued our work in JavaScript. We began the morning by reviewing some of the more simple elements of JavaScript. We worked with math and loops working with challenges to find certain numbers with certain properties. We then went on to learn about more complex models using arrays. We learned how to define arrays, how to fill values into the cells, and how to view properties of the array (such as length). We created models using arrays to show their practical uses. Finally, we began working with Objects. Objects act similar to arrays in concept although their properties are defined with names rather than numerical values. We learned how to define them and how to apply their uses. I also met with my mentor Ron today.

March 7, 2015

Today we first started our group JavaScript seals and fish model. We began by making the water and algae with random movement of colored orbs. The algae are green orbs that randomly move back and fourth, while the water all moves slowly in a generally similar direction.

March 14, 2015

Today we made the fish, and because we needed to make the fish turn, we used complex trig functions which would draw the fish. Each function took in the argument of an angle, which was used to draw every path of the fish. Below is the code it took to write a single fish.
I met with my mentor Ron today.

function drawFish() {

//Left Fin
ctx.beginPath();
ctx.moveTo(pes.x, pes.y);
ctx.lineTo(pes.x+((pes.size*.15)*Math.cos((Math.PI*.25)+pes.angle)), pes.y+((pes.size*.15)*Math.sin((Math.PI*.25)+pes.angle)));
ctx.lineTo(pes.x+((pes.size*.25)*Math.cos((Math.PI*.66)+pes.angle)), pes.y+((pes.size*.25)*Math.sin((Math.PI*.66)+pes.angle)));
//back to beginning
ctx.lineTo(pes.x, pes.y);
ctx.closePath();
//fill
ctx.fillStyle = "#000011";
ctx.fill();

//Right Fin
ctx.beginPath();
ctx.moveTo(pes.x, pes.y);
ctx.lineTo(pes.x+((pes.size*.15)*Math.cos((-Math.PI*.25)+pes.angle)), pes.y+((pes.size*.15)*Math.sin((-Math.PI*.25)+pes.angle)));
ctx.lineTo(pes.x+((pes.size*.25)*Math.cos((-Math.PI*.66)+pes.angle)), pes.y+((pes.size*.25)*Math.sin((-Math.PI*.66)+pes.angle)));
//back to beginning
ctx.lineTo(pes.x, pes.y);
ctx.closePath();
//fill
ctx.fillStyle = "#000011";
ctx.fill();

//Tail
ctx.beginPath();
ctx.lineTo(pes.x+((pes.size*.45)*Math.cos((Math.PI)+pes.angle)), pes.y+((pes.size*.45)*Math.sin((Math.PI)+pes.angle)));
ctx.lineTo(pes.x+((pes.size*.6)*Math.cos((.917*Math.PI)+pes.angle)), pes.y+((pes.size*.6)*Math.sin((.917*Math.PI)+pes.angle)));
ctx.lineTo(pes.x+((pes.size*.55)*Math.cos((Math.PI)+pes.angle)), pes.y+((pes.size*.55)*Math.sin((Math.PI)+pes.angle)));
ctx.lineTo(pes.x+((pes.size*.6)*Math.cos((1.083*Math.PI)+pes.angle)), pes.y+((pes.size*.6)*Math.sin((1.083*Math.PI)+pes.angle)));
//back to beginning
ctx.lineTo(pes.x+((pes.size*.45)*Math.cos((Math.PI)+pes.angle)), pes.y+((pes.size*.45)*Math.sin((Math.PI)+pes.angle)));
ctx.closePath();
//fill
ctx.fillStyle = "#000022";
ctx.fill();

//Body
ctx.beginPath();
ctx.moveTo(pes.x+((pes.size*.2)*Math.cos((Math.PI*.25)+pes.angle)), pes.y+((pes.size*.2)*Math.sin((Math.PI*.25)+pes.angle)));
ctx.lineTo(pes.x+((pes.size*.55)*Math.cos((Math.PI-.04)+pes.angle)), pes.y+((pes.size*.55)*Math.sin((Math.PI-.04)+pes.angle)));
ctx.lineTo(pes.x+((pes.size*.55)*Math.cos((Math.PI+.04)+pes.angle)), pes.y+((pes.size*.55)*Math.sin((Math.PI+.04)+pes.angle)));
ctx.lineTo(pes.x+((pes.size*.2)*Math.cos((-Math.PI*.25)+pes.angle)), pes.y+((pes.size*.2)*Math.sin((-Math.PI*.25)+pes.angle)));
//back to beginning
ctx.lineTo(pes.x+((pes.size*.2)*Math.cos((Math.PI*.25)+pes.angle)), pes.y+((pes.size*.2)*Math.sin((Math.PI*.25)+pes.angle)));
ctx.closePath();
//fill
ctx.fillStyle = "#000033";
ctx.fill();

//Circular Head
ctx.beginPath();
ctx.arc(pes.x+((pes.size*.1414)*Math.cos(0+pes.angle)), pes.y+((pes.size*.1414)*Math.sin(0+pes.angle)), .1414*pes.size, 0, 2*Math.PI);
//fill
ctx.closePath();
ctx.fillStyle = "#000044";
ctx.fill();
}

March 21, 2015

Today we worked on finishing our JavaScript models. We first began by writing our About page and adding movement to the fish and seals of the model. We then created interactions and realism to the life of the fish and the seals. Both species will die over time, but they can also die quickly from hunger. Seals quench their hunger by eating fish, and fish quench their hunger by eating seals. We then added equations with determine the seal and fish birth rate by taking into account the number of individuals currently there and their health. Also, we introduced tagging. In order to display the tagged fish, we gave them beaconing rings in order to represent the sound the tags give off. The seals are attracted to tagged fish. We finished by adding a graph and model controls. We then presented in front of the class.

April 11, 2015

Today, we began learning the basic concepts of Parallel computing. We started the day by viewing a cluster, and talking about applications and uses of the cluster. We looked at supercomputers of the world and discussed certain vocabulary relating to supercomputers. Vocab include the following

  • Core - Single computing chip within a processor.
  • Cluster - Group of computers.
  • Supercomputer - Group of computers under control of one.
  • Node - Single Computer in a cluster.
  • Petascale - on the scale of 10^15.

We then used a program called BCCD to emulate a linux cluster with all of our computers together. We were able to run models.

April 18, 2015

Today we began working with the language of C. It was similar to the JavaScript we had done before, but rather than a scripting code, C is a compiled code. We began the day exploring different models made with C and how to use terminal to compile these programs. We also learned how we can change properties of the model outside of it through terminal. For the second part of the day, we spent the time focusing on writing in C. The syntax of C is slightly different, and variables, functions and loops are all declared and written differently. For example, instead of declaring a numerical variable with "var = x;", in C you would declare an integer with "int = x;" and a decimal with "float = x;"

April 25, 2015

Today we stepped even more in-depth to the new programming language of C. We learned how to write our own programs, and how in order to do so we must learn to write code much differently than with JavaScript. I have done a lot of Robot programming in the past, and robots were mostly controlled using RobotC (which is C but with a few added libraries) so I was already quite versatile with the programming language itself.
We then learned about how we can implement parallel coding into our projects. How we can split up the tasks of our programs to different cores for processing in parallel. This is done with the addition of this line of code: "#pragma omp parallel"
and including the library for parallel computing "#include <omp.h>".
I also met with my mentor Ron today.