Joseph Reza's Blog

Today is unfortunately my last day as an apprentice. It's truly saddening to me - Shodor had become a huge part of my life over the past year, and it was always something I looked forward to. I

Shodor has been a great experience ever since 7th grade, when I did my first workshop here. It gave me my first introduction to many computational science principles, and in particular showed me how everything in the STEM field was truly connected. This helped me outside of school too. I've always been interested in STEM, but in particular I wanted to actually use it rather than be shown very small, basic and isolated parts of various fields. Shodor, in this sense, has been the dream come true for me.

Throughout my journey here, I've met countless people that have taught me wonderful things about computing and even myself. I'd like to thank them here:

  • Aaron & Ernie - Thank you guys for giving me the chance to do the apprenticeship, and for leading it wonderfully. I learned a lot about things I had only seen a small touch of before, and finally got the in-depth experience with them I had wanted for so long. I also gained valuable office experience along the way - through ODAA and various other tasks, such as writing this blog! I hope to be an intern and see you guys again.
  • Om - Thanks for everything bud, whether it was being my partner project 1, being there at GH and being super nice. It was great having another Shodorite at my school.
  • Arjun - Thanks for being my partner through multiple projects and being a super friendly dude to talk to. Your help got me through almost all of the spring and the whole time I was here this summer.
  • Jim - Thanks for introducing me to Shodor, and being there the whole way as an intern. Hopefully next year I'll be one too!
  • Rohin - Thanks for all the help throughout the summer and for the good Mafia games.

That's it. I won't be writing any new blog entries (outside of the ones I missed earlier) but I do plan on finishing up the remaining bits of work and becoming an intern. The apprenticeship was a fantastic experience

Block 4 Day 7

8/14/2018

Block 4, Day 4

8/8/2018

Today was my first day back at Shodor after having to miss all of July, and it was great. I finished up my programming research guide, and started on my demos. My first assignment was to create a coin flip demo using for loops, and to display the data collected from there. This one was relatively easy - you can check it out here.

Block 2, Day 1

7/9/2018

Today, I learned about JS and PHP. I had wanted to learn both for a long time - they are perhaps the most important languages for web development right now, alongside Python. In particular, JS runs a vast majority of websites and is absolutely mandatory for any web developer right now. PHP is also widely used, mostly for server-side operations but also some client-side work. I had worked in both before, particularly PHP, but I had wanted to take it to the next level and actually create a website from scratch with it. I went through a research guide for both - you can view it here. I also created sample files for them. I mostly went over basic concepts - flow control, variables, and arrays. It was a good refresher, as I had not worked in PHP for a few months before this and JS was back in the spring.

Block 1, Day 10

6/29/2018

Today, I finally finished my Inkscape logos. The only one left was one of the full name logos. It didn't take too long thankfully, as there were no issues. I then made a web page to display them - you can find it here. It is also in my portfolio. I was able to finish this by lunch. Afterwards, I worked mostly on my modeling project. I was able to make good progress with AgentCubes, and plan on doing Vensim at home. I also managed to be able to do some GIMP work, mostly with collages. I'll have to finish the banners at home

Block 1 has been a lot of fun, and it's sad that it went by so quickly. I feel like it was only yesterday that I came in for the summer. It's been a very productive time for me - managing to learn all of GIMP, Inkscape, fluid web design, how to write professional reports, and working in an office in just 2 weeks. I hope that I'll be able to keep this up for the rest of the summer.

Block 1, Day 9

6/28/2018

Today, I mostly focused on my HLD - High Level Document. I created a model of the Dot Com Bubble of 2002. I wrote up the story and plans for the model - I put a special emphasis on the practices that caused the bubble, and plan on giving users the power to change these practices and see what could have prevented the bubble. The agent model will have tech start-ups spawn from a central bank move randomly in the world, with investors moving around as well. If an investor touches a start-up, the investor invests in it and the start-up gains the invested in status. If an investor funds more than 1, it goes broke and disappears. Start-ups compete with each other by gaining points every time they touch another start-up. If they gain 2, they fail and disappear. After a certain period of time, successful investors give money back to the bank, spawn a new investor, and go back to not investing in anything. If a start-up can stay successfully invested in for long enough, they become an established business, which stays still. These produce funds for the bank over time, and cannot be outcompeted by a start-up. The user can change the number of agents to change the market, and with this see what practices are sustainable and what are not. This will hopefully give insight on the tech sector at the time.

