Final Entry: Spring 2019

What did you like the least about the class?

What I liked the least about this class was the uneven allocation of time to the lecture topics. The lectures covered some topics in great detail while we spent little time on others. For example, a lot of time was dedicated to refactoring and the specifics of Python while we covered databases and SQL superficially.

What did you like the most about the class?

I enjoyed working on the IDB project with my team, and I learned a lot about front-end development and web design. I also enjoyed the lectures by the guest speakers. Their discussions about their careers provided good insight about what it is like working as a software developer or an entrepreneur.

What’s the most significant thing you learned?

This class provided a good introduction to Python. I learned a lot about the subtleties of the language as well as how it differs from Java and other object-oriented languages. The IDB project also helped me grow familiar with React.js, which was critical for displaying dynamic content on our web application. I also learned a great deal about continuous integration and unit testing, which I’m sure will serve me well in the future as a software developer.

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

I spent about 20 hours a week programming for this class. This was highly dependent on the phase of the IDB project.

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

On the week of the exams, I spent around 15 hours reviewing the material and going over the HackerRank exercises. On a typical week of class, I spent about 2 hours studying for quizzes and doing the readings.

How many lines of code do you think you wrote?

I probably wrote around 800 to 1000 lines of code for the class.

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

I worked on the front-end side of the IDB project, so I found Selenium helpful for testing whether components of our webpages are present and verifying that links are clickable.

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

Material-UI was the most useful web development tool that my group used. It helped us create beautiful data tables that had built-in sorting, searching, and filtering features as well as pagination.

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

I would change the lecture material to include an introduction to some of the required web development tools. A little guidance about the tools would have helped me understand how best to use them. I also wish we had discussed React in class since the second phase of the IDB project involved a major shift from static to dynamic webpages.

Week 14: Apr. 29 – May 5

What did you do this past week?

Last week, I finished up the IDB project with my team and submitted a programming assignment for my Declarative Programming class. I also went to a jazz concert for my Jazz Appreciation class.

What’s in your way?

I have a presentation and two exams next week, so it will be a busy and stressful week. I am a little nervous about the exam in this class since we have covered a great deal of material since the first exam. There is a lot that needs to be reviewed. My exams are also on consecutive days, so it’s critical for me to have good time management.

What will you do next week?

Next week, I have an exam in this class as well as in my Declarative Programming class. I am also presenting the IDB project with my team on Monday. We came up with an outline and practiced over the weekend, so I’m hoping that it goes smoothly and we are able to stay within the time limit. I also need to begin studying for my Algorithms class since the final exam is cumulative and likely to be very difficult.

What did you think of the talk by Miriam?

I enjoyed Miriam’s talk, and it was very interesting to hear about her unconventional career path. It was good to hear from a Computer Science major who chose not to follow the traditional software development path and instead formed a career as an entrepreneur. She raised a good point about implicit biases and how important it is to think critically about our responses to other people.

What’s your pick-of-the-week or tip-of-the-week?

Even though I worked on the front-end side of the IDB project, I think that this list of common mistakes with PostgreSQL can be useful for back-end developers. I noticed that the back-end side of our team would sometimes gripe about how irritating the SQL commands could be when querying from the APIs. Hopefully, having an idea of what not to do can provide some guidance for programming in SQL and help prevent avoidable issues from occurring.

Week 13: Apr. 22 – Apr. 28

What did you do this past week?

Last week, I worked on the project with my group and tried to learn more about JavaScript’s D3 library. I also hit 100% completion on the Cerego sets for my Jazz Appreciation class, so I no longer have to worry about reviewing them every few days. I registered for classes for next semester, and I was luckily able to add the two CS electives that I wanted to my schedule.For fun, I went to a benefit concert on campus for Austin Soundwaves, which featured a brass jazz band, an orchestra, and some other acts.

What’s in your way?

Not much is in my way this week. I am looking forward to finishing up and presenting the IDB project and am going to start preparing for our exam the following week.

What will you do next week?

