Saturday, July 30, 2016

Asking The Right Questions

As of now we are focusing our efforts to dig deeper into the data that we currently have. So far we have investigated the user data in two categories. One set of the data made a comparison in the performance of both Java and C# users. The other set compared users based off of their declared experience. Users can be beginner, intermediate or advanced users. Our current findings on these two data sets do not say much right now, but we are just scratching the surface. By asking the right questions we can discover more about Code Hunt and how users learn to problem solve.

Possibly looking at other aspects of our data can give us insight to this. For example the data that we were able to analyze gave us some insight to where a programmer can usually struggle. We were able to pinpoint specific puzzles based on our data. Still not every question will lead us to good results, which makes this process difficult. However, it is still a great learning process and it all depends on one's curiosity. Research so far has helped me approach the same information in different angles. Still, more questions need to be asked in order to make a big discovery in terms of educational software engineering.

Saturday, July 16, 2016

Research as a Learning Experience

One of America's founding fathers, Benjamin Franklin, once said "Tell me and I forget. Teach me and I remember. Involve me and I learn". In my own personal academic experience, I have noticed that the majority of the time when I do not understand a subject it is because I have no interest in learning it because I have no part in it. If you attempt to teach me about a subject like art or history, I struggle to maintain interest because I had no part in developing the art ,and the history I am being taught about does not include me. I am able to remember the information but since I have no personal involvement in it I do not learn from it. This in my opinion is one of the major reasons why the mistakes of history are constantly repeated because history is not taught in a way that most people are able easily apply to themselves.

However, research is something that demands involvement in order to be successful. I cannot attempt to research about subject if I do not become enagaged in learning about the subject and drawing connections and conclusions from what I observe. This demand for involvement in turn makes me learn by making me think critically to recognize trends and patterns in my research.

Over this past summer, I have learned more about programming than I ever had in any of the programming classes I have taken in college. Instead of creating some random program which prints out a matrix of randomly generated numbers, I am learning how to use real life variables such as time, skill level, and user attempts to make conclusions on user experiences. This application of programming to analyze real life variables has allowed me to increase my ability to see statistical trends and has also improved my program troubleshooting ability.

Asking for help

One important thing I have really noticed so far from this summer is the importance of asking for help. In the beginning we weren't exactly sure of the end goal and desired results our professor required from looking at all the data. 

 I didn't always feel comfortable asking extra questions or saying I'm lost or don't understand in the beginning of our research because I didn't want to seem incompetent. 

Keeping in contact with the professor through emails and office meetings has helped out to make sure that the ideas we come up with are aligned with the goals of our overall research.

After working for some time now I understand that there will always be questions. Asking questions helps everyone work together to reach a better understanding and learn together. 

Group Experience

So far this is my first experience working with a large team to collaborate on research as a group. Accounting and other courses helps teach students how to collaborate  and delegate tasks from a rubric or assignment but it's not necessarily the same as research. 

Since this project is more of an ongoing research project we all have to work together and lean on each other to get different parts completed in a timely fashion. Unlike some group work in the classroom where either somebody does all of the work of each person does the same assignment on their own and then comes together as a group to discuss the findings. 

From our team so far each person is able to bring their own set of specialized skills and use them to help with our overall research project. I like being able to use what I'm learning in R to analyze our data and create statistical graphs to add for our research paper submission. 

When we are able to get together in the lab and work side by side it helps for brainstorming ideas and troubleshooting with minor coding errors or writers block. I'm excited to receive our first feedback from Microsoft. 

Admitting Ignorance

Often times while I was working on analyzing the dataset I came to a problem with my program which I was not sure how to solve, and since I had already taken a class about Python I was sure that I could find some way to fix the problem myself. However, eventually I realized that I did not know how to solve the problem. My pride in my own personal knowledge was impeding my ability to fulfill the job that I was supposed to do, and I noticed that this is not a problem that I only have.

I have only had the opportunity to take three computer programming classes in college, but in all those classes I have been able to meet students who have the same problem I have. They have previous experience programming in the language which is being emphasized in the class and because of that they refuse to listen to the professor because they beleive they know more than the professor. Because of this, they refuse to listen to the professor's advice and often are stuck in office hours with less experience programmers, like myself, scrambling to complete the weekly MPs. 

Bertrand Meyer, professor of software engineering at ETH Zurich, wrote a blog post about this topic and in his blog he wrote "The human mind is flexible; when taught well, many people can learn many subjects. But there is one case of absolute impossibility: you cannot learn something if you think you already know it -- and do not." In order to be succesful at some tasks, we first have to examine what we know and what we dont know and be willing to accept guidance from those who know more than us.

Friday, July 15, 2016

Experience with First Draft

Knowing your team members is the most important factor when being a part of a team. It is the link to better cooperation and to finishing tasks in a timely manner. Usually I find myself working alone, but I understand the importance of working with others. You are exposed to different perspectives on the same thing. None the least, you do not have to carry all of the weight. So far me and my research team have been working together to get a publication ready for Microsoft Research. The end goal required all of us to work together efficiently.

