Spring Classes 2024

Information Visualization

Topics covered:

  • Visualization of Distributions
  • Visualization of Trends
  • Visualization of Spatial Data
  • Visualization of Uncertainties
  • Use of Color
  • 3D Visualizations

Class format:

This course was taught in a “reverse format”. Instead of listening to lecture in class and then going home to work on assignment, the lectures were videos you would watch on your own and class time was spent working on assignments. I thought that this format worked well for the class. The lecture were not too technical and mainly served as a reference for working with RStudio and ggplot. It was good to have these videos to go back to while working on assignments. Each class period I received individual feedback from the professor about the visualization I made.

Assignments:

This class includes 3 major assignments that are the focus of the class. The aim of the lecture are to give you the skills and knowledge necessary to complete the assignments.

Assignment one had two parts. The first part asks you to find an example of one good and one bad data visualization and to provide a justification for why it was good or bad. I found lots of good examples from The New York Times in the Upshot section. The second part asks you to create a visualization from any data set, then to tell a story about what the data is showing. I used a built-in data set that came with RStudio on home prices in Texas. I created a scatter plot that showed median house prices increasing overtime in 4 major metro areas.

Link to Assignment 1: https://docs.google.com/document/d/1dBBK8SaCBXef5YYzXqqvyio51eOqIHpekUj9bGaRdr4/edit?usp=sharing

Assignment two was a much bigger assignment. It asked us to create between 4 and 6 visualization from a dataset on campaign finances. We were required to use a variety of visualizations and charts. I found density plots and other distribution plots created some impactful visualization. One of the challenges in working with this dataset was that distributions were extremely skewd. A majority of candidates only receive and few thousand in contributes, but a few candidates, particularly presidential and senate candidates, receive millions in contributions. Data normalization was required to show anything meaningful results. Based on our visualizations we were asked to create two hypotheses that could be analyzed using our visualization. I chose to analysis the incumbent advantage and loans to the two major parties (Democrat and Republican).

Link to Assignment 2: https://docs.google.com/document/d/1Rij9zS3DddZ9oDKgQhcKCVrGBedaJ2HC43Fnj6Gp-jo/edit?usp=sharing

For the third assignment, we once again utilized the campaign finance dataset. This time we had to create 8 to 10 visualization with the twist that some of the visualized needed to be used to tell a true story, while others needed to tell a misleading story. We then had to explain which misleading techniques we used in creating the visualizations and how those techniques create a misleading story.

Link to Assignment 3: https://docs.google.com/document/d/1B13PTl0lQERZ3FPwfIgbeVMRdpskoX2xXZHeOCkEtK0/edit?usp=sharing

Exams:

Every other week there is a quiz on canvas. The quizzes are about 20 questions and include repeated questions from previous sections and quizzes. All quizzes are open note. There is a time limit of 30 minutes, but all the quizzes could be comfortably completed within the available time. Additionally, there is a final exam that is in the same format as the quizzes on canvas, but includes 80 questions and takes 2 hours. None of the exams are challenging as long as you were reasonably comfortable with the material.

Overall:

This was my favorite class of the term. I enjoy Alberto Krone-Martins teaching and he seemed to genuinely enjoy teaching the topic. The assignment, while challenging, were interesting and allow enough room for creativity.

Computer Networking

Topics covered:

  • Performance, Protocol Layers, App layer, HTTP
  • HTTP & Email 
  • Email & DNS
  • DNS, P2P, CDN, socket programming
  • Mux/Demux, UDP & Reliable transport
  • Reliable transport
  • GBN & SR
  • TCP reliability & TCP flow & congestion control
  • Router & IP
  • NAT, IPv6, Generalized Forwarding, Routing & Link State
  • Routing & Bellman Ford & Intra-domain routing
  • Intra-domain routing & Inter-domain routing & Link layer & CRC
  • Link layer & CRC & ALOHA & CSMA/CD
  • CSMA/CD, ARP, Ethernet
  • Link layer switch, Data centers, Intro to Wireless
  • WiFi

Class format:

This class followed the typical course structure. Lectures were given by the professor and discussion sections led by TAs. The discussion sections were hit or miss. Sometimes discussions included crucial information, while other times the TA would show up 20 minutes late and rush through repeated information. Both the TAs and professor rely heavily on the slides. Both exams, but especially the mid-term are based strongly on information from the slides. There are 7 assignments, a mid-term and final. The two exams make up only 27% of the final grade, while the homework assignments make up 70%. The class takes a top-down approach to learning about networking. Meaning it starts with high level abstract concepts at the application layer and then works down through the stack to the physical layer.

Assignments:

There is one programming assignment, which you practice using socket in Python. It was the most interesting one, even though there was a bit of confusion caused by broken/buggy code. The other assignments are more typical homework assignments. Some questions could be challenging and time consuming and others could be quick. Some of the most time consuming questions were on TCP.

Exams:

There are two exams, a midterm and a final. The midterm was extremely challenging. Most students didn’t have time to finish it and the class average was a 61%. The midterm asked some highly technically specific questions that only appeared once in the slide, such as the meaning of certain flags in common Wireshark commands. If you didn’t happened to remember that specific detail from lecture you were just out of luck on the exam.

