CS373 Summer 2018: Travis Llado, Week 08

The class is over. Our web development project is completed, our final exam was taken, and we're done. Overall it was a very useful and well designed class. I'm not saying it couldn't be improved, I'm saying it was well done and exceeded my expectations for the overall quantity that I learned. I think my brain is a good half pound heavier now than it was nine weeks ago, with all the javascript that I've crammed into it. I'm not sure how useful some of the tools we've learned will be, since my main job is programming robots not website, but I have picked up several new methodologies that should be valuable in the future.

What did you like the least about the class?

The grading and the strictness of the lectures. The class averages for the daily reading quizzes were abysmal. The students on average aren't lazy, it's just that answering five questions each involving 10 lines of new code in 5 minutes is a bit much. Also, I don't think I've had a class where I wasn't allowed to use my laptop since high school. At work, I can use my laptop during meetings and no one minds. In other classes, it's not a problem. I use Dropbox to make my lecture notes available across all devices for all my other classes, but I basically didn't take notes during this class because writing code examples on paper is not very helpful.

What did you like the most about the class?

The lecture style, aside from the laptop ban. The lectures very engaging, were well managed, and the professor clearly put effort into their lecturing style. Testing code in lecture, instead of merely hypothesizing about what output it would produce, was also very good. The project was also a very good demonstration of the skills we learned.

What's the most significant thing you learned?

Continuous Integration. Most of the code I write goes onto robots, so CI as we learned it here doesn't even apply to many of my problems, but off-loading any portion of the program verification process to a fully automated system is always nice. In addition, the use of exceptions and practices for turning runtime errors into compilation errors should be very useful.

How many hours a week did you spend coding/debugging/testing for this class?

Anywhere from 10 to 40. Phase 2 of the web development project was extremely time consuming, not surprisingly.

How many hours a week did you spend reading/studying for this class?

~5, which was not enough. I stayed on schedule for reading for the first ~3 weeks of the course, then I fell behind. By the last week I was an entire textbook behind, so catching up completely wasn't even an option.

How many lines of code do you think you wrote?

I can actually count. Not including code written for lectures and studying, which means only code for the website, it looks like 1200-1300 of javascript and python.

What required tool did you not know and now find very useful?

AWS. Amazon Web Services are terrific. They're designed to be almost universally useful. S3, EC2, and others are all very simple, flexible tools that can be used for a limitless variety of purposes. Essentially, anything you can do on your computer can also be done on AWS, except that you buy as much computer as you need for as long as you need. I was planning on putting together a deep learning workstation in the near future, but I'm going to see if I can just use AWS instead.

What's the most useful Web dev tool that your group used that was not required?

Bash scripting and Sublime plugins. I'm not sure if this really satisfies the question, but most of the things that could be done using Docker, we did using Bash. As for Sublime, I've just assembled an environment that allows me to do almost all of my software development without changing windows away from Sublime. Anything repetitive task that is typically done on the command line probably has been automated using a Sublime plugin.

If you could change one thing about the course, what would it be?

It would be nice if the main project were something other than web development. I realize it's probably by far the easiest way to demonstrate all of the project management lessons we covered in the class, but I spent several times more time and energy learning how to use web development tools than I did learning about project management or program optimization and I doubt I'm ever going to build another website.