Programming Languages and Technologies Learned

Software and web development is a fast-paced field that is changing constantly.  In order to stay on top of it and be the best instructor/researcher possible I’ve needed to invest significant time in learning and learning about new languages, new versions of languages I already knew, and new trends in the field.  Here are some of the languages and technologies I’ve learned since coming to JMU:

  • Visual Basic .Net
    This is the primary language we use to teach ISAT 252.  I did not know it before coming to JMU, but would consider myself an expert at this point.  The language has undergone significant revision in the past several years with the introduction of new features such as LINQ (Language Integrated Query).
  • The ASP.Net MVC Framework (versions 1, 2, and 3)
    When I arrived at JMU we were using traditional ASP to teach ISAT 340.  ASP was on it’s way out even then.  In the meantime, Microsoft has developed the ASP.Net MVC Framework.  I’ve taught that in the past three years of ISAT 340, but in each year a new, significantly changed and improved, version of the framework existed.  I typically am teaching this to myself at the same time I’m teaching the course.
  • SQL Server
    We used to use MS Access in ISAT 340, but since it does not get used that much for industry projects, we’ve been migrating to SQL Server which I had to learn how to install and configure.
  • Ruby on Rails
    RoR is a web programming framework.  I learned this for the purpose of using it both in ISAT 348, and also for working with students on their senior projects.  Rails had a major impact on the web development community and has driven much of the innovation in the industry in recent years.
  • Python and Django
    Python is a programming language that has been gaining in popularity in recent years.  It is used extensively in networking, bioinformatics, and AGIS applications.  Django is a web-based framework built using Python.  We are currently considering offering a Python version of ISAT 252 for next spring.  This would have significant advantages for students who are geographers, in the biotech sector, or the telecom sector.
  • Version control with Subversion and Git
    Subversion (aka SVN) is a software tool used extensively in the software industry for managing coding projects with multiple people.  It basically keeps a snapshot of every version of every file that anyone contributes to the project.  It also supports merging the changes that multiple make to the same document when they are working on it simultaneously and remotely.  I’ve begun using this with my students for turning in their class materials.  Git is a similar tool that is gaining popularity in the open-source software development arena.
  • Virtual Server Management
    A virtual server is essentially a way to use a single hardware machine as if it were multiple servers.  It is the new norm in all areas of infrastructure and web hosting management.  I acquired and set up my own server for practicing this.  I use virtual machines to run the ISAT 348 website.
  • Linux Server Management
    Over 80% of the websites on the web are hosted on a Linux server.  I did not have any experience setting up or running one of these servers prior to coming to JMU but now I manage my own machine on which I create student accounts where I can teach ISAT 348 students the basics of working with Linux.
  • Dojo and jQuery Javascript Frameworks
    Web development has gone through a radical shift in the past five years to extensive use of Javascript frameworks to provide the fast and interactive experiences that we’ve come to expect from web apps such as Gmail.  The Dojo Toolkit and jQuery Framework are two of the most popular frameworks.  I’ve built applications with them and also taught them to students in ISAT 348.
  • Trac
    Trac is an online software project management system extensively used in the open source software development community.  I’ve used this to manage students’ senior projects.
  • PHP Zend Framework
    The Zend Framework is another framework similar to ASP.Net MVC, Ruby on Rails, and Django that I learned to help students on senior projects.
  • WordPress
    I’ve become an expert WordPress developer over the past several years.  Not only have I set up and host over fifty websites using WordPress, but I’ve built significant plugins for WordPress to aid in research here at JMU. I use this as a vehicle for teaching web development in ISAT 348.
  • Qualtrics
    I’ve not only become expert at the generation and delivery of Qualtrics surveys, but I spearheaded the petition to JMU’s IT department to get API access so that we can incorporate Qualtrics into other software here at JMU.  I completed my first Qualtrics integration project this past spring for work on a research grant with Eric and Jesse Pappas on intentional self development.
This is a representative, but not comprehensive, list of the technologies that I have learned and explored since I joined JMU. This extensive list demonstrates that:
  • I am committed to staying current in my field
  • Staying up to date requires a significant amount of time and energy
  • I am also committed to making use of these technologies in my courses and with my students
In addition to the technologies above, I’ve also worked to learn and stay current about processes in software development, particularly Agile Software Development.  This past summer I presented a paper at the Agile 2011 conference and attended a week of workshops on agile programming strategies and techniques.  My scholarly work includes some work on adapting agile software development processes to learning and education.