Thursday, December 2, 2010

Text Mining

After having a great dinner and talk with Dr. Tao Xie I became interested with Text Mining, and read through the information that he gave me. Text mining is a very useful tool that I believe will be in high demand in the near future. The ability to summarize and group large amounts of text such as emails, customer complaints, and surveys is very valuable to small businesses to big corporations.
SAS Text Miner gives you the capability to perform both descriptive and predictive text mining. From my understanding SAS does this by first processing the data using %TMFILER macro which creates a SAS data set. The data set is used in the text ming node for text parsing and then transformed into a informative format. Then it is analyzed for predictive and descriptive purposes.
Text Mining is a very powerful tool and is well on its way to become a high demand software. The %TMFILTER macro is so powerful and useful especially with the support of several languages, the possibilities are endless.

Travis W.

Wednesday, August 11, 2010

End of the sprint...

IBM has incorporated agile into their design structure and for me, this is nearing the end of this sprint. It has proved to be a very rewarding experience here at IBM.

That being said. I have been overloaded with work here and have found myself little time to work on research. I am hoping that the end of this sprint will allow me sometime to focus on returning to working on the research.

Tuesday, August 10, 2010

Itutor Update

The past two weeks made it very difficult for me to work on the iTutor eclipse plugin, because of my recent move from my old apartment. Limiting my accessibility to many of my necessary resources such as the internet, and not being in Raleigh. Now I am situated and continuing working on the plugin.
The previous version of the iTutor plugin decompiled the teacher's solution (.class) and the students solution (.class) and displayed method information of the decompiled classes. Currently I have been working on changing the GUI to read in the source directory and path directory of the TA solution and Student solution as requested by Jcute in order to create and run regression test on both solutions and display where the two solutions differ, and give the student an idea where they went wrong and what they need to correct.
Might reach conflict with previous code when requesting for the solutions, for the simple fact that JCute requires (.java) files and the previous code request for the (.class) files. Which I believe is a simple fix.

Sunday, July 25, 2010

Co-op and GUI

Since last week was my first week at IBM co-oping, I was not able to put in many hours. I have also decided to move my updates to Sunday. This will better allow me to make meaningful updates.

Travis has made a class that will actually run jCute. The problem is, it seems to be hard coded and we need a flexible way to modify input files. I have been looking at plugins with eclipse and have spent about 4 hours trying to create a GUI interface for what Travis has worked on. I hope to have it submitted this Saturday into the SVN so there is a deliverable for work accomplished.

Friday, July 16, 2010

BERT

For the second part of my summer research I began working with BERT. So i put a pause on implementing JCute into iTutor. BERT is an eclipse plugin for regression testing. Bert allows you to select several projects in your workspace and checks behavioral differences in new versions of your project. This could be a very good tool to implement with iTutor when comparing the teachers "Golden Solution" with a students solution. The BERT view also displays the logs of version comparisons winch will also be very useful.

BERT also brought about some adversity. The plug-in was written on a Linux machine, and the programmers did not make the plug-in Windows friendly. As instructed by Dr.Xie I began trying to debug the code. This was a very daunting task that I didn't spend too much time on. we decided that it would be better for me to continue working with JCute.

Thursday, July 15, 2010

iTtutor JCute Integration

I have been working on running the JCute batch file in iTutor for testing the given programs path coverage. I hard coded the batch file and ran it using a command runner class, and was successful printing out the path coverage information in the console.

The next step in the process will be creating a batch file with the users choice of options, location of the source directory, and class file. Currently I plan to create the Batch.java file then run it using the command prompt. The most difficult part in this task is creating the Batch file, and being able to display results in the iTutor perspective.I later plan to alter the iTutor properties, in order for it to include JCute options.

Wednesday, July 14, 2010

Linux/Windows

For the last week I have been trying to modify an existing code to work under windows. Now the process itself is not too difficult if the programmers of the original program intended for the program to be cross platform. That way the inherent program will leave room for a different operating system and commands.

Now the norm with most code is that there is a timetable required for deliverables. I would assume the same issue was with the existing code. The portion that I wanted to make working within windows had the top half hard coding some values and the second half using a more robust system. I would imagine there would have been two people working on this and trying to has it together to get it working.