Each of my team members specialized in areas that I may lack experience in. For example, one of my members named Josh knows how to analyze and generate statistical data. Personally for me, it was difficult to figure out what kind of data we should create for our research. It was good to get his input on the concern. As for my other team member, Brandon he was of great help in assisting me in creating raw data for Josh to analyze. Together it was a team effort and we had a pipeline system intact.

After completing our first draft of the paper, I have learned two things. First one being that I have learned how one should write and format a research paper. Using LaTex to compile the paper was a challenge in terms of positioning tables and figures, but for the most part was easy to learn. The second thing that I learned is how to manage a team. This is a skill that hasn't had a lot of exposure. I have been teams of group projects, but this was different. This time I was going for a bigger picture, and it was my job to keep the team all together. So far research has nurtured me in becoming a better leader and a smarter worker. I know that there is much more to learn, but I am looking forward to what is in store for me.

Young Scholars Advice for Networking

    When I think back to my times in high school after taking the ACT and applying for colleges, I remember asking for advice and what to expect when actually in college. Everyone would mention things like "make sure you pick your dorm early so you get the nice ones" or "enjoy the meal plan but watch out for the freshman 15", or tell me to pick a nice schedule to avoid 8am classes. However, one thing I've noticed is that no one ever mentioned the term networking.

    I didn't hear the word networking very often until I got into college and didn't really understand what it meant. If I could talk to students from my high school, I would tell them that when they get to college don't be afraid to step out of their natural comfort zone, and try to make the most out of every opportunity. Networking is something that happens all the time whether if it is a business event, research presentation, or just talking to people around the office, there is always an opportunity to put your best foot forward and represent yourself.

    An important key to networking is to do your research on the person or company (sometimes both) that your interested in. For example, as a sophomore or junior student trying to earn an internship for the summer, I would recommend going online and browsing the company's website and looking for any interesting news articles they may have been mentioned in, learning about their products, and how the company operates as a whole aside from just the specific position of interest. Being familiar with the CEO and the organizations goals will give you a way to ease into the conversation at the next event or or interview.

    Finally I would express the importance of staying humble while speaking about your current or past experiences. Instead of bragging about your accomplishments and what makes you so great, it might be better to talk about what you have done in the past and how it has been a benefit to others around you, or what you have learned from those experiences and new people.

Investing in Education in Developing Countries

  Luckily, in the United States as with most developed countries almost everywhere in our society people have access to necessary tools to learn how to code and improve their programming skills. However, that is not the case with most developing countries. For two weeks, I was able to spend sometime in Ghana and I got to experience what it is like to live in a developing country and the struggles that exist there for someone who is learning to code. While I was in Ghana, I was attempting to learn more about Python in order to work on the data analysis for Codehunt but the problem was I was unable to get any access to anything which could help me. The main reason for this was because of the fact that the electricity would be turned on and off at arbitrary times, and even when you could get access to electricity because of the lack of good wireless connectivity in many areas even with electricity internet was inaccessible.

  After coming back to America, I talked about my experience with some of my friends and learned that this is not only a problem in Ghana but also a problem in the a large majority of Africa, the Philippines, and many countries in South and Central America. The reason I find that this is a problem is because the people in those countries may have talents and abilities in computer science which they are unable to capitalize on because of their lack of access to knowledge about computer science, and that not only hurts them but also hurts us here in the United States also. According to a report by the Wall Street Journal, 2.5 million STEM jobs are not filled every year in the United States because of a lack of people who have the ability to fulfill those jobs. This same report also states that the majority of people who are studying science and technology in the United States are not Americans but instead Chinese and South Koreans, and although that type of diversity is appreciated what if we could get more diversity allowing for a wider ranger of ideas and thoughts.

Individuals from different cultures all see things in different ways and this diversity of though allows for the creation of broad perspective which is important not only in academics but also in the corporate world. There are many opportunities for business in numerous countries around the world which live in a different culture than our own and as such need different products than we use in our culture. I feel that it would be beneficial for not only universities but also companies to take a greater look at the potential of individuals in foreign countries to help make their universities and companies more diverse. I believe that these companies and universities should invest in improving the situation in those countries to allow the people more access to useful knowledge about science and technology which would allow them to then help educate those people to bring them to the United States to fill jobs and help turn companies into more globalized brands.

Tuesday, July 5, 2016

