Thursday, June 30, 2016

Back to Square One: Conducting Experiments

       Programmers strive in understanding and applying math and algorithms to make their jobs and lives of other around them easier. I myself feel this way, however there is one skill that majority of programmers lack in as they become more proficient in coding. Writing is something that everyone should be experienced in, but this is not the case for programmers. Our jobs usually have us sitting in front of a computer revising code or creating programs or new processes. Since we are exposed to this lifestyle, we tend to have sudden decrease in writing proficiency. I have fallen victim to this stereotype myself. I even took an advance composition class, and even though I have regained my writing skills, it is far more different than writing a research paper.
        After my meeting with Joshua and Dr. Xie, I realized that all of the work that I drafted for the research paper is not the right direction. Dr. Xie mentioned that we had to approach this paper in a more scientific fashion. This means that we needed to create a paper that revolved around the concept of formulating a hypothesis and then carry out an experiment. I believe the last time that I have written a paper in this manner had to be my senior year of high school. Other than that, I have been writing papers in an essay format. Getting myself accustomed to writing in this format has been rather tough for me, but at the same time it has made me more curious and interested in my research. I actually have more enthusiasm in my work because it is forcing me to become more of a critical thinker. With that being said, my research does not stop when a hypothesis turns out to be incorrect, it only goes forward from there by asking the question, "Why?". With deadlines coming up, this will be a challenging few days, but will all be worth it in the end.

Sunday, June 26, 2016

From Accountancy to CS: Code Hunt Research and R Programming


Codehunt Research and R programming
From Accountancy to CS

This is the end of my third year at Illinois and coming from a guided accounting background, I initially had little experience in computer coding aside from experience in visual basic in excel. My background consists of economics, accounting, and statistical analysis. However, this was not a barrier when it came down to learning about my first computer programming language R.

After being introduced to current progress of Code Hunt and the direction in which our research would be headed I began to self teach the basics of R using a program called R Studio. I began watching videos on youtube, Khan Academy, and Lynda to learn about the basics of coding and the functionality of R. My first main task in Code Hunt was to understand the structure of the game and analyze the raw user data to produce statistical analysis based on last years 48 hour player competition.

At first glance R seemed very complex and impossible to figure out without any prior computer programming or coding knowledge. I began testing it out by running simple lines of code to import data sets from .csv files, sorting and creating subsets, learning about building matrices. Next I felt comfortable moving on to plotting data by creating bar plots, and box plots. This took a fair amount of time to grasp the concepts of placing each variable within the code and troubleshooting error messages but nonetheless it was worth figuring out. Now I have created a range of graphs and multitude of R scripts to be used for further analyzing our data.

One of my latest challenges was exploring gitHub and bitBucket for cloning source codes and producing commits, which seem to be common in the realm of computer science. With the help of my team I was able to figure how to use the command terminal to git pull and git push files to finally upload into our team repository. Overall, I feel like every time I open R and begin digging through the data or clocking into the lab and meeting with our team I find more things to learn about which is the exciting part of research.

  • Joshua Reed

Monday, June 20, 2016

Learning from Code Hunt

In the early stages of research, I devoted my time to learn Python programming. To my surprise, the language was rather intuitive and user-friendly. Learning how to program in that language was not difficult at all. The only interesting thing about the language is declaring data types for variables is ambiguous. After learning how to code in Python, my first task was to take a look into the metadata extraction program that a student previously wrote. Originally, this program would iterate throughout all user data in the data release and write certain information about each level into a text file. The only user data that each level consisted of was the amount of attempts the person had on each level. This program does not differentiate between if the submission was in the Java or C# language. After making some modifications and multiple revisions of the data extraction program, the program was able to give us more information about each player's submission. It can also create two data sets; one in Java and one in C#.

For the past few weeks, the research that I have been conducting with my team has been a valuable learning experience. Engineers usually have to implement critical thinking in order to solve problems or decipher data that is presented to them. So far Dr. Xie has helped me and the research team utilize our thinking and problem solving skills to understand what we can learn from Code Hunt users, based off of their submissions. Currently, we are in the phase of gathering materials to write a research paper on our Code Hunt users. There is already a research paper that has been published. What we plan to do is try to draw up conclusions that would be useful to more than one group of people. Those stakeholders include professors in computer science, game designers for Code Hunt, companies that seek to teach their employees how to program, and even the users themselves. There is much more to accomplish in these next 10 days before our first deadline.