University of Minnesota
Master of Science in Software Engineering
/

You are here

SENG Topics: Exploring Dynamic Languages

Technology changes, it's a fact of life. And while many developers are attracted to the challenge of change, many organizations do a particularly poor job of adapting. We've all worked on projects with, ahem, less than new technologies even though newer approaches would better serve the business. But how do we convince those holding the purse strings to pony up the cash when things are "working" today? At a personal level, how do we keep up with the change in our industry?

This class will explore ways to stay sharp as a software professional. We'll talk about how a technology radar can help you stay marketable (and enjoying your career) and how we can use the same technique to help our companies keep abreast of important changes in the technology landscape. Of course it isn't enough to just be aware, we have to drive change - but how? This talk will consider ways we can influence others and lead change in our organizations. In other words, this class is about your post MSSE life, how to you take your education and apply it to your daily job.

We'll explore this topic thought the lens of Java, widely considered one of the most popular languages of all time. It boasts hundreds of thousands of developers, enjoys a lively community, and has spawned a vast array of widely used open source projects. Many companies have entrusted their most critical applications to Java and searches of common job sites reveal thousands of hits for Java skills.

Yet things are changing. Seemingly all of the new breed of "Web 2.0" applications are written in languages other than Java or C#. A growing and vocal group of thought leaders is moving away from statically typed languages towards dynamic ones like PHP, Python, the ubiquitous Ruby. Microsoft is actively developing an implementation of Python for the CLR and the JVM hosts numerous scripting languages like Groovy and Jython. What the heck is going on here?

This course will take a look at the most popular of the dynamic languages and discuss the impact they are having on the development community. We'll examine the strengths and weaknesses of each language and discuss where they might fit within an organization. Most of these languages are several years old yet only now are they enjoying any popularity - we'll talk about why.

Java, C, and C# certainly aren't dead, but the industry is moving towards simpler approaches. This course will help you see where the industry is heading and why.

Course Format
The course will be discussion based. Each student will pick a language to study throughout the term writing two papers (a brief introduction/overview of a page or two) as well as a longer examination (roughly 3-5 pages in length). Each student will give a 10-15 presentation on their language/technology. There will also be 1-2 short programming assignments. There will be no tests.

This course will involve books and various online resources. Students will be expected to critically examine the languages presented in class and be active participants in class discussions.

Course ID: 
SENG Topics
Complete Name of the Course: 
Exploring Dynamic Languages
Intended Semester: 
elective