ESP Biography

JAMES FLEMING, Professional Software Engineer, Robotics Engineer

Major: Robotics Engineering

College/Employer: Worcester Polytechnic Institute / Dell EqualLogic

Year of Graduation: G

Picture of James Fleming

Brief Biographical Sketch:


I'm James, a former undergraduate and current part-time graduate student at Worcester Polytechnic Institute. I did my undergraduate degree in Robotics Engineering and Electrical/Computer Engineering, with significant exposure to software engineering and program design.

I am currently a full-time employee at Dell EqualLogic, where I am a software engineer who works on software automation. Basically I make it so that more work can be done more reliably and repeatably without needing to hire more people.

I am a computer nerd -- I've built several, including my own servers that I play around with quite often. I enjoy hiking and camping when I get the chance.

Past Classes

  (Clicking a class title will bring you to the course's section of the corresponding course catalog)

C8541: Keeping Your Code Neat, Reliable, and Flexible in Splash 2014 (Nov. 22 - 23, 2014)
Once you've learned to program, one of the first difficulties you might encounter is developing large programs and dealing with the dreaded "spaghetti code". Programs with functions that comprise hundreds of lines of code, where you need to review parts multiple times just to figure out what you were working on. Or, you might wonder if there is a neater, more intuitive way to write parts of your program -- to make it easy to understand and to develop more complex programs quickly. Maybe you want your code to be able to do certain things, but you aren't sure how to do so without re-writing a lot of your base code. Do you know how to properly test your code? Have you ever made a change and unintentionally broken your program? In this class, I'll go over the basics of keeping your code neat, re-usable, and flexible. Topics include code formatting and documentation (boring, right?), helper methods, code testing, and programming patterns used in professional software engineering environments -- tools that are used in all kinds of circumstances from individual programmers to large software development teams. My goal is to be able to instruct new and experienced programmers alike. The techniques I plan to teach can be done in any object-oriented language.