The system model has 4 boxes - the bank, the start-ups, the investors - all represented by one box, the investor pool - and established businesses. The bank starts with 200k, and can fund start-ups every cycle, with each requiring 10k. The user determines how many tech start-ups the bank will fund each cycle. The investor pool can then fund these start-ups, with them also requiring 10k. The user controls how many start-ups the investor pool funds. Half of these become established businesses, which give 12.5k to the bank and 17.5k to investors. The investor pool can also take loans from the bank, with the number of loans being controlled by the user. Each loan costs 7.5k. If the investor pool runs out of money, it takes 50k from the bank. If the bank runs out of money, the market crashes, and the model stops running. shows the balance between the banks, the investor pool, new start-ups and established start-ups that succeed and become established businesses. This allows the user to see what the practices were like and what could have been done to prevent the crash.

I was able to write it up and get approval relatively quickly, which is always a good thing. I also finished my abstract logo. I plan on finishing the name logo tomorrow, alongside as much of the GIMP as possible, and then finishing the GIMP tomorrow night if there's any of it left.

Block 1, Day 6

6/25/2018

Today, I mostly focused on finished up my Inkscape logos. I only had the favicon and full name logos left - I finished 1 full name logo and the favicon. I hope to finish the other full name logo later today or first thing tomorrow. I worked a lot with the various features of Inkscape, moreso than with my other logos - in particular, I worked with the blur, nodes, text, shape, Bezier, and fill tools. The favicon proved to be more difficult than I thought - resizing it took a lot of precision, and the blur effects in particular took me a lot longer than I had hoped. I hope that I'll be able to finish up the GIMP projects by the end of tomorrow - possibly at home tomorrow - and then be caught up with the rest of the program, with my HLD being finished on time.

Block 1, Day 4

6/21/2018

Today, I mostly focused on my Inkscape logos. I finished up my first initials logo - link here.

Block 1, Day 3

6/20/2018

Today was my first official ODAA - morning reception. It was much easier than the first time - I only got 1 call and did it well. It can be nerve-wracking, but it's not bad once you get used to it. There weren't many visitors either, with the few that came knowing what they needed already. I was able to get a good amount done with the time, mostly catching up on the last bit of spring work left over. It was relaxing and productive, and I hope to do it more often. I have afternoon reception next Wednesday, which is good. I don't have any other ODAA this week.


I also got a lot else done. I started designing my first logo in Inkscape - my initials. I mostly used basic Inkscape tools as an introduction - shapes, nodes, and Bezier curves. It was fun and easy to figure out. I hope that with my abstract and full name logos, I'll be able to use more advanced tools, such as layers, meshes & gradients, hexadecimal colors, and much more. I plan on getting Inkscape at home - it's by far the easiest to use image editor I've worked in, and also one of the most powerful. I hope to learn GIMP - I've never been able to use it well, but I've heard it's even more powerful than Inkscape and is also much more flexible, particularly with file types. Graphic design is something I've always been interested in, and I'm glad I get the opportunity to learn it.

Block 1, Day 2

6/19/2018