Inclusion: Choice of Words

     After taking 100+ credit hours at the University of Illinois I have experienced many different classroom atmospheres. To begin with, most entry level undergrad courses range from weed out classes and general ed required courses with class sizes of about 300+ students to upper level major courses with only 15-30 students per section. Clearly, the professors cannot honestly make an attempt to allocate their time to all 300 students during the lecture time, but in the smaller class sizes I feel it is important for each student to feel comfortable with their peers and the professor when it comes to asking for help, working together, and learning.

     I hardly ever think it's a good feeling to be left out, unheard, excluded, or singled out in the classroom or other learning environments. I really think that even the changes in tone, mannerisms, or choice of language can make all the difference in a students learning experience.

     For example, in both my accounting and business technical writing courses I've experienced group based work and discussion based participation throughout the regular course schedule. One of the most frustrating times as a student is feeling like you're the only person who doesn't understand or constantly has questions in the class when everyone else sort of just gets it or understands the materials.

     I had a professor who would sort of rush through the lecture and stop to ask "who doesn't get it?" or "who doesn't understand?" as a way to ask if any students have questions. In this instance, a few students usually have lingering questions but do not raise their hands or say anything because they do not want to feel isolated under the rhetoric of someone who "doesn't get it".

     I'm not exactly sure what caused the change, but later in the semester the professor made a point to correct his choice of words when pausing for questions to ask in less isolating way by changing his words to "Do you have any questions?" or "Is there anything you want to go over that might have been unclear?". I would notice 3-4 hands go up (including my own). I feel like that simple change made my entire learning environment more comfortable to ask questions as well as simply participate when I felt I had the right answer or something valuable to say to add in the discussion.

Saturday, July 2, 2016

Broadening My Skillset

     As of lately, a lot of people have been asking about my summer plans and what I want to do after completing my last year of undergrad. I begin explaining my Code Hunt research position and explain how I'm learning computer programming. "Well aren't you an accounting major?" is typically the first response I receive. Yes I am, however, learning computer programming software has helped sharpen my "beginning-to-end" thinking process, which is critical in the accounting field.

    Seeing as most accountants actively use excel spreadsheets and other financial related software and programs for accounting measures, it is important to understand the step-by-step decision making process that is also derived from learning and executing computer code. Learning R has gotten me familiar with troubleshooting errors line by line and that same skill transfers over when working on my accounting related course work in cost accounting and other upper level courses I have taken.

    Recent articles from AICPA, explain that graduating accounting students pursuing the Big Four public accounting firms [E&Y, Deloitte, KPMG, and PwC] should pursue Certified Public Accountant (CPA) license and students should also consider learning how to code. The combined range of skills makes students highly competitive in their field and very marketable as technology continues to carry on. I am excited to continue learning about code and see how I can take these skills with me once I enter the work force. Initially, I never would have thought about combining the two, until the opportunity presented itself after a quick discussion with Dr. Xie and I am glad I took the chance.

Joshua Reed
July 2nd, 2016

Friday, July 1, 2016

Moving Forward

As I start writing our research paper, a question came to mind. What is next? After my meeting with Dr. Xie yesterday, we started discussing future plans after the research paper. One of the suggestions was working with one of my research partners to create APIs that could expand on what Code Hunt is. Since I have been programming in Python, it was mentioned that we try to get a feature where users could play Code Hunt by coding in Python. I actually like this idea, because I believe that it will also build my programming foundation and give myself another challenge. Doing this task would be very enjoyable since it is much more different than assorting and processing data.What I have come to realize about research is that you are given more freedom in what you can explore. When working in the corporate world, all of your efforts are directed towards a specific mission that the company has set for themselves. This what I am liking about research; the freedom to explore. As I continue to do research this summer, more questions will be asked and more finding will come from it. I am looking forward to where research is going to take me for the next four weeks.

Website for CodeHunt

Being able to use the skill that I learned over 2 summers ago is  kind of cool because I was previously using this skill from time to time. Now that I am able to use my web development skills to help display data that was extracted from CodeHunt Data. From that I have set up a website that will display the raw data for each Sector. Within each Sector there is levels and there is the Raw Data for each level. I am still a little rusty so somethings are taking much longer to work than I thought. It is still a work in progress, but I am thinking positive for the completion of this site.

Research Opportunity

I started Research for the first time this summer and it wasn't much like how I thought it would be and its not necessarily a bad or good thing. It is all what you make it and if you want to truly receive the most of the opportunity you will give it a lot of energy. Since it is the summer time you should be able to do so unless you are like me and are taking multiple classes during this time as well. I encourage others to do research and take the opportunity to create a solution for others.

Adjusting to a Research Environment

   More often then not when you are working in a class setting whether it be in a computer programming class or any class in general; you always have a set list of problems with a set list of solutions and there are teaching aids and professors who are there to help and guide you to the soultion to every step. However, I have learned that in research this is not the case. In research, there are a multitude of different problems which happens to arise when you are trying to achieve your overall goal. Before this summer, I had prior research before coming to Illinois as a freshman but that research had nothing to do with computer programming and more often than not when I had a problem it was easy to solve.

    As I have learned in many of my computer programming classes programming always brings about some minor problems which you had not planned for. You cannot just write a huge amount of code without testing it constantly or you will finish writing all of your code and realize that it will not compile. Even with prior experience using Python, I encountered multiple problems while doing tasks which in my mind should have been easy to accomplish. However, I find the challenge of solving these problems and making something which I hope can be useful for our research team to be very fulfilling. I enjoy the idea that when I overcome these minor challenges and tasks I will hopefully have made something worthwhile with my time.