Illinois ASE REU

Sunday, September 11, 2016

The Balance between School and Research

Over the past two weeks, I have noticed that finding the time to do research along with my schoolwork is a sometimes difficult task. My main priority of course has to be my schoolwork but at the same time as a member of a team I still have the responsibility to put in the necessary work for our team accomplish our goal. As I started the school year, I immediately noticed that I have to manage my time more efficiently to be able to fulfill all my responsibilities. During my research over the summer, I was mainly focused on just doing my research so managing my time was not an issue but when you have lectures to go to, homework to do, quizzes and exams to study for, and RSO meetings to attend along with doing your research;finding time becomes much more challenging. In order to achieve the delicate balance needed to be successful I have had to plan out each day in order to ensure that I am able to not only get good grades but also accomplish my research goals. At times I will admit it does become a pain having to live on a daily schedule but as famous author,Victor Hugo, says "He who every morning plans the transaction of the day and follows out that plan, carries a thread that will guide him through the maze of the most busy life. But where no plan is laid, where the disposal of time is surrendered merely to the chance of incidence, chaos will soon reign."

Monday, August 1, 2016

Small to Big

Currently I am working on modifying the Codehunt data extractor code to automatically find the location of the Codehunt user directory. However, I keep on running into issues. The code used for the data extractor is almost three hundred lines, but there are only about ten lines which are needed to find the path to the user directory. Unfortunately though those ten lines of code affect all the other three hundred lines. Such a small section is somehow creating a bigger problem than anything else, and this is a consistent trend which I have noticed throughout all of the research I have done this summer.

Sergey Brin, Google co-founder and Russian-born American computer scientist, once said "Solving big problems is easier than solving little problems", and after having working on this research for this summer I understand what he meant. The most difficult problems to solve involve the smaller details which you originally dont consider when you are making goals for your research, and these small details which you often ignore eventually snowball together to create a big problem. Eventually I will solve the current minor issue that I am dealing with but until then it will continue to have all my attention.

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.