I wasn't keen on having to physically attend a classroom, having unsatisfactorily tried that before. So even though there are a few options in San Diego, an Internet-based program was my preference. With a job and a family, time efficiency is critical.
University of Colorado Boulder has a solid engineering program with a department called Center for Advanced Engineering and Technology Education (CAETE). I believe it's being re-branded as Engineering Anywhere - can't tell what's going on with the name.
In any event, I wanted to pursue the Masters of Engineering, Computer Science degree. You're given 6 years to complete 30 credits (basically 10 courses). I've gone with the coursework-only plan which just requires some breadth in my classes.
I've taken 1 class per Fall/Spring semester for the last 3 years. I'm about to start my 4th year with a plan to take 1 class this Fall, 2 in the Spring, and 1 in the Summer of 2015 to complete the program.
Overall, I've been extremely satisfied. The instructors have been great and the course content has been interesting and relevant to me.
Lectures conducted during the day in Boulder are almost always posted that night in time for me to watch them. My strategy is to watch the lectures and do any required reading during the weekdays and leave the weekends open to homework, project work, and studying for tests. I would guess I've been spending approximately 12 hours a week doing schoolwork.
The infrastructure needed to stream the lectures has steadily improved since I started the program. When I had DSL with 1 Mbps download speeds, things didn't always work so well but it's better now with 10 Mbps. It's usually a split screen with the instructor on one side and slides on the other. Sometimes it gets difficult to see what the instructor is writing on a classroom whiteboard but I think I've had only 1 course with the problem more than a couple times. They usually stick with writing on the slide deck which comes through fine.
Tests are performed with a proctor and you're given a time window to get it done. Never had a problem with this. I recall having to travel for work a couple years ago and needing to move my test around by a day or so and it wasn't an issue.
I get the most out of hand's on experience so the projects have been the most interesting to me. Sometimes the project gets demo'd to the instructor or TA via Skype or Hangouts which gives us a chance to talk about it. Everything has been in Java or Python with the exception of the networking class which was all in C.
So I'd recommend this program to anyone thinking about getting their CS graduate degree from an Internet-based program. The coursework has been appropriate and engaging. I definitely think it's helped me improve my software development knowledge. Since the GI Bill is paying my way I don't feel like I know enough about the financial costs to comment on the tuition level.
Here's a list of the classes I've already taken with a couple notes:
- Fall 2011 - CSCI 5448: Object Oriented Design and Analysis
- The perfect class to knock the rust off my Java skills
- Spring 2012 - CSCI 5828: Foundations of Software Engineering
- Spent a lot of time on concurrency which is a topic I enjoy
- Fall 2012 - CSCI 5608: Software Program Management
- Spring 2013 - CSCI 5817: Database Systems
- Fall 2013 - CSCI 5832: Natural Language Processing
- Favorite course so far - very interesting topic I didn't know much about
- Spring 2014 - CSCI 5273: Network Systems
- This class required the most effort mainly due to my novice C knowledge. But it was rewarding to complete the projects.