The Blog

Parallel Computing

04/21/2018

In our final class on Parallel Computing, we discussed LittleFe, which is a small supercomputer, and its main components. Little Fe has a CPU which runs an algorithm and is protected by a heat sink. There is also a network that exists that allow computers to "talk" to one another through various cables or routers. After our discussion, we compared Little Fe to Blue Waters. We were then able to experiment a bit with parallel computing by connecting all of the apprentice's computers and created a galaxy.

Parallel Computing

04/14/2018

In today's class, we continued on learning about parallel computing by working on our workbook. We worked on Domain Decomposition to gain an understanding of dependencies and workforces. We then created our own recipes to compare and contrast the difference between serial and parallel computing. I created a recipe for a peanut butter and jelly sandwich and was able to conclude that parallel computing takes less steps and may take less time compared to serial computing. However, if a lot of communication has to take place between computers, then parallel computing can actually take a long time. We then explored the vast array of careers that use HPCs through our own research and watching a video. We then did some research to find out some of the best supercomputers in the world (like Titan and Blue Waters).

Presentations and Parallel Computing

04/07/2018

We started off today's class by presenting the projects we have been working on for the last month. It was interesting to see how everyone interpreted the project and came up with their unique extensions. After everyone finished presenting, we were introduced to parallel computing. We started out discussing different cores (dual-core and quad-core) which basically allow for the computer to have more than one computing device. This allows for a computer to work faster if the cores work together. We then did some activities involving parallel computing and learned the difference between series and parallel computing. Parallel computing can solve more problems quicker and better. We also learned about parameter sweeping--sweeping through the parameter model--and message passing--how the computer passes information to one another. We also learned about the bottleneck effect: in order to optimize, one must get rid of the bottleneck--the thing slowing down the code.

Working on the Project

03/17/2018

Today we worked on the javascript model for our spring project. We basically had to convert the code we used on Agent Cubes to javascript. After a lot of debugging, my javascript model finally worked. I really enjoyed working on the javascript model because it gave me a real taste of creating my own code and working as a true programmer.

Working on the Project

03/10/2018

This week we continued working on our project. We finished creating our Agent Cube Model which represents the story we came up with last week. We had to make some adjustments and get approval again, but this just improved our model. Jessie and I also began to work on the html and css code for our website for the spring project.

Project Assignment

03/03/2018

Today we were assigned our spring group project on Forest Fires. Jessie and I came up with a story as well as a plan for our Agent Cubes Model. We plan on having fire move randomly in the world. If fire is next to at least one healthy tree with some percent chance that healthy tree will change into a burning tree. After 5 hours (time steps), the burning tree will become dead. Aerial firefighters move randomly in the world, on trees, and on fire. If an aerial firefighter is on top of a burning tree with some percent chance that burning tree will turn into a dead tree. If an aerial firefighter is on top of the fire with some percent chance the fire will erase. There will be a counter to track the population of each type of tree: healthy, burning, and dead. We got our story and plan for the Agent Cubes Model approved by Aaron, and we will begin implementing them next week.

Programming Concepts

02/17/2018

Today, we discussed more programming concepts--specifically, functions, objects, and libraries. Functions are blocks of code or a set of instructions we can name. Objects are what we store in memory. Libraries are sets of code put together for others to use. We talked about refactoring: changing or rearranging code without affecting its behavior--making the code more readable for the user. One of the most important things we learned was the phrase "Don't reinvent the Wheel." It's the idea that it is better to use code already made than starting from scratch to accomplish the same goal. After our lesson, we implmented our pseudocode and solve the first problem of Project Euler.

Programming Concepts

02/10/2018

Today's lecture was on the continuation of programming concepts. After reviewing last week's concepts, we went over the three different data types: boolean (stating whether something is true or false), strings (putting together information), and numbers (have to be powers of two). We worked with these types of data by using the error console to figure out how they work. Then, we discussed assigning and fetching a variable, and we were then introduced to a problem from Project Euler. We have written the pseudocode to solve the problem, and next week we will be implementing our code.

Introduction to Programming Concepts

02/03/2018

In today's class, we began talking about programming concepts. We listed out the tools of programming: text editor, documentation, programmer, programming language, end user, problem to solve, computer etc. This lead to the discussion of the three main steps a programmer follows: change, save, and run. We also discussed various concepts such as the difference between syntax and semantics (syntax is the symbols you use while semantics is the meaning behind the symbols), the parts of a computer (cpu, ram, processor, memory), and pseudocode versus code (pseudocode doesn't conform to syntax; it is for the user to plan). We also played around with Bouncing Particles in order to see the effects of changing certain perameters on the animation.

Sharing the Project

01/13/2018

