Welcome to my blog!

Here, I post on topics relevant to my time here at the university, general topics on computer science and business administration, and anything interesting that I learn as a student and lifelong learner.

Wish to reach out to me about my blog posts? I'm open to questions, comments, and suggestions. Feel free to contact me.

Archives


Undergrads of UTCS: you probably don't need a master's in CS

April 9, 2020

(Draft)

I was originally gonna do a BS CS Turing + BBA BHP and then go to grad school and stuff, now I'm probably just going to do a BSA CS and idek about the BBA anymore lol

but this is because 1) BS vs BSA has no difference if you're going into industry and 2) you can get really good jobs from UTCS undergrad

I usually see CS masters programs for people who 1) need the credentials (like int'l students who are trying to get H-1Bs), 2) people who didn't get their undergrads in CS and are trying to enter the SWE field, or 3) people who went to not as good schools for CS undergrads and need a credential booster to get a better than normal CS job


A guide for students to use Zoom

March 15, 2020

UT Austin has purchased Zoom licenses for every student, faculty, and staff member. UT has created a Zoom account for you, which you can use by logging in with your EID by following the instructions below. You will not need to use the free version of Zoom.

Setup instructions:

  1. Download the Zoom client: https://zoom.us/download
  2. Download the Zoom app on your smartphone
  3. When you open the Zoom client or app, DO NOT CREATE A NEW ACCOUNT! Instead, click "Log in with SSO". When prompted for your Zoom domain, type in "utexas".
  4. Log in with your UT EID. You should then be logged into Zoom with your UT credentials.

How to sign up for office hours:

  1. Go to your class's Canvas page
  2. If your instructor asked you to sign up beforehand for office hours, then click on the link they gave you to schedule an office hours appointment
  3. Alternatively, you may be given the link directly by your instructor, via email or a private message, if it is a one-off office hours meeting.

How to join a scheduled Zoom meeting in your class:

  1. Go to your Canvas page and click on the Zoom tab
  2. Click on the "Join" button to the right of the meeting you want to join
  3. The link should open up in Zoom
  4. If the link doesn't lead you to open Zoom, find the meeting ID, go to Zoom, press "Join", then put in the 9 digit meeting ID.

If you don't see any meetings scheduled in your Canvas class:

  1. Find the 9 digit meeting ID your instructor has shared or ask your professor for the 9 digit meeting ID.
  2. Join the meeting by going to Zoom and pressing "Join". Then, put in the 9 digit meeting ID.
  3. Recommend that they use the Zoom tab under their Canvas class to schedule meetings from here on out. You can share a faculty Zoom guide with them: https://www.cs.utexas.edu/~wang/zoom

Using Zoom for online instruction

March 15, 2020

Students: Click here to access your Zoom guide

This guide is for faculty and teaching assistants only. Please click the above link if you are a student using Zoom!

Share this guide with the following link: https://www.cs.utexas.edu/~wang/zoom

Last updated Sundary, March 22

As in-person lectures shift to an online medium, there's been a lot of questions over how exactly instructors will be handling this. This semester, I am a teaching assistant for Dr. Chand John's CS 312 class. We are a lecture-based class with 100 students in each lecture section, with discussion sections where we administer quizzes. When we heard Provost McInnis's directive to move classes like ours online, we immediately got to work making Zoom work for our class.

Below, I've recorded a tutorial that gives an overview of how the CS 312 instructional staff is planning to use Zoom in CS 312 and our recommendations for instructors to have the best experience possible on Zoom.

Addendum to this video: After trial and error, if you feel that you do not wish to spam your students with Canvas notifications and you do not want to make it available on the Zoom tab of your Canvas page, then we recommend creating scheduling meetings from utexas.zoom.us, the official portal for UT Austin Zoom, rather than doing it from the Zoom tab of your Canvas video. This will allow finer grain configuration of your meetings, as well as the added benefit of not spamming your students with 30 Canvas notifications at a time. However, your meeting will not show up on the Zoom tab on the class Canvas page, so you would need to share the meeting ID manually with students via a Canvas announcement.

What should I use Zoom for?

