Spring Classes 2024
(INF 143) 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 has a reverse format. Instead of listening to lecture in class and then going home to work on assignment, the lectures are videos you watch on your own and class time is spent working on the assignments. I thought that this format worked well for the class. The lecture are not too technical and mainly involved the professor explaining different features and functions in RStudio and ggplot that we needed to know in order to complete the assignments. It was good to have these videos to go back to while working on assignments. Having the class time ask the professor questions meant that discussion was largely useless. In class the professor was able to spend time with each student to discuss the visualizations that they 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 a data 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 asks 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 of this dataset was that extremely skewed distributions. A majority of candidates only receive and few thousand in contributes, but a few particularly presidential and senate candidates can receive millions of dollars. This meant that the data often needed to normalized to show anything meaningful. Then based on our visualizations we were asked to create two hypotheses that could be analyzed using our visualization. I choose 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 story that is true while the others needed to be used 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 often 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 listening to all the lectures and completing the assignments the quizzes and final exam are an easy A.
Overall:
This was my favorite class this term. I enjoy Alberto Krone-Martins teaching and he seemed to genuinely enjoy teaching the topic. The assignment while challenging are interesting and allow enough room for you to be creative and try to find some interesting insights. Definitely recommend taking it.
(COMPSCI 132) 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 structure. With lectures given by the professor and discussion sections led by TAs. The discussion sections were pretty hit or miss. It was some times frustrating that discussion sometimes 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 on information in the slides. There are 7 assignments and 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 around with some broken code that the TAs had to fix. The other assignments are more typical homework assignments done with pen and paper. The typically asked questions from the slides. A lot of the questions were examples that were used to illustrate a concept. 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 61%. The midterm is curved, but in reality it did not raise the grades all that much. There was a lot of controversy around the midterm curve. Something I found frustrating was that the midterm a questions on really techinically detailed information that only appeared once in the slide. Such as the meaning a flag in a Wireshark packet.
The final was in-person pen a paper and I found it to be a little easier though I do not know how I did on it. 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 that I took this 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. I wish the professor did not rely so much on the slides and book material and actually spent time developing some of his own material. Occasionally, even the professor was confused by some of the material. I think this was because he simply did not review it ahead of time and then would get caught unprepared. 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.
(INF 115) 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 is is using JUnit and a mocking library to achieve 100% code coverage, meaning every line of code is touched by a test.
Exams:
There is a midterm and final. The midterm and final are both in-person pencil and paper exams. The mideterm had interesting format. A major part of it involved creating a finite state machine diagram to describe the states of a smart watch. Then using the finite state machine we were asked to 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 this 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 any or remember any trivial facts. If you do what you are suppose to this classes is informative, useful and easy to do well in. At my internship at NASA it has become clear to me that testing is really crucial. If you have software and systems that one knows how they will preform, that software is basically useless.
(INF 121) 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 basically the teams to design a made up software product based on a 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 effort into it. 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 on it.
The first assignment was to create the application design for fictional toy rental business. The application would be used by consumers to place orders and manage rentals. The application design is only the visual elements, such as the user interface design, and does not involve any aspect of software design or coding.
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 system design for a traffic simulator. This mainly involved creating UML diagram to describe all the entities and components that would need to be programmed for such a system.
Design Studio 2: https://docs.google.com/document/d/1SXRD4ZLZQd8jUolQlBTjr29L1zBsUZ720ZsJ_zRd0yc/edit?usp=sharing
The third and final assignment involved both the application and software design. It was to create the design for mobile application to teach students about green initiatives around UCI’s campus. This was a time consuming though not difficult assignment. It took a lot of time to create the UX design, the build all the system design diagrams. I did not get a much if any help from my team on this one. It was a lot of writing. By the end I was pretty much over it.
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 took a significant amount of time to complete. One quiz in particular required you to create UML diagrams which took around 2-3 hours to complete. Expect to spend 1 to 3 hours on these quizzes there are no multiple choice question they are all written response
Overall:
Jess Gillespie is a nice enough professor. He comes from industry and has a day job. This has good and bad, but mostly means he simply does not have time outside of class. Often he came to class already tired, and class often ended early. One complaint that I have, is that Gillespie 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. I think this was because all the assignments were written which meant they all had to be read to be graded. There is a lot of writing in this class, but don’t worry because you are not critically graded 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.