Next week, we begin presentations for the project in this class. My group is currently working on adding the data visualization elements to our website. Aside from this class, I have a quiz for my Declarative Programming class and an optional problem set to work on for my Algorithms class. I am also looking forward to attending a live jazz performance on Tuesday for my Jazz Appreciation class.

What was your experience in learning about refactoring?

I enjoyed learning about refactoring. I liked working on the HackerRank exercises in class and found them helpful for understanding the concept. I’ll review them thoroughly since I know that refactoring will definitely appear on the exam. So far, I haven’t refactored any code for our project, and I still have to come up with ways to do so for the current phase.

What’s your pick-of-the-week or tip-of-the-week?

I used this article as an introductory guide to using the D3 library to implement data visualization. I also found the D3 graph gallery helpful for brainstorming what kinds of graphs would be best to represent different data sets. It also provides example code that gives you an idea of how to implement graphs from simple, functional representations to complex and visually interesting ones.

Week 12: Apr. 15 – Apr. 21

What did you do this past week?

I worked on Project 4 with my team, which ended up taking until the deadline to finish. I also had a programming assignment due for my Declarative Programming class and a problem set for Algorithms that I had to complete. It was a busy week overall.

What’s in your way?

I feel a little drained from last week, but it seems like the load for next week will be considerably lighter.

What will you do next week?

Registration is coming up next week, so I have to plan the classes I want to take. I like to write down unique numbers for my ideal schedule and some back-up classes so that registering itself only takes a few minutes. Aside from that, I’ll attend class as usual. I like the HackerRank exercises that we are working on in class for refactoring and hope that there will be more of those this week. I also have quizzes to study for in my Declarative Programming and Jazz Appreciation classes.

What was your experience of Project #4: IDB3?

Project 4 was very time-consuming. We spent most of the week trying to complete all of the requirements. The deadline extension was very useful to us, and we spent the last two days changing our implementation of the search feature for our models. We were under the impression that it was okay to display a subset of the instance pages as a result of the search and were surprised when we read that there needed to be a different page for the search results. The site-wide search also took us a great deal of time to implement. Aside from the search feature, I worked on adding information to the instance pages that I am responsible for and testing them with Selenium.

What’s your pick-of-the-week or tip-of-the-week?

When writing my tests, I found this article about how to test dynamic content using Selenium to be helpful. I also drew from the examples on this webpage to get an idea of how to use some of Selenium’s features. While most of the tests went smoothly, I found it frustrating to test whether links navigated to the correct webpage with Selenium. I have to work on resolving that issue for next phase.

Week 11: April 8 – April 14

What did you do this past week?

I worked on Project 3 with my group and tried to improve the appearance and functionality of the instance pages for one of our models. We have finished most of the requirements so far. Implementing the search feature with the highlighting of the keywords has taken us the most time, but we finally completed it last Friday. Overall, it was a fairly typical week in terms of schoolwork. I submitted my Algorithms homework and am steadily working on the online flashcards for my Jazz Appreciation class.

What’s in your way?

I’m trying to stay motivated for the rest of the semester. My last final exam is on May 18, so there is a little over a month left until summer break starts.

What will you do next week?

My team and I will be finishing up Project 3 on Monday and Tuesday. We still need to give our customers some user stories and work on the ones that we have been assigned. While a large part of the project is complete, we would like to make some changes to the the look and design of our website as well as refine our unit tests. I also have a problem set due for my Algorithms class and a quiz in my Declarative Programming class.

What was your experience in learning regular expressions and SQL?

I was familiar with both concepts but had not gone into detail with either of them. Remembering the nuances of regular expressions will require some practice. I had a basic understanding of SQL coming into the lectures, but I was unfamiliar with the join commands. I enjoyed completing the HackerRank exercises in class with a small group. I think that they are a good way to learn and remember the material. They are also worth reviewing before our exam in a few weeks.

What’s your pick-of-the-week or tip-of-the-week?

I found this cheat sheet for Python regular expressions helpful for studying for Monday’s attendance quiz. It also seems like a good resource to refer back to when programming or studying for the next exam.

Week 10: Apr. 1 – Apr. 7