Today was the second day of the Summer session. We went over our assignments - to create 6 logos in Inkscape, create banners for them in GIMP, and create a new modeling project with a system model (either Excel or Vensim, I plan on doing Excel as Vensim does not work at home for me), an agents model (JavaScript or AgentCubes, I'm undecided on this because JS is more powerful but AgentCubes takes much less time), and a full HLD. We haven't gone over Inkscape yet, so I worked on my unfinished spring work. I hope I'll be able to finish it by tomorrow so that I can move on and catch up with everyone else.

In addition, I also did my first ODAA (Other Duties As Assigned) today. I sat at the front desk for an hour, as both the assigned person and the backup were interns that had to go to a meeting. It was slow - there was only 1 call, and 2 visitors, both of which were parents picking up their workshop students. I was able to do more work at the desktop there, so I didn't lose any time and flowed smoothly in and out of the duty. I have morning reception tomorrow, so I'm glad I was able to practice it beforehand.

First Day of Summer

6/18/2018

Today was the first day of the Summer session! I had been looking forward to this for a long time, as I wasn't really doing much this summer and it got very boring. We mostly went over orientation - our general direction for the summer, our goals, expectations and projects. We didn't go over any new concepts today, so I got time to work on some of the things I hadn't finished during the spring, mostly my portfolio. I can't wait to work on graphic design later this week - I've always found Gimp very confusing, so it'll be nice to learn about it so I can finally use it well at home. Getting back into the groove of Shodor has been a bit tough so far but I'm glad to be back.

Introduction to Programming Concepts

2/3/2018

Today was the first day of the spring semester. We didn't jump straight into programming - the review

Extra Presentation Day

1/13/2018

Today was only for extra presentations, as almost half of the groups did not present last session. This was also a session for us to work on fall projects we had not yet completed. As such, today was extremely helpful for me to get back into the swing of things after the long period of time in between our last session and when I last worked on these. It was a short session - I came in around 12:30 as I had heard that the time between 9 and 12:30 would be only for work on presentations, which was a misunderstanding on my part - but I got a good amount done and hope to finish up all of my work next week!

The Project: Presentations

12/16/2017

Today was our presentation day, the day where everything we had worked on for the whole fall semester came together. My partner and I did make some finishing touches on our project - we were able to bugfix the AgentCubes models and also finished up the website. As for the presentation, I felt it went decently but not as well as it could have. I didn't speak loudly enough for everyone to hear clearly, contrary to what I thought. Our project itself also did not hold up against the critique, and while it was well done, I wish we had still done more with it. That being said, we did do well - our models worked, our scenario was realistic and the data was accurate. I'm proud of our project.

The Project: Day 2

12/9/2017

Today we started on AgentCubes and HTML. The template was provided but we were at least allowed to edit some of the CSS. We got two of our three AgentCubes models done - the third should definitely be done by next session. The HTML site is lengthy but rather straightforward. We changed our model from trees to fish in order to take advantage of AgentCubes more effectively. We did have issues with the death of fish but other than that we were rather productive. There's honestly not much to write because the project is all we did and it's rather straightforward.

The Project: Day 1

12/2/2017

Today we started on our modeling project. This is when we prove our knowledge of modeling and HTML to create a strong presentation. My partner and I wanted to take care of Vensim first, as it is much easier to work with than AgentCubes. We decided to model a tree population - the number of seeds that produce trees, the number of trees that die to disease, etc. Our first 2 notebook models did not have many factors - a good amount of them were only written up in the third model. The difficult part was making the number of seeds produced and the rate of successful germination work without decreasing the number of trees. Fortunately we were able to fix this issue in time to get all 3 steps done. The plan is simple - next session my partner will finish up AgentCubes with me, while I take care of HTML. I'll also be able to work on the HTML page in school (in Google Drive, as I can copy and paste it back into Atom). As of now we are on schedule.

AgentCubes - Healthy Sick Model

11/18/2017

Today we finished up with Vensim. We made a deer population (WIP)

Vensim

11/11/2017

Today we started with Vensim, and I was not disappointed. In the earliest parts of the session, we still worked in Excel. We covered a lot of calculus in discussing and creating our Excel population model, which is always a lot of fun. I have never cared for integration much, as I always found applications of it to be rather confusing, but this session helped me understand it a lot better. Hope fully we'll be doing applications of derivatives a bit more as well, as those tend to confuse me a bit as well. This calculus was honestly the best part of Shodor I had gone through thus far. but Vensim was even more fun. It gave us a visual way to model things, something that Excel lacked - the scroll bar does not give quite as good of a visual impression as the objects of Vensim. It honestly felt quite a bit like object-oriented programming, of which I have a small amount of experi ence with. It felt a lot simpler, however, without the tediousness of Java forcing you to say exactly what you're going to do before you put it in and PHP's objects in general (as PHP is fantastic for web services but not really for general-purpose work). Unfortunately it seems like my mac, or Cyberduck, or something can't handle .mdl and .vdf files because it doesn't seem to be working at home. It's a real shame because it's so much fun.

Models

11/4/2017

Today was rather interesting. We started the morning off defining what a model is. The general consensus seemed to be a visual representation of data. We also learned about many different types of models, such as mathe matical models and hand-waving - yes, hand-waving, I was very surprised when they wrote this - models. We also learned about the different kinds of data they represented - it mostly boiled down to quantitive and qualitative data. We did more work in Excel, which always excites me. However, as Dr. Panoff noted, Excel has its issues, like with its RNG - which he noted to be helpful for educational pur poses at best. We learned about if/else statements - nothing new for me but still intriguing and important nonetheless. We also worked with the math library - I sad ly cannot speak well of PHP's math library, it just makes me sad - and actually a lot of programming concepts in general. All programming languages were made with computational purposes in mind, so it makes sense we're doing it now. I'm excited for Vensim next session. Looking around about it online, it seems to be a tool devoted entirely for modeling, which is always fun.

How Do You Know? Continued

10/21/2017

This week started off with an introduction to computational thinking. It honeslty felt like a continuation of last week's "How Do You Know" lesson, but built upon with stronger applications. For example, we used a spread sheet to gather data and compared Excel to Google Sheets. It started off quite chaotically, with everyone trolling each other on the sheets. Once things settled down, we finally got to actually learning things. In particular, we focused on search results. Many of my fellow peers just used the first search result they got, but thanks to the workshop I had gone to, in addition to 8th grade, I tried my best to use the most credible source I could find (such as the Royal Society of Chemistry), but a lot of the sources were outright flawed all the same (college statistic websites can be pretty unreliable, with colleges paying to be put on the list and whatnot. Afterwards, we finally got to use Excel. I've never been able to get the hang of these spreadsheets and we went a lot more in depth with Excel. While learning about how to use it, we went over the differences between the two softwares. We came to the conclusion that for the purposes computational thinking, Excel is strictly superior as it is more dynamic (I've never cared for Google Drive myself). Lunch was probably the highlight of the day though. We saw some very interesting card tricks performed. I'd also like to apologize for the condition of the break room. I don't know who caused the mess but as a group it is the responsibility of all of us together to clean it up regardless. Next session (where we finally get to focus on spread -sheets exclusively) will be much cleaner for sure. This much I promise.

Second Week, First Real One

10/07/2017

This week, we actually started our lessons! It's nice after that "sunshine, puppies and kittens" session we had. We learned about office ethics in the morning. The ethics was best desribed as conduct, if you count dress code as conduct (which is fair because if you conduct yourself seriously you'd also try to look the part). Office Ethics is becoming increasingly important as companies are looking for the ability to socially interact nowadays. The second half, however, was the best part - How Do You Know? This session was incredibly intriguing. We learned about skeptical thinking - the kind done by the incredible scientists such as Carl Sagan (who wrote a very interesting book about it, though that book concerned itself with pseudoscience rather than the concept of thinking itself) and Richard Feynman. I'm getting to know my fellow peers better as well. It's been going pretty good so far.

How Do You Know? Continued

10/21/2017

This week started off with an introduction to computational thinking. It honeslty felt like a continuation of last week's "How Do You Know" lesson, but built upon with stronger applications. For example, we used a spread sheet to gather data and compared Excel to Google Sheets. It started off quite chaotically, with everyone trolling each other on the sheets. Once things settled down, we finally got to actually learning things. In particular, we focused on search results. Many of my fellow peers just used the first search result they got, but thanks to the workshop I had gone to, in addition to 8th grade, I tried my best to use the most credible source I could find (such as the Royal Society of Chemistry), but a lot of the sources were outright flawed all the same (college statistic websites can be pretty unreliable, with colleges paying to be put on the list and whatnot. Afterwards, we finally got to use Excel. I've never been able to get the hang of these spreadsheets and we went a lot more in depth with Excel. While learning about how to use it, we went over the differences between the two softwares. We came to the conclusion that for the purposes computational thinking, Excel is strictly superior as it is more dynamic (I've never cared for Google Drive myself). Lunch was probably the highlight of the day though. We saw some very interesting card tricks performed. I'd also like to apologize for the condition of the break room. I don't know who caused the mess but as a group it is the responsibility of all of us together to clean it up regardless. Next session (where we finally get to focus on spread -sheets exclusively) will be much cleaner for sure. This much I promise.

Second Week, First Real One

10/07/2017

This week, we actually started our lessons! It's nice after that "sunshine, puppies and kittens" session we had. We learned about office ethics in the morning. The ethics was best desribed as conduct, if you count dress code as conduct (which is fair because if you conduct yourself seriously you'd also try to look the part). Office Ethics is becoming increasingly important as companies are looking for the ability to socially interact nowadays. The second half, however, was the best part - How Do You Know? This session was incredibly intriguing. We learned about skeptical thinking - the kind done by the incredible scientists such as Carl Sagan (who wrote a very interesting book about it, though that book concerned itself with pseudoscience rather than the concept of thinking itself) and Richard Feynman. I'm getting to know my fellow peers better as well. It's been going pretty good so far.

Be Intimidated, Sunshine, Puppies and Kittens are out for you

10/07/2017

Today was orientation day, vital to success in just about anything,
really. We started off learning about the founding of Shodor and what we
as apprentices are expected to learn and do. We reviewed the aprenticeship
handbook. We were given another tour of the building, with all the offices
and labs. After lunch, we began to work on our assignments - as I speak it is
1:56 PM, not too long after lunch but rather close to the end. EDIT: It's now
11:13 PM, got busy this week T_T. Anyways, the rest of the class was just
devoted to work. It's fun.

I'm excited for office ethics! These days, they're quickly becominng
the most important part of most jobs. With competition rising, ethics
are being shoved aside in spite of the newfound demand for them. Promotions
aren't given for knowledge alone. Can't wait for tomorrow :).