I have mostly given up on trying to do the work of integrating their system with windows. If I have time I will take a look at it and modify it until I can get it working, but there seem to be a lot of underlying work.

Since I myself have a timetable to work with, I am moving my focus to working on iTutor itself. I am hoping that I will get some tangible work done so that there is a deliverable.

Thursday, July 8, 2010

iTutor

The second step of my research was working on the Eclipse plug-in iTutor. Currently iTutor is able to create drivers to be run through JCute. JCute uses concolic execution to explore all distinct execution paths with data input.

Currently I am using command prompt in order to run the drivers in JCute and display the branch coverage statistics. Discovered that a better way to integrate iTutor with JCute with the a batch file. This will make it a lot easier to change the options the waye the user wants. The next step after jcute is correctly integrated will be to figure out how to display the results of the automated JUnit test.

First two weeks with ASE REU

It has been a fun challenge to be thrown into a project that has been on-going for a while. I have had to, with little instructions from the Dr. Xie, acquire all the code base as well as policies for the group as well as familiarize myself with the research done by both my research partner as well as with Dr. Orso from Georgia.

I have just come aboard and will now be working with iTutor. For the initial stages, I have been working to integrate BERT from Dr. Orso, a BEhavioral Regression Testing tool, into iTutor. Most of the initial issues I have run into have come from Windows platform compatibility. A lot of the code have been hard coded to run on a specific machine or a specific environment. Working around that has been an enlightening experience.

I will continue to familiarize myself with the code base from both plugins and if spending too much time on BERT proves to be an issue, will disregard BERT and move focus back on improving iTutor.

Wednesday, July 7, 2010

The Beginning of my Research C# and Pex

I began my research by studying the differences between C# and Java. I realized that these are two very similar languages. Though the differences are minute, I believe Microsoft designed C# to be a little more programmer friendly. Doing so with a few different variations from Sun's Java language such as the use of namespaces, but both languages are strongly typed object oriented languages. Familiarizing with C # also introduced me to Visual Studio. I enjoyed working with Pex and Visual studio and will continue becoming familiar with the powerful Pex tool.

Tuesday, May 11, 2010

Conclusion of Research During Freshman Semester

I have now concluded the bulk of my Undergraduate Research for my Freshman year, which was primarily spent studying the capabilities of the Java Programming Language. My work with it varied from producing simple text-based programs, to simulating the effects of gravity on "Rain Drops" in animated JFrames. As of May 11, 2010, I've constructed 118 working programs. A portion of my research was also spent analyzing the effectiveness of Java as the first language learned by a beginning programmer, and as such I proposed various queries and methods to obtain information regarding this concept. I plan to continue working and studying Java as to provide myself with more expertise in the subject, so that I will eventually be able to construct and fix issues related to Java in Automated Software Engineering.

For my Summer session, I plan to begin working on a series of new games in Java to continue building my familiarity with the Java language, and the quintessential component of programming, the GUI. I also plan to expand my knowledge into other areas such as advanced class construction, recursion, and the collections framework.

Tuesday, April 6, 2010

Java Studies/Personal Research

Continued on in my extensive studies of Java through a continuation of the Arrays class. Constructed 10 programs which deal with the capabilities of Arrays, and range in capabilities from counting letters in a String or separate file to encrypting the data held within a String or separate file.

Apart from my programming studies, I have also been researching two topics: the effectiveness of learning Java as a programmer's first language of choice, and the most common type of coding used for extensive game developing projects. For the first topic, I've constructed a plethora of questions which I could ask a group of Java Professionals of regarding this query. For the latter topic, I've realized that a majority of game developing projects require a sturdy foundation in the knowledge of C or C++. Various projects such as, Battle for Wesnorth, Blender, FreeDroidRpg, and Crystal Space are online collaborative projects which specialize in designing video games (Blender and Crystal Space also specialize in developing Graphics Rendering software). C# is another popular game developing language, and is most prominently seen in the field via the use of Microsoft's Visual C# Studio, which has a library built specifically for the construction of games with their XNA subsection. Java seems to be popular in the creation of smaller games which are often embedded into web pages. Will continue to study Java, and may begin to look into C++ as well.