Lectures, discussion sections, examinations, and office hours should all be moved to Zoom if at all possible. Zoom works well for all of these activities because of the different settings you can configure for your Zoom meeting. Below, I'll detail the best way to configure Zoom meetings for each activity. All of these activities should have their own scheduled Zoom meetings as opposed to ad hoc meetings that are shared with students at the last minute.

How do I schedule a Zoom meeting?

You can do so via the Zoom tab on your class's Canvas page. A walkthrough is available on the video. If you do so via the Zoom tab, then your scheduled Zoom meeting will appear automatically so that your students can automatically see it. Finer grained controls for the meeting are then available if you visit utexas.zoom.us.

Addendum to this video: After trial and error, if you feel that you do not wish to spam your students with Canvas notifications and you do not want to make it available on the Zoom tab of your Canvas page, then we recommend creating scheduling meetings from utexas.zoom.us, the official portal for UT Austin Zoom, rather than doing it from the Zoom tab of your Canvas video. This will allow finer grain configuration of your meetings, as well as the added benefit of not spamming your students with 30 Canvas notifications at a time. However, your meeting will not show up on the Zoom tab on the class Canvas page, so you would need to share the meeting ID manually with students via a Canvas announcement.

What are recommended Zoom meeting settings?

These are just recommendations. I justify some of the selections in my video.

For lecture:

  • [x] Enable join before host
  • [x] Mute participants upon entry
  • [ ] Enable waiting room
  • [x] Only authenticated users can join
  • [x] Record the meeting automatically

For discussions/recitations:

  • [x] Enable join before host
  • [ ] Mute participants upon entry
  • [ ] Enable waiting room
  • [x] Only authenticated users can join
  • [x] Record the meeting automatically

For examinations:

  • [x] Enable join before host
  • [x] Mute participants upon entry
  • [ ] Enable waiting room
  • [x] Only authenticated users can join
  • [ ] Record the meeting automatically (instead, record manually and ensure it is saved locally so students cannot see it)

For office hours:

  • [x] Enable join before host
  • [x] Mute participants upon entry
  • [ ] Enable waiting room
  • [x] Only authenticated users can join
  • [ ] Record the meeting automatically

There are additional meeting settings that you can configure at https://utexas.zoom.us/profile/setting.

What should I do for lectures?

Lectures should have every student muted on join. When the instructor joins, they can choose whether to enable their camera or not, but this is not necessary. Once they are ready to speak, they should unmute themselves but not other students. More than likely, the instructor should share their screen. There are several different things they can share:

  • Their entire screen (not recommended)
  • The application they wish to present from (e.g. PowerPoint)
  • A document camera attached to their computer (need to go to the "Advanced" portion of screenshare to do this)
  • Zoom Whiteboard (not recommended)
  • iPhone/iPad screen connected by cable (recommended if you have an iPad and Apple Pencil)

During the lecture, students can send reactions to the professor. Some reactions include: yes, no, speed up, slow down, thumbs up, thumbs down, take a break, etc. These reactions don't interrupt the instructor while they are speaking but provide instantaneous feedback to the instructor when they are free to view the Zoom participants list (where the reactions are shown).

Depending on whether you wish to allow for students to chat during the Zoom chat, you can enable or disable this feature. It's a good idea to have this feature, especially if you can have a TA help monitor your Zoom meeting.

To add a TA or another instructor as a co-host of your Zoom meeting, you can configure your meeting and add them by their EID followed by @eid.utexas.edu. For instance, for someone with the EID abc1234, you can do: abc1234@eid.utexas.edu.

Zoom offers a polling feature that allows instructors to run polls similar to iClicker or Squarecap. In order to use this as a replacement to iClicker, you will need to require students to pre-register for the Zoom meeting. This is somewhat annoying, so I don't recommend it. However, if you just want to run anonymous polls and get the aggregate response, then Zoom polls are great.

More information on polls here: Zoom polls

If you want to facilitate small group discussions, you can use breakout rooms. (Information on managing breakout rooms: Managing video breakout rooms)

Breakout rooms are not an option that needs to be enabled in the meeting settings. You create them on the fly within the Zoom application.

What should I do for discussions and recitations?