The final was in-person I found it to be a little easier. It asked questions very similar to the homework assignments. I spent a good 2 to 3 days studying for the exam. There was simply a lot of material to cover for the final.

Overall:

This was the most challenging and technical class of the term. Thankfully the homework assignment make up a majority of your grade, because both the mid-term and the final are challenging. There was a lot of needless confusion and poor communication from the professor and TAs that led to a lot of frustration amongst the students. The class could be improved by the the professor not rely so heavily on the slides. It is never enjoyable to attend a lecture in which the professor reads directly from slides for the entire 2 hours. Occasionally, even the professor was confused by some of the wording in the slides. This was likely because he was arriving to lecture unprepared and relearning the material as he was teaching. While this was my least favorite class this term it also provided a lot of practical technical information that has come up at my internship at NASA.

Software Testing and Quality Assurance

Topics covered:

  • Testing Fundamentals
  • Functional Testing
  • Combinatorial Testing
  • Structural Testing
  • Regression Testing
  • Testing Object-Oriented Programs
  • Testing and Profiling
  • Testing Process
  • Debugging

Class format:

Assignments:

There are 3 assignments. All of them are quick and easy. The first simply has you use JUnit to make one or two simple test. The second has you create a control flow graph from source code. The final assignment ask you to achieve 100% code coverage using Junit and mocking.

Exams:

There is a midterm and final. The midterm and final are both in-person pencil and paper exams. The midterm had an interesting format. The first part asked you to create a finite state machine diagram describing the state of a smart watch, then using the finite state machine create test for the system.

The final is all multiple choice and is cumulative, covering the entire course. It included some true/false questions. If you have been paying attention all term you will do fine. I only studied maybe a few hours and did just fine.

Additionally, every 3 weeks there is a check-in quiz. These are basically to make sure that you showing up to class. You should get 100% on all these quizzes.

Overall:

This class unexpectedly became one of my favorites of the term. I thought testing would be a dull topic with there not being much to say about it. However, there is actually a lot of interesting debate and Jim Jones is a fantastic professor. Its clear that he put a lot of thought into developing this course. He makes sure that you come away understanding the important ideas and concepts, but does not require students to remember any trivial facts. If you do what you are suppose to this classes is informative, useful and easy to do well in. My NASA internship has taught me that testing is crucial aspect in any engineering endeavor.

Software Design

Topics covered:

  • General design theory
  • Software design theory
  • Software architecture. Includes practice in designing and case studies of existing designs

Class format:

This class is lecture heavy and often involved a lot of class participation. The lecture slides interestingly did not include any works. There is a lot of writing involved in this course.

Assignments:

There are 3 major assignments, called design studios. All the assignments are group projects, and you are assigned a new group for each assignment. The assignment involved a surprising amount of creativity. Each assignment is basically a project brief. There was a lot of freedom to come up with your own twist or unique ideas. Overall, I found that the assignments were just about getting it done and showing that you put in effort. It didn’t really seem like any of the assignments were seriously critiqued and examined by the graders. If you included all the parts in the template and made the document look professional, you did well.

The first assignment was to create a mobile application for fictional toy rental business. The application would be used by consumers to place orders and manage rentals. For the assignment we were only suppose to build the UI/UX, no coding was required.

Design Studio 1: https://docs.google.com/document/d/1amAuQC9pZT_sigN4wLr57R2yZUHh-B-iOHS6XaY2COI/edit?usp=sharing

The second assignment was all about software design. We were asked to create the software architecture for a traffic simulator. This involved creating UML diagrams to describe all the entities and components that such system would require.

Design Studio 2: https://docs.google.com/document/d/1SXRD4ZLZQd8jUolQlBTjr29L1zBsUZ720ZsJ_zRd0yc/edit?usp=sharing

The third and final assignment involved both application and software design. It tasked us with the design of a mobile application for green initiative education and out-reach around UCI. This was a time consuming though not difficult assignment. It took a lot of time to create the UX design and create all the system design diagrams. I did not get a much if any help from my team on this one.

Design Studio 3: https://docs.google.com/document/d/1WtROcfDGJ9MgaRhE92rdk80_vgoLqUzGZ8ReQYsuVYg/edit?usp=sharing

All assignment ended up being 20 plus pages. Hopefully, though with a good team, you as an individual will only have to write a few of those pages.

Additionally, there are some in-class attendance assignments. Minimal effort is required for those assignments.

Exams:

There are no exams, only bi-weekly quizzes that are open note on canvas. Some of these quizzes actually time intensive. One quiz in particular took 2 to 3 hours and required creating UML diagrams. Expect to spend 1 to 3 hours on these quizzes there are no multiple choice question they are all written responses.

Overall:

Jess Gillespie is a nice professor and enjoys teaching. He brings a lot of experience from industry. This has a good and bad side. It meant he simply did not have any time outside of lecture to devote to the class. Often he came to class already tired, and ended class early. One complaint that I have, is that he does a terrible job of grading assignments in a timely manner. We only got the grade for the first assignment the last week of classes. It was impossible to know how well you were doing in the class simply because nothing was graded and no feedback given. There is a lot of writing in this class, but don’t worry because you are not graded harshly on your writing ability. Overall, I think I got some value out of this class, but it mostly felt like fluff and was a class I was never concerned about or forced to think hard about.