Monday, April 5, 2010

iTutor Updates: Formal Writing

After finding a good amount of time to work on the research over the break, I incorporated all of the feedback I have received thus far into the formal writing. I aim to submit it to Dr. Xie so that he can look over it and share his opinions with me. I am really striving to get this work completed and published and hope to accomplish that before my time in the university is up.

Outside of the writing, I have been looking into the project and familiarizing myself with how I went about its implementation. I am documenting as I go through so that anyone in the future may know what I did in my methods of the project. I hope to also extend this to important methods that were there long before I worked on the project, but for some reason, were not documented.

Sunday, March 21, 2010

I have primarily continued my studies in Java by constructing programs which have introduced me to new concepts. I have recently produced within the previous period 24 programs, which bring my total created during research to 86. The programs most recently constructed have dealt with importation and exportation of files, and also reading the data from separate files to be processed by the various commands in my programs. My studies have also given me the knowledge on how to properly use arrays, more capabilities of GUIs, solving complex tasks with programming, and utilizing the various classes in the extensive Java libraries to find specialized problem solving methods.
I've also began researching a more practical cause in my research, being the benefits and general practicality of learning Java as a beginning programmer. When dealing with the various forms of Object Oriented Programming, it is common concept that the different languages will have their own specializations, but overall similar syntax. My interest in the subject deals with primarily finding out if there are any particular benefits or drawbacks from learning a specific language first? Perhaps the syntax of Java could be a bridge to easily interpret other OOP languages. Perhaps the naming clauses and variable declaration styles will lead a budding computer scientist to be more prepared for other languages. My research has yielded no concrete results, yet I have obtained data indicating the various specialties (more commonly used for Internet development, etc.) of Java. Will continue my studies of Java until I've obtained proficient mastery and will continue to look into this inquiry.

C Programming

For my current coursework I am learning C. I want to incorporate what I learn in my coursework into my research but before I can do this I need to have a greater understanding of C. I've decided to go above what I have been learning in class and do programs outside of class to increase my understanding of C and how it works. For my studies I will use the book C Programming by K.N. King. I will start from the beginning and work my way through the book while completing programs at the end of each chapter. Starting from the beginning will help me to better grasp the concept of subjects that we may have already covered in class but I may not fully understand. I have just began my independent studies in C and will continue until I feel that I have mastered C.

Thursday, February 25, 2010

Java Studies

In my extensive studies, as of now, I have created over 70 full Java Programs. Their levels of difficulty range from simple "Hello World" type programs, to Credit Card Verifyers in GUI format, BMI Calculators, and a simple Text Editor "MiKhirySoft Word". I can conclude that as of now, I am fairly proficient in solving simple problems presented to me, and transforming them into fully functional text based Java Programs. I've also come to a good understanding on how to create functioning GUIs. I plan on continuing enhancing my skills by completely covering the book Building Java Programs by Reges, and proceeding into a slightly more advanced book, Big Java. Upon completion of these goals, I will have obtained a level of proficiency in which I can begin White Box Testing for various sources.

Tuesday, February 23, 2010

iTutor Updates: Formal Writing & Project Documentation

After being somewhat swamped with coursework over the last two weeks, I believe I'll be able to make significant progress on the iTutor project over the next two weeks. After looking over the iTutor project code itself, I found that it is lacking in terms of documentation.

The tasks that require attention are as follows:
  1. iTutor formal writing: further incorporating feedback, revising, and updating the draft as necessary. My goal is to have a completed, revised draft ready to be submitted to Dr. Xie.
  2. Project documentation: After looking at the iTutor project and exploring, while trying to determine my next steps, I found it somewhat difficult due to the lack of documentation. In order to properly continue the project, I shall first document all of my current features.

Thursday, February 4, 2010

iTutor Draft Revisions

After receiving the reviewed draft from Suresh, I am in the process of updating and improving it. I failed to include important examples, such as an example test driver, which give somewhat of a preview in the introductory section of the paper. I also made the mistake of somewhat rambling in my introduction. As much as I present a problem, I took took too long when explaining it. I shall complete the review and submit my current draft to Dr. Xie by the end of this week!

