Challenging students with software engineering projects
Students like to be challenged with their projects – CEED hears that time and again from students. So, we asked the students working with IT company Oracle to talk about their current projects and what they are learning, enjoying and where they think all this experience will lead them in the future.
Oracle have three students working on different projects right now – Rachel Guelen (final year double degree Electrical Engineering/IT, QUT); Daniel Wainwright (Master of IT, UQ); and Ian Calligeros (final year Software Engineering, QUT). They all started over the summer vacation break and will continue through to the end of first semester (June 2011). All of the students are working on challenging projects – a couple are research-related and the other project is development focused.
CEED caught up with Rachel, Ian and Daniel recently and they shared their thoughts about their CEED projects at Oracle.
Rachel described her project in technical terms as, “Parfait, the static bug analysis tool that the Oracle Labs team have created, can currently only analyse C and C++ source code. My project is to try and make it able to analyse programs written in Java as well. I’ll do this by creating a translator between Java Virtual Machine (JVM) bytecode and LLVM (Low Level Virtual Machine) bitcode, a platform independent assembly language that Parfait runs its analyses on”.
Ian described the main objectives of his project as “looking into doing data visualisations using HTML5. This basically encapsulates anything from simple graphs to more complicated visualisations such as force-directed layouts and tree maps. At the end of the project, I hope to have delivered a few useful visualisations that Oracle can implement in their software”.
Daniel’s challenge is to “investigate a new method of automatically generating test cases for a program using ‘symbolic execution’ techniques. The aim is to use existing test cases to gather information about the flow of control through a program, and use this to create “summary” models of some functions in the program. These models will be simplifications of the original functions which only represent some of the possible paths through the function. By replacing some functions with these models, we hope that symbolic execution of the program as a whole will be more efficient and still able to produce useful test cases”.
All of the Oracle students had a steep learning curve at the beginning of their projects. The amount of technical reading and the prospect of learning new technical skills in a short period of time seemed a little daunting, but as Ian said “prior to the project I had done some Javascript programming but my knowledge and understanding is now so much greater than it was at the beginning. Every time I speak to Nathan (my supervisor), he teaches me something new and is really great at explaining concepts to me”. Nathan Hawes, one of Ian’s supervisors at Oracle is a past CEED student himself – he was employed by Oracle after his project a couple of years ago.
For Rachel, another of her challenges has been to “learn how to communicate complex technical information and problems to colleagues, in a way that they can understand the problem and then provide helpful advice”, she said.
Daniel added, “The biggest challenge so far has been to understand the concepts behind the project. In the initial phase of my project, I was reading many journal articles and trying to form an idea about how to go about this project - it was very challenging at first.”
During CEED projects at Oracle, each student is paired with a “buddy” - an experienced researcher or developer who is an expert in the area of their project. Oracle has found this arrangement allows for ease of discussion on the technical matters of each project with the Senior Principal Engineer, Cristina Cifuentes, supervising other aspects of the project (e.g., initial project scope, steps to follow, informal checking on status, presentations, and final report). This year's student ‘buddies’ / supervisors have been Nathan Hawes (for Ian’s project), Lian Li (for Daniel) and Jacob Zimmermann (for Rachel)".
What have Rachel, Ian and Daniel gained most from their CEED projects?
According to Rachel, “nothing compares to working on a real problem in a major corporation like Oracle. My technical communication skills have developed immensely over the course of my project and I have learned about how to work in a team of very knowledgeable and experienced professionals. I’ve also had valuable networking opportunities with professionals who share my areas of interest and I hope these connections will give me a good start to my career once I graduate”.
From Ian’s perspective, “the technical knowledge I’ve gained has been incredible and with another few months ahead I’m really looking forward to where I’ll be by the end. HTML5 is a big up and comer technology wise, something which I wouldn’t have learned at Uni. But most importantly, I’ve gained 6 months of work experience and hopefully some good references”.
Rachel added, “I love the fact that what I am working on really matters to the company, and I am able to gain valuable work experience at the same time as completing my final year project. I get to work with different people in industry and see how they do things. It’s also nice to experience a normal working day rather than having to rush from class to class and from problem to problem; I can concentrate on problems that I really enjoy solving”.
Daniel’s technical skills have been enhanced by his project, he said “there has been an awful lot for me to learn to work on this project – C++, the LLVM (Low Level Virtual Machine) intermediate representation and API, and many concepts in symbolic execution and model-based testing”.
Daniel is also enjoying “working in an office and having a “real” project to work on. I find it much more interesting and motivating than working on university projects. The work is much harder than at university but also much more enjoyable, and I feel like I have learnt more already than I would in doing more coursework”.
Ian was struggling to find work experience in Software Engineering, so he really appreciated finding his project through CEED. “Since then I’ve been telling all my friends to check out CEED projects as it is such an organised and speedy way to get the experience and a project. Within a week of applying I had an interview and received the position at Oracle!”
Advice for other students thinking of doing a CEED project
Daniel’s advice is “try to start as early as possible and prioritise the workload. There may be more to do in the scope of the initial project idea than you can finish in the available time. So it is important to narrow the focus and work on what is most important. Try not to get sidetracked!”
Rachel was keen to point out that when students get a project they should, “take advantage of every opportunity to grow, to learn and involve yourself in the goings on of the workplace. Communicate with everyone you might work with … they could have valuable advice or an idea you might not have thought of, and it’s always interesting to hear about what other people are working on – you might learn something. Most of all, work hard and enjoy what you are doing”.
Ian added that, “after talking to my mates and comparing project experiences, you will struggle to get better industry experience than a CEED project. Having a project with long term goals gives you something which you can talk about to future employers. My project will definitely help me with my career prospects.”