What did you do this past week?

Last week, I attended the Ethics lectures for this class, and I worked on the project as well. I also took an exam for my Declarative Programming class. Although it requires fewer things than Phase 2, Phase 3 of the project can be stressful at times since we can be particular about how we want our application to look and function. Implementing the search function with the highlighting of keywords may also pose a challenge.

What’s in your way?

Nothing in particular for now. I’m through with midterms for the time being. I won’t have any until the first week of May, which will be a hectic week.

What will you do next week?

Next week, I will finish Phase 3 of the project with my group for this class. I have to work on a problem set for my Algorithms class and keep up with Cerego sets for my Jazz Appreciation class. I also have to study for a few in-class quizzes throughout the week.

What did you think of the talk by Dr. Rich and Dr. Cline?

I thought the talk was very thought-provoking. Dr. Rich and Dr. Cline brought up a few interesting ethical scenarios that may arise in one’s career. Utilitarianism, the Golden Rule, and Kant’s Categorical Imperative may help people make ethical decisions, but ultimately, it seems like there is no one-size-fits-all approach, no philosophy that can make the obvious “right” decision in every circumstance. Moral decisions are often weighted by an individual’s circumstances as well as the stakes of the choice. I thought that it was good of MIT to include ethics in the mission statement for its new College of Computing. Ethical dilemmas are likely to crop up as the field of artificial intelligence advances.

What’s your pick-of-the-week or tip-of-the-week?

My pick-of-the-week is this guide to using Flexbox. Flexbox is a CSS tool that simplifies formatting the layout of a webpage. I found the article’s illustrations very helpful in visualizing what I want the layout of our instance pages to look like for our website. The explanations of the CSS properties were also very clear.

Week 9: Mar. 25. – Mar. 31

What did you do this past week?

Last week was a busy and stressful week overall. I devoted a large part of it to finishing Project 3. I also spent some time preparing for my Algorithms exam on Wednesday.

What’s in your way?

Getting back into an academic routine after Spring Break was difficult at times. I spent a lot of time worrying about my contribution to the project, and I felt unprepared for my Algorithms exam.

What will you do next week?

I have an exam in my Declarative Programming class as well as a programming assignment due. I also hope to work on the design of our web application. I was primarily focused on functionality during Project 3 due to the time constraint, but now I would like to make our instance pages visually appealing and easy to understand.

What was your experience of Project #3: IDB2?

Project 3 was time-consuming and there were many requirements to be met. My group had not worked on it much prior to Spring Break since we were studying for the exam in this class. We also did not accomplish much over Spring Break, so we had to work on it intensively this week. My group spent a few late nights on Wednesday, Thursday, and Friday finishing up each part of the project, including unit testing and the technical report. I was grateful for the extension of the deadline to Friday night since I was having difficulty dynamically routing pages for our website. I do not have a lot of experience with JavaScript or React, so there was a steep learning curve to negotiate with this project.

What’s your pick-of-the-week or tip-of-the-week?

For linking our models to all of the instance pages, my group found the Material UI data table to be extremely helpful. It makes pagination simple to implement, and sorting and filtering features are built into the table as well. Since we are building an application centered on providing voting information, we have many instances of politicians and states. Since there are so many to link, it would have been difficult to display them all in a grid format.

Week 8: Mar. 11 – Mar. 17

What did you do this past week?

Last week was the week before Spring Break, so it was a busy week overall. For Project 3, my team divided up responsibilities but otherwise did not meet since we were all busy with exams and deadlines in other classes. I had an essay due for my Jazz Appreciation class as well a problem set due for my Algorithms class and an exam in this class. A lot of work piled on, and I am glad to have some time off as we reach the middle of the semester.

What’s in your way?

Project 3 for this class is due the Thursday after Spring Break, and I also have an Algorithms exam on Wednesday. Unfortunately, this means that I still have a lot to do over break. I’ll probably work on things intermittently throughout the week while still taking a couple of days off to relax and decompress.

What will you do next week?

Next week is Spring Break, and I’m going home to Houston. I hope to get some things done for Project 3 and work on practice problems for my Algorithms class.