Depending on how your discussion or recitation is conducted, you'll want to adopt something similar to the recommendations for lectured I've shared in the above section.

If you want to facilitate small group discussions, you can use breakout rooms. (Information on managing breakout rooms: Managing video breakout rooms)

Breakout rooms are not an option that needs to be enabled in the meeting settings. You create them on the fly within the Zoom application.

What should I do for examinations?

To be honest, exams and quizzes are most likely the most awkward to proctor over Zoom. If you do not mind your students paying $20 per exam session, you can use ProctorU or a similar solution. However, ProctorU can get costly if you require more than just a few exams/quizzes, and they require students to install privacy-invasive software that I personally do not find very comfortable using/requiring my students to use.

However, from what other universities have begun to do, examinations and quizzes can still be proctored from Zoom if possible. Here is what will need to be done:

  • Disable the chat and file sharing feature on the meeting.
  • Record the meeting locally (ensure that students cannot see this recording, for obvious reasons).
  • Mute all students.
  • Require every student to turn their webcam on.
    • Ask each student to use a webcam that they can rotate as needed so they can guarantee they are not cheating with anything in their surroundings or a secret double monitor.
    • Also, ask them to use a reflective surface, such as a small mirror or their smartphone, so they can prove that they did not tape anything to their monitor.
    • Ask them to disconnect any separate screens they may have, unless it is for their SSD-approved accommodations.
  • Require every student to share their ENTIRE screen.

The largest limitation Zoom has: only one shared screen may be viewed at a time. My recommendation is for the proctor to cycle through each of the shared screens while keeping an eye on every student's camera, which can be seen all at the same time.

Due to Zoom's limitations, I recommend placing exams on Canvas. It logs every student's action, from how much time they spent on each question, when they changed questions, to important things such as whether they clicked out of their Canvas browser window. This audit log is very useful for ensuring students do not cheat by clicking away from Canvas. For coding classes, HackerRank quizzes offer similar benefits and are recommended for ensuring academic integrity is upheld.

The UT Faculty Innovation Center is strongly encouraging faculty to give open-note examinations. Given the headache I went through writing this section of this post, as well as the headache it will be to cycle through dozens of students' webcams and screens, I recommend this as well.

Update: Instructors may install a tool called Proctorio on their Canvas course pages to proctor their exams instead. UT Austin has a Proctorio license. See this page for more information about using Proctorio: https://utexas.instructure.com/courses/633028/pages/proctorio-lock-down-browser-tool

What should I do for office hours?

If you want to talk with students one at a time, I recommend creating a breakout room for you and that student to be in, while the other students who are waiting in line can converse among themselves in the main room.

(Information on managing breakout rooms: Managing video breakout rooms)

I don't recommend using a waiting room for office hours. That would allow you to keep students waiting until the host (you, the instructor) let them in manually. I prefer breakout rooms because they let the students do something productive while they wait for your help. If you want to enable a waiting room, you can enable this option on the meeting settings.

Unlike the waiting room, breakout rooms are not an option that needs to be enabled in the meeting settings. You create them on the fly within the Zoom application.

If you want to schedule one-to-one office hours, you can schedule a meeting through the Zoom application or online at utexas.zoom.us as well.

To keep a line, I recommend using an online line-up system that I developed for CS 312. You can see it in action here and if you want to use it for your class as well, email wang@cs.utexas.edu for details. Two options exist:

  1. Hosted for you, free of charge. All I need are a list of your office hours times and the name of the instructor/TA that holds each of them.
  2. Get the PHP code for this system and install it yourself.

How do I get students to join my Zoom meetings?

There are a few ways students can join your Zoom meetings. The least confusing method is by scheduling your meeting on your Canvas course's Zoom tab. The video above walks you through on how to do this.

Alternatively, for private meetings that are for specific students, I recommend either letting them join your own meeting room, which I also show how to get the information for that near the end of the video, or schedule your own meeting through the Zoom website/app and share the 9 digit meeting ID. For instance, 123-456-789 is an example Zoom meeting ID. Attendees can then go to the Zoom app, press Join, and put in this 9 digit meeting ID into Zoom to join that specific meeting.