Tuesday, February 2, 2010

Medical Software Metrics 1/04/10 - 1/20/10

During this period I began to tie the papers together for clarity and overall understanding of the subject matter. I also worked with LaTex, ran into problems with getting it working and spent plenty of time trying to debugging it because there was some issue with it on my pc. At this time I reread a couple of the papers and wrote an abstract and introduction for the survey.

Medical Software Metrics 12/28/09 - 1/04/10

During this time period, I searched for more papers related to our topic and begin to look through adverse reports on the FDA database. The purpose was to retrieve more background information and attempt to categorize device failures based on the information given in the FDA database. The papers that were read during this time included, "A Framework for Software Quality Measurement," "Software Quality Metrics and Their Impact on Embedded Software," "Report on the IEEE Standard for a Software Quality Metrics Methodology," "IEEE Standard for a Software Quality Metrics Methodology," and "Ranking of Tools Use, Software Logical Complexity, Requirement Volatility, Quality Requirements, Efficiency Requirements in Software Development."

Medical Software Metrics 12/14/09 - 12/28/09

As I finished my finals, I started reading related research papers to prepare me for writing a medical software metrics survey paper. The first two papers that were read during this period was "A Survey of Software Engineering Techniques in Medical Device Development" and "Failure Modes in Medical Device Software: an Analysis of 15 Years of Recall Data."

Tuesday, January 26, 2010

So far in my extensive programming learning, I've shifted my focus to concentrate primarily on one language. Attempting to learn both Java and C# simultaneously resulted in several instances in confusion, and multiple debugging errors as I unintentionally used the syntax of one language for another. I've concentrated primarily on learning Java, but do plan to eventually concentrate on C# to possess a similar level of skill in each language.
In my studies in Java, I believe I've obtained enough practice in several areas to declare that I have reached mastery in programming concepts such as Creation and calling of Methods, Loops, Embedded Loops, Declaration of Variables, Declaration of Constants, Scope of Variables, Concatenation of Strings and other Variables, Method Parameters, and Obtaining Return Values from Methods. In my upcoming studies, I plan on better familiarizing myself with the Math class in the JDK, along with String Index and Length determining, and the inclusion of Graphics in my programs.

Saturday, January 16, 2010

iTutor Formal Writing

In the past few weeks, the writing behind my iTutor project was has served as my first priority. As far as my progress, I have written all up to the next step in the project, which is executing the generated test drivers through JCUTE. Even before this step, there are tasks that remain unaddressed from long before and require some attention. I hope to address these issues as soon as possible, as well as keep up with the writing behind any changes in implementation.

Thursday, January 14, 2010

Over the course of Winter Break I came to the realization that I did not have a concretely established goal in terms of my Undergraduate Research. Although I was given the task to perform various forms of automated code testing utilizing .Net's Pex, it was difficult to comprehend the expectation and overall purpose of such an exercise, considering my low level of programming knowledge. I've determined that I'd like my goal during my Undergraduate Research to be the pursuance of a primary interest of mine, which is Game Design and Game Programming.

Without a great knowledge of programming, my goals in relation to Game Design, or most things Computer Science related, are practically irrelevant, and as such I plan to greatly expand my knowledge in the programming languages of Java and C#. I've been studying C#, and can also utilize the tutelage of experienced C# programmer Charles, who also has similar interests in Game Design, to help my knowledge on the subject. Java is a language which has similar structure to C# and differs slightly in terms of convention and functionality, and it also coincides with my current academic pursuits. Due to their great similarities, learning these languages simultaneously will (if I can bypass the confusion caused by their likeness) provide me with skills of two of today's most commonly used Programming languages, from where I can begin more extensive research in this department.

As such, I will be spending a majority of my free time during the second semester of my freshman year practicing Java and C# programming, primarily through the aid of Rob Miles' C# Yellow Book and Stuart Reges' Building Java Programs. For all programs I perform, I intend on coding them in both Java and C# to ensure I understand the differences between them.

I believe that focusing on strenuously building my programming skills will allow me to be capable of properly utilizing Pex and starting my more detailed research in Game Design and Game Programming by the beginning of Sophomore year.