What was your experience of Test #1 (the problems, the time, HackerRank)?

Test #1 was my first experience with a HackerRank programming exam. The in-class exercises were good practice for the exam problems. The hour and a half time period was sufficient for the types of questions asked on the exam. Overall, the exam was fair and covered a great deal of the lecture material. I hope to perform better on the second exam now that I have an idea of what the test is like and how to prepare for it.

What’s your pick-of-the-week or tip-of-the-week?

My pick-of-the-week is Homebrew, a package manager for Mac OS X. It allows Mac users to easily download applications’ packages to their local directories. To get an idea of how helpful it can be, here is a list of all of the packages that users can download. Most recently, I have used it for my Declarative Programming class to run Clingo, an answer set solver, on my command line. I also installed node.js packages using Homebrew for the IDB project in this class.

Week 7: Mar. 4 – Mar. 10

What did you do this past week?

I finished Phase 1 of the IDB project for this class last week. On Thursday night, I attended a jazz concert as a requirement for my Jazz Appreciation class and enjoyed it immensely. I also went to a few workshops at MADcon on Saturday and learned about some web development tools that I had never encountered before, like using Dagger 2 for injecting dependencies in Android applications. Overall, it was a typical week in terms of homework assignments and quizzes.

What’s in your way?

The requirements for the second phase of the IDB project seem extensive. I hope to get a significant amount of work done before Spring Break since I’m planning to go home for the week.

What will you do next week?

I have to prepare for the exam for this class on Thursday and start working on Phase 2 with my group. I’ll dedicate most of my evenings to working on the project and spend my remaining free time studying for the exam. I’m fortunate to not have any tests or major assignments for other classes this week.

What was your experience of Project #2: IDB1?

Our project is centered on providing voters with information on issues, representatives, and voting requirements for each state. My group and I were able to fulfill all of the requirements for Phase 1 by the deadline. However, the night of submission was hectic since we were having difficulty defining the instances and attributes our models would have and connecting them on the website. We also struggled to find APIs that were free, readily available, and relevant for one of our models. As we move forward in the project, I hope that we are able to balance the workload so that we aren’t left scrambling at the deadline.

What’s your pick-of-the-week or tip-of-the-week?

I liked this React tutorial which thoroughly explains the fundamental aspects of React. The code examples are especially helpful in illustrating how each feature works. My team is migrating the front-end of our web application to React for the second phase of the project, so I want to learn more about it.

Week 6: Feb. 25 – Mar. 3

What did you do this past week?

This week, I worked with my project group to get started on our web application. We integrated Docker and GitLab with our Slack workspace and split up tasks regarding the APIs and static web pages. We also created a system on GitLab which prevents us from pushing directly to the master branch. Instead, each of us must use a merge request that requires the approval of a few group members. This way, there will be less opportunity for accidental changes and mishaps. For the project, I worked on a few static pages and familiarized myself with Bootstrap.

What’s in your way?

Having six members in a group presents a lot of scheduling challenges. Some people are available at certain times while others are not. Even with a group chat, it can be difficult for all of us to be on the same page.

What will you do next week?

Next week, we’ll finish up Phase 1 of our project and start on Phase 2. Phase 2 will involve implementing the RESTful API and testing our code’s correctness with unit and acceptance tests. I also want to start looking over old material to prepare for the exam for this class. There are also the HackerRank exercises to review as well as the attendance quizzes. For other classes, I need to look over lecture material to stay afloat for in-class quizzes.

What did you think of the talk by Jesse on security?

I really enjoyed Jesse’s talk. He was a good speaker and seemed very knowledgeable about the topic, answering every question thoroughly. I took Introduction to Security last semester so I was familiar with code injection as an exploit, but it was interesting to see how HTML escape characters could be manipulated to inject scripts.

What’s your pick-of-the-week or tip-of-the-week?

I liked this article about famous laws of software development. The comments also include several good additions to the list. It will be interesting to see how these laws apply to the IDB project for this class. I also found a list of mental models that can be fun to research and revisit.