We sent the following announcement to our students: A guide for students to use Zoom

Further resources

The UT Austin Faculty Innovation Center and LAITS Liberal Arts Instructional Technology Services are spearheading campus-wide efforts to help faculty transition online. Visit the Instructional Continuity page for more details.

I'm linking their site because they are the official resource for the university. That being said, some of their recommendations differ from those on here. While it is up to you to decide which to follow, I would like to note that their recommendations have been created out of obligation (of their jobs) and not from experience. The recommendations I've given here are the options we have decided to pursue as instructional staff for a real class after dry runs with students.

Help improve this guide!

This guide is still under construction. If you have any suggestions on what to add to this guide, or if you have any questions about any part of this guide, please let me know. My email address is wang@cs.utexas.edu. Don't hesitate to reach out if you have questions. We are all in this together.

Alternatively, official support is provided by the Faculty Innovation Center and LAITS.


Announcing the Hack For The Future Scholarship

November 25, 2019

A few weeks ago, I shared my story about being suspended from school for gaining admin privileges on my school-issued laptop when I was in high school. But I haven't forgotten my pledge to enable the future generation to #HackForTheFuture. That's why I'm excited to announce the Hack For The Future Scholarship. Every year, one McKinney ISD high school student will be gifted a brand new laptop to replace their school-issued laptop. This award will enable a student to further their exploration of technology without being hindered by the school administration's iatrogenic barriers.

If you know a high school student at McKinney ISD who is deeply passionate about technology and feels hindered by their current resources, please share this with them; I encourage them to apply.

While I would love to offer this award to more students than just one, this is as much as I can afford to bestow upon students at the moment.

Four years ago, I was unable to purchase a new laptop (given that I was a broke teen) and as a result was stymied from being able to run a lot of CS-related applications on my school-issued laptop. I don't want the same thing to ever happen again. Now that I have a bit of money to spare, to which I attribute having a non-school laptop, this is my very small contribution that I hope will enable a student who isn't as fortunate to be able to buy their own non-school-issued laptop, so they will not be encumbered by the school's limitations and will be able to truly learn whatever technologies they want. I wouldn't have been where I am today had I not left McKinney ISD and been able to use a personal laptop. I want to give back to my community and ensure the injustice that occurred to me will not happen again.

More details here: https://www.cs.utexas.edu/~wang/hackforthefuture


#HackForTheFuture, 4 years later

November 3, 2019

Today marks the fourth anniversary since I was suspended from high school for exploiting a security vulnerability in macOS to gain admin privileges to my school-issued laptop. While these events are easy to forget and often overlooked as just things that happened in high school, I think it's a very formative event in my life that's taught me many lessons. I'd like to take a moment today to reflect over what happened and to encourage this from never happening again to innocent students.

A little bit of background behind what happened: my school district began to issue MacBook Airs to each student beginning with my class. I had this MacBook for a little less than a year before I became frustrated with how locked down it was. Along with some of my classmates in CS, I began to investigate how we could remove these barriers. Why? It wasn't because we were tired of the school firewall; we already found ways around that even without any unauthorized privilege escalation. I remember being extremely frustrated that I wasn't able to install basic software that I needed for my classes, such as the latest version of Microsoft Office, Eclipse, and Xcode.

Once a classmate found a security exploit in macOS that wasn't patched on our laptops, I immediately tried it out. Lo and behold, it worked! Now, I had a regular laptop and I could use it for whatever I needed, just like an adult. That is, until November 3, 2015, when the MacBook technician walked into my CS classroom and told me she needed to confiscate my laptop. Later that day, I complied with the investigation in the assistant principal's office, and as a reward for my compliance, I was given 2 days of in-school suspension instead of 1.

Needless to say, I was upset. What was surprising was what happened afterwards. I arrived home after being given two days of ISS, expecting to be scolded for hours on end by my mom. Instead, she told me something I'll never forget: "what you did was wrong, but it wasn't bad." In the midst of my Stockholm Syndrome, I realized she was right, and relieved she was on my side for once. (Asian parents usually aren't on your side, especially if you've been suspended by your high school.) She was right because I wasn't trying to change my grades. Ethically speaking, I broke the rules, and that was wrong. But morally, what I did had zero malicious intent. I was simply a naive student who was tired of having a locked down laptop.

