Alan Riggins has taught computer science at SDSU for 12 years. He started teaching web app development about six years ago. Today, he teaches core courses for computer science majors, and two classes in the new Web and Mobile Application Development Advanced Certificate program. Along with web development, Alan loves to travel – he’s been to 24 countries and has a trip planned to Hungary this year. His office is packed with computer books, and photos of his travels, and like any true programmer, there is a huge cup of coffee next to him at all times.
What classes do you teach in this program?
I teach web application development classes. There is an introductory class and an advanced class in the program but it is all web application development.
Tell me about yourself?
The professor who had been teaching web application programming retired about six years ago. I have always had a great deal of interest in the web, so I took over this area and started teaching web app development then.
How has web app development changed in those six years?
It’s an area that’s developing and changing very rapidly. Client side programming has dramatically increased. Client side code improves the user experience because response time is much faster than waiting for a server to send data to update a web page. Instead of doing that, you use scripting languages on the client side to make the application more responsive and interactive. There is a trend toward making applications behave more like a desktop applications rather than the traditional web page model.
Can you tell me a little bit about your classes? Are there group activities? Projects? Exams?
The university requires that we have exams so we do have those but I don’t put a great deal of emphasis on the exams. I know they are essential because it’s a useful metric to determine whether or not students have learned the material and it is important. But my main focus is on projects–what students can create and produce. So in my classes the students will typically have programming projects come at them relentlessly. Again, I believe that students learn by doing. Actually developing projects is the best way to learn to develop web applications. You learn to do it far more efficiently than reading about it in textbooks or memorizing details. So I have them do a lot of hands-on programming and I will typically have them do assignments that are fairly advanced for their level. There is always a certain element of reaching for more than they can do and I provide a lot of support to my students. I provide working examples of code with complex techniques and lots of demonstrations to give them the idea of how it works and then ask them to go and do it on their own.
I know this is fairly a brand new program. What makes it special?
There are many classes available where a person can learn to create web pages; however, what makes this program different is that it is at the post-baccalaureate level, a master’s level certificate, so it isn’t about teaching people how to write web pages, it’s about creating web applications, which is far more complex.
Ten years ago anybody could make a web page. You could learn a small number of HTML tags and you could create web pages on your own. But that environment has become far richer and far more complex in the last decade. And it requires serious programming skills to leverage new technologies to get first-rate web applications. So we teach that in this certificate and that is the distinction. It is not a trade school or a continuing education program that has minimal expectations and everyone gets an A. This is a graduate level course.
Another big benefit is that all lectures are delivered in the classroom to on-campus students, and recorded using a Mediasite capture system. This allows online students the same benefit as on-campus students. Moreover, all students can replay videos of the lectures as needed. If a certain concept or technique presents a problem, the student can replay lectures to review the material again.
Should a student with a bachelor’s degree pursue the Certificate Program or master’ degree? Who should take what?
It seems in computer science that a master’s degree is really kind of the sweet spot in terms of career advancement and earning potential. People with a master’s degree tend to make more money than with people with only a bachelor’s degree. The premium usually amounts to anywhere from $10-30,000 a year in additional earnings.
Also import to consider is career advancement. People can advance more with a master’s degree in computer science. The doctorate seems to be more specialized. That’s geared for people doing research for companies like Intel and also people who want to go on and become university professors. There are many cases where a person with a master’s degree in the industry can make far more money than a professor. I think a master’s degree for a serious professional is a very good idea.
In some circumstances, courses taken in the Web and Mobile Application Certificate program can also be applied to the master’s degree program. Thus, it’s not really either the master’s or the certificate program, since coursework taken as part of the certificate can satisfy course requirements in the master’s program.
Computer science is a broad discipline. It encompasses a lot of different areas; web application development, artificial intelligence, robotics, systems programming, software engineering, 3-D game programming…the list goes on and on. Most people specialize in one area or another. The certificate program provides training in one of these specialized areas. Because of the complexity involved, it’s not something that a person can easily learn on their own; it really does require specialized training. This kind of specialization happens after one graduates, and what the certificate program does is that it gives a professional an entry into a field with high earning potential and rapid growth, and the kind of specialized education that you don’t really get as part of a master’s degree or a bachelor’s degree.
What exactly is this program? What is the main goal?
The goal here is to train professionals so that they can immediately begin working in the industry to develop web applications. That is the goal. There are many different technologies in use today and although we do teach students some specific platforms and technologies, the main focus is on teaching them the underpinnings and how the technology works, with the goal that they can pick up, adapt, and use new technologies that come out without too much difficulty.
What would be the effect of the emergence of seamless cross platform user interfaces as previewed in Windows 8 have on future app development?
It’s an interesting question and I really haven’t seen Windows 8 yet. It sounds like Windows 8 incorporates a trend that has been happening for some time, which is a movement to make all applications behave in a similar fashion. From my perspective in web application development, what we try to do is to make web applications behave like other applications do so that they become more and more seamless. For instance, Google Mail is a web-based application, not a desktop application but it behaves very much like a desktop application. It has the look and feel, the response times are rapid, and most of this is implemented with client’s side coding, which is a fairly recent phenomenon in the web development arena. This allows us to have features that are common in desktop applications or mobile devices but have historically been rare in web applications—features like Drag and Drop. You can now implement user interface features that have been commonplace in desktop applications but lacking in web applications.
What do you think the future for app developers is going to be?
I think that over time the migration from the desktop to the network will continue. Years ago, Sun Microsystemsused to have a little slogan that said “the network is the computer.” They had the right idea. What is happening now is that the network is the computer. In many ways computers are used primarily to interact and interface with the network to do what we need. I think that trend is going to continue in a big way. I think we have really just started scratching the surface. We will see things like smart devices…refrigerators that know when we are out of milk, things like this that will make our lives better. Smart thermostats that can communicate with the utility company and cut back the temperature if the rates go up for a certain time spot. Automobiles that can communicate with the network, not just for GPS but for many other things, so I think we are going to see a tremendous increase in devices that use the Internet and developers will be needed to build and maintain those applications.
Is there anything else you would like to add?
I suppose one of the issues that I have seen is that some of the students taking the classes have been unprepared for the amount of work that it involves. In many cases, the employers will pony up the money to enroll people in the classes and the students think that it is going to be fun and exciting, and then they discover that it is in fact a great deal of hard work. I think what really differentiates us—and I think it’s important that you make this clear not only when the students sign up for the courses, but when promoting the material—is to let them know that this is a graduate level course. This is going to graduate school. This is a certificate program at the master’s level, and the scope, size, complexity of projects is comparable to what you would experience in a master’s level program. It is also important to communicate that the outcome makes all of this effort worthwhile. Once the program has been completed, students should be able to go into an industry job and work at a very high level. Students will have what they need to be productive in the workplace in this area.
SDSU has an outstanding reputation for the quality of its programs, including computer science. Many working professionals throughout the area hold degrees from SDSU, and we have an established reputation as a leader in the field, and a Certificate from SDSU carries credibility.
Can you give me two adjectives that describe the program?
Cutting edge and advanced.