CS373 Spring 2022: Joseph Muffoletto: Final Entry

Overall, all of the points were conveyed at some point in the course. The majority were touched on in lectures, while a few (testing, reuse, collaboration, and refactoring) were reinforced by the projects. I think the nature of the course — the disconnect between the lectures and the project — made it so that these concepts were not fully digested. By contrast, I felt that I learned these concepts much better when I took OOP since the projects required them by design. This is not to say that I dislike the course project — it is easily one of the best I have been a part of. Rather, I think it would be better if the lectures covered topics relevant to the project, such as asynchronous programming.

Try to get the simplest possible implementation working before doing anything else. For a backend route, this could be trying to get a “Hello World” response from your localhost in your browser. This is especially helpful for web development since much of your functionality cannot be tested with just a command line.

It's a great way to keep students involved. I always find myself paying more attention when there is a chance I will be called on. Its also very enjoyable to engage with Professor Downing, as he is always very receptive even if you do not know the answers to his questions.

The idea is interesting, but I would prefer a standard grading system. It requires you to be consistent, which I suppose reflects the expectation of a workplace. Nevertheless, I found it hard to consistently make the quizzes, and I could not make up for these no matter how well I did in the other aspects of the course. Also, the token system needs some looking at. For students, it's hard to keep track of how many tokens we have and when we have used them. For TAs, I imagine it's very difficult to manage requests for over a hundred students.

I did not attend either for the semester.

I only had interactions with Alex, who was very understanding but also hard to get into contact with.

My main takeaway is that everything should be designed with your future self in mind. Make your design as open and adaptive as possible.

They are a great insight into the true purpose of abstraction and member scope. Getters and setters should hide the implementation. A client class should never need to how a class is implemented to use its accessors.

I had never used MySQL before this course (always had stuck with NoSQL in MongoDB). It's actually quite intuitive. It took a bit of time to get used to foreign keys, but I do appreciate SQLs syntax and the intuitive structure of a relational database.

Nginx was very helpful in making our frontend accessible on our EC2 instance.

I have very mixed feelings about this. I think there are many concepts in web development that can be self-taught. With the number of online resources available, it's very easy to get a website up and running. Nevertheless, asynchronous programming is a challenging and fundamentally different way of thinking than we are used to. My goal was to understand hooks, promises, and callbacks, and I can’t say that this course helped me accomplish that. I would like it if at least a few weeks of lectures were spent on these fundamental web development concepts.

It's a bit hard to qualify, but if I had to give an answer, I would say this course was about average. The course project was a great way to learn more about web development. Even if it was self-taught, I learned a lot about automated deployment and Nginx. Every lecture had quite a bit of information, but the information itself wasn't always particularly novel or relevant. At times, it felt more like a Python course than software engineering. It was definitely interesting, but many of these features will either go unused or could be learned with a few Google searches. Basically, I’d like to see more challenging material covered in the lectures.

I would say:

More challenging lecture content. Specifically, more lectures pertaining to IDB.

Improvements to the token system, especially regarding the turnaround time for updating grades and token count.

Overall, great course! IDB is a very unique project and I am glad to have been a part of it.



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store