Today's class was a workday. We were able to work on our projects and practice presenting them. I finished creating the website using html and css in which my project is on. I then continued to work on my agent models since agentcubes had a bug in which the shapes I was creating were not being properly saved. I finished creating the models and then presented my project to the apprentices and the rest of the Shodor office. I also talked to Ernie and we had a nice discussion on html, and he answered any questions I had about the programming language; through this I learned that if you are unaware what a certain tag will do then trial and error is your best bet.

Working on and Sharing the Project

12/16/2017

In today's class, we were able to work on our projects some more. This week I was working on creating the agent cube models. I first created my story for each model and then created a plan for all of them which were then approved by Aaron. We discussed how the agent cubes could graph the relationship and what was the best way to model this concept. I then created my three agent models. The first model shows the effects high prices and good services have on potential customers. The second model shows the effects marketing and competitors have on potential customers, and the third agent model shows the effects customers have on sales. After we had our work session, many people began presenting their project to the rest of the apprentices.

Working on the Project

12/09/2017

Today's class was a workday in which we could work on our project and get any help as needed. Aaron approved my plan and we further discussed how to improve upon my idea and make it more user-friendly. I created three vensim models. The first one is just a simple one-compartment model of customers and how different factors can increase or decrease the number of customers a company has. The second vensim model is a two-compartment model of sales and customers, and it shows the relationship between customers and an increase or decrease in sales. In the third vensim model one is able to manipulate the last vensim model and change the number of customers and sales and see the effects changing one variable has on the others.

Project

12/02/2017

I was unable to attend today's class, but I watched the videos and went through the supporting documents to make up the class. In this week's class, we recieved an assignment for a group project based upon what we have learned first semeseter. We are to come up with a relationship such as healthy and sick or rabbit and wolves and model them. I have decided to model more of an abstract concept: customers and sales. I will have to create three vensim and three agent models of this relationship and then create a website using what I know of html to present my models and the project itself. I have created my plan for the vensim model, and now, I have to get it approved.

Change and Behavior

11/18/2017

In today's lecture and lesson, we learned the differences between system and agent modeling: system modeling is creating a change to model a behavior while agent modeling is creating specific behaviors to model a change. We learned that in system modeling, it aggregates or combines many models while agent modeling is more interactive. We created a vensim model to showcase the population of rabbits and wolves, and we also used agent cubes for the first time and modeled the relationship between healthy and sick people. In order to make our agent cube model, we had to make a story, plant our code, get our plan approved, and then implement it.

Modeling with Venism

11/11/2017

Today's lecture consisted of the importance of an equation: "Have = Had + Change." We looked at how this simple equation can be applied in various areas: physics, calculus, economis etc. We specifically saw how this equation can be applied to the measurement of a rabbit population. We manipulated different variables and modeled the simulation on excel as well as Venism using symatics. We learned the importance of translating mathematical models into english in order to model situations. Through this type of computational thinking, we used object-oriented programming and modeled the population.

Excel and Modeling

11/05/2047

In today's lesson, we discussed what a model is as well as the different types of models: animal, system, agent, scale etc. From there, we simulated different event such as tossing a coin and the genetics of an offspring by using Excel. In Excel, we learned various functions that helped us model the situations, and I began to understand the importance of syntax. In a model, I can represent what I am thinking on a computer and repeat as many trials as I need. I learned about if/then and ternimal statements as well as a lot of the basic language of programming in Excel.

Computational Thinking

10/21/2017

Today's lesson included a presentation by Dr.Panoff in which he talked about manipulating representation and computational thinking. We went through many examples of math problems and manipulated them in order to find the quickest solution, which is basically computational thinking--coming up with a path to find a suitable solution. Also, we continued on from our lecture last week and looked at different sources in order to find quantitive values but found different websites had different values. Also, we worked on Excel to create functions and create a scroll bar. In the end, this lesson was great in strengthening my computational thinking and teaching us that the internet has no information; rather, it is a place of noise.

How do you know?

10/14/2017

In today's lesson, Ron gave us a presentation, which included a lot of scenarios, on office ethics: what is expected in the work force. Dr. Panoff also gave us an interesting lecture on how to determine if a source is reliable. We shouldn't blindly believe the first search we find; rather, we should always question our searches and their sources in order to confirm the information recieved is correct. For example, if you look up the mass of Mars, different sources have different measurements, and if you look up the population of Durham, the population of each race combined is greater than the value of the population of Durham. Another interesting thing we looked at was how a value we get can change based upon interperation. For example 3/6 minus three 1/6 can either be 0 or almost 0.

Orientation

10/07/2017

Today I learned how to set up CyberDuck in order to access the files I have created from any computer. I was able to learn about FTPs (file transfer protocol) in order to make this process possible. In this process, I created my own webpage where I will be able to blog my journey through this program.