After word got out, Twitter was filled with support from students in the high school, saying I shouldn't have been suspended. (See hashtags #FreeJeffWang and #HackForTheFuture.) The next day, my mother went to talk with the principal. Thankfully, my mom was technically competent, so she educated the principal on what I did and its ramifications. The principal realized that maybe my punishment of two days of ISS was too strict (that's usually given to people who start fights!), but claimed "since the punishment already began, it's too late to undo it now." (Bullshit, but okay.)

Thanks to the support of everyone I had around me, I realized that I shouldn't be sorry for my intentions. What I was trying to do was right, but unfortunately the execution clashed with the rules. I realized I should not be apologetic for trying to advance my education and my computer science skills. Today, I continue to believe this. Nothing that has happened after this incident made me regret what I did. In fact, it only confirmed how short-sighted the school's response was.

After this event happened, I was profoundly disturbed by the lack of awareness that school administrators had. To this day, no administrator involved in this incident has either addressed this nor apologized for their rash decision to interrupt my attendance in classes for enabling my ability to succeed as a student. They need to realize that I'm no longer angry I was given ISS, but rather the message this sends to students is very much the wrong message. Students should be encouraged to further their education, not be punished for fixing a shortcoming of the school's system.

Conversely, I saw the humanity from all of my teachers. None of them judged me for being suspended, for being a rebellious troublemaker, as I had feared. Instead, every single one of them supported me the best they could, even though I couldn't attend class. One teacher brought her entire class down to the ISS room so I could listen in - I will never forget her support, the symbolism of this, and how much my classmates stood by me.

But I realized my high school failed me. I could no longer stay. As a result, one of the key reasons why I decided to go to an early college high school in 11th grade was because I knew McKinney Boyd High School would not allow me to realize my full potential. That hurts to say, because all the teachers and students supported me, but the bureaucracy made it difficult to continue being a student.

Today, I'm studying at a nationally top 10 computer science program. Ironically, I just finished attending a hackathon, HackTX, where I'm rewarded for technological innovation, 4 years after I was punished for doing the same thing. I've been able to intern at a great tech company and learn. I've seen much more than my 10th grade self saw. If there's one thing I would tell Jeffrey in 2015, I would say: "it gets better, because in real life, these silly restrictions don't exist. What you did was justifiable in the face of the cards you were dealt. As an adult, you won't face any of this bullshit." I'm just thankful that this blemish did not affect me in my later life.

What did I learn from this incident and what were the consequences of this incident?

First lesson: don't blindly trust authorities expecting good things to happen to you. Sorry kids, the world isn't fair. Look out for yourself or people will screw you over, even if they're supposed to be the good guys.

Second lesson: there's genuinely people in life who will do the right thing even if it's not what the authority figures sponsors. That really revived my faith in humanity after it was crushed by an administration that refused to admit it made a mistake.

Third lesson: technology proficiency and understanding is still very limited among older generations and those in power. Key to increasing technological understanding is to be able to guide decision makers and leaders to make choices that respect the advancement of technology learners.

Fourth lesson (the most important): students, don't give up if you're trying to pursue tech but you're impeded upon by people who just don't get it. Push through. It is a struggle I vividly remember. I'm extremely thankful I no longer have to endure the ridiculous restrictions to which I was subjected in high school. They impeded upon my ability to learn; don't let it impede upon yours. Do whatever you can (legally) to mitigate lack of technological ability while not causing trouble. In a professional setting, these issues simply don't exist. My work laptop at my internship this summer gave me full administrative privileges so I could install whatever I needed to do my job. It's ridiculous this issue even exists in high school.

As a society, we need to do better. We should empower students to learn about technology, not punish them for experimenting and empowering themselves. When adults failed me, I was punished for fixing their incompetencies. We should never do this again. We need to reward and encourage future generations to make this world a better place by letting them empower themselves with their bright minds. Let the next generation #HackForTheFuture.



Archive

Back to top