Author: mattchung

  • My First Research Paper: COVID19 and the impact on higher education

    Abstract—This research paper explores the impact of the COVID-19 health crisis on the education sector by unpacking the challenges and successes of the forced migration of professors and their curricula onto online learning platforms. Quantitative research was conducted in the form of a domestically focused survey to determine the success of those teaching models and the transition to online education by focusing on the experience of educators. This paper ultimately argues that under the specter of a pandemic, the ensuing online education has been as successful as possible, and that despite a myriad of global negative impacts, COVID-19 has opened the door to reform traditional learning, allowing educators to take advantage of this golden opportunity to unlock the power of online education.

    Above is the abstract pulled from my first ever research paper: What does effective education look like in the context of COVID-19, and how can subsequent successes and challenges be measured in order to ensure the future of online learning and the educa- tors that make it possible?

    I conducted the research (read at least three dozen of other educational peer reviewed papers, designing my own survey, sending survey out to thousands of professors teaching domestically) over  this past summer as part of Georgia Tech’s Educational Technology Course. Essentially, I wanted to identify the “best practices” of teaching in the midst of COVID19 and compare them against what was really happening: chaos.

    For the survey, I was able to collect responses from 500+ professors teaching at universities including Massachusetts Institute of Technology, Georgia Tech University, University of Washington and much more1.

    Surveyed professors teaching at schools including Massachusetts Institute of Technology (MIT), Georgia Tech University, University of California Berkeley
    Surveyed professors teaching at schools including Massachusetts Institute of Technology (MIT), Georgia Tech University, University of California Berkeley

     

    (more…)

  • Daily Review – 2020/08/20

    This post reviews yesterday, Wednesday August 19th 2020. Should I change the title to yesterday’s date or keep today’s date? Not sure, but I should probably stay consistent in my posts moving forward.

    Although I’m physically exhausted and tired than usual from waking up early (around 04:30 to 05:00) every day to crank out studying or homework assignments, I feel emotionally and mentally better, less stressed out, knowing that I’m making forward progress on my assignments instead of dealing with an avalanche of work over the weekend.

    Photo of the day

    Breakfast on the hotel floor (Suncadia Hotel) with Elliott and Jess
    Breakfast on the hotel floor (Suncadia Hotel) with Elliott and Jess

    Word of the Day

    Despondent – in low spirits from loss of hope or courage.

    (more…)

  • Advanced Operating Systems – Day 3 Recap

    The below write up consists of notes that I took while watching Multi-Threaded programming module from the Advanced Operating system’s refresher course1. I watched this third module before the second module (on File Systems, the next lecture series I’ll watch) because I started tackling the homework assignment that has us students debug a buggy multi-threaded program written with the POSIX threading library.

    Although I was able to fix many of the problems by writing the man pages of various system calls (e.g. pthread_join2, pthread_exit3), I wanted to back my troubleshooting skills with some theoretical knowledge, and I’m glad I did because I had forgotten that if the main thread (first thread that spawns when OS starts the process) calls exit or return, then all threads exit; this behavior can be modified by having the main thread call pthread_join instead, causing the main thread to wait for some other specific thread to terminate.

    Recap

    Shows that Thread shares the heap, globals, constants, and code - but contains its own stack
    Shows that Thread shares the heap, globals, constants, and code – but contains its own stack

    Writing multi-threaded code is difficult and requires attention to detail. Nonetheless, multi-threaded offers parallelizing work — even on a single core. Threads are cheaper in terms of context switching when compare to process context switches, since threads share the same memory space (although each thread manages its own stack, which must be cleaned up after if the thread is created as a joinable thread — detached threads, on the other hand, are cleaned up automatically when they exit) When using threads, there are a couple different design patterns: team, dispatched, pipeline. Selecting the correct design depends on the application requirements. Finally, when writing multi-threaded programming, the program must keep in mind that there are two different problems that they need to consider: mutual exclusion and synchronization. Regardless, for the program to be semantically correct, the program must exhibit: concurrency, lack of deadlocks and mutual exclusion of shared resources/memory.

     

     

    (more…)

  • Advanced Operating System Notes – Memory Systems (2/2)

    Notes below are from my first study session at 05:00 AM, before I hit the rest of my morning routine: walking the dogs at the local park, blending a delicious fruit smoothy (see my blog post on best vegan smoothie), then jumping behind the desk for hours for work. In the evening, I detoured from watching lectures and instead, focused on working on the pre-lab assignment (write up on this in another post)

    Page table - the underlying data structure that maps virtual pages to physical pages
    Page table – the underlying data structure that maps virtual pages to physical pages

     

    Summary

    Rest of the video lectures wraps up the memory system, discussing how virtual memory and its indirection technique offers a larger address space, protection between processes and sharing between process. For this to work, we need a page table, a data structure mapping virtual page numbers to physical frame numbers. Within this table are page table entries, each entry containing metadata that tracks things such as whether the memory is valid or readable or executable and so on. Finally, we can speed up the entire memory look up process by using a virtually indexed, physically tagged cache, allowing us check the TLB and Cache in parallel.

    (more…)

  • Daily Review – 2020/08/18

    • Seems like my mind and body know to wake me early in the morning (around 05:00 AM), a small window in time in which I can cram in a lot of work before everyone else wakes up
    • Thinking about daily reviews rolling up into weekly reviews, into monthly reviews, etc
    • Out of the corner of my eyes, I witnessed a spider dashing across the room, so I caught it and temporarily placed it under a glass jar, the spider now sitting table and birthday card (will free it later)
    • Jess and Elliott accompanied me this morning, the two of them joining me on my daily dog walk (a couple photos below)
    • Caught Metric red handed: she was about eat her poop, so I slapped the kitchen window, freaking her out, at which point she ran inside the house
    • Watched half an episode of The Community — I love Abed — while eating dinner with Jess
    • Elliott woke up non stop during dinner, not giving Jess a single moment to relax or really even finish dinner in peace (one day this will change, they say)
    • At work, focused on reviewing team member’s code reviews, deploying some of my new features (to us-east-1)
    • Squeezed in two major study sessions, one at 05:30 AM until work (with dog walk in between) and one in the evening (this session focused on me stepping through multi-threaded code using the graphical debugger, me switching threads and inspecting the instructions and stack)
    Tired puppy from chasing the ball
    Tired puppy from chasing the ball
  • Advanced OS – Study Notes Reflection (from day 1)

    I divided studying into two sessions: one in the morning (around 04:30 am) and one in the evening after work and after my daughter has gone to bed.  In the morning, I completed the administrative tasks and watched lectures that cover new material and in the evening I refreshed my memory by taking the operating systems review course.

    OS Fundamentals Review: Quiz on calculating tag, index, and offset for cache entries
    OS Fundamentals Review: Quiz on calculating tag, index, and offset for cache entries

    (more…)

  • How to configure Ubuntu w/ nested virtualization using Vagrant and Virtualbox on MacOS

    If you are taking advanced operating systems course at Georgia Tech (OMSCS) and want to run the the lab environment on your mac laptop (or desktop) using Virtualbox, then follow the below instructions. Below, you’ll find a Vagrantfile that will launch a virtual machine, install Ubuntu and configure nested virtualization:

    Virtual box w/ nested virtualization
    Virtual box w/ nested virtualization

     

    (more…)

  • Advanced operating systems – Pre-assessment (81% prepared for the course)

    As mentioned in my first post this morning, today marks the first day of Fall 2020 and I’m taking advanced operating systems (AOS), a systems class I’ve had a burning desire to take close to two years ago.

    The first assignment assigned in course is a pre-assessment, consisting of 22 yes/no answers, designed to to “gauge readiness for this graduate-level Advanced Operating Systems course”. I filled out this document (screenshot below) and my answers are mixed but overall I’m pretty prepared.  Of the 22 questions, I answered “yes” to 18 of them, “no” to four.  Based off of that, I’m about 81% prepared for this course.

    (more…)

  • Advanced operating system course starts today

    CS 6210 (Advanced Operating Systems) is a graduate level course that covers in detail many advanced topics in operating system design and implementation. It starts with topics such as operating systems structuring, multi-threading and synchronization and then moves on to systems issues in parallel and distributed computing systems. There is no textbook for this course. Rather, we will read and discuss a number of important research papers related to these topics. For each paper that is covered in class , students are expected to gain a solid understanding of the problem that is addressed by the paper, and the solution proposed by the authors.

    Today is officially first day of Fall 2020. We’re still in the midst of COVID19 but given that that my online masters program in computer science has always been conducted fully remote (i.e. distance education), there’s no changes for me, really (as it relates to education). This semester, I’ll be taking advanced operating systems1, a course that’s really focused on distributed systems.

    Before jumping into watching the video lectures, I’m going to take a brief assessment2 that’s required of us students. This pre-assessment helps us students gain a better understanding of the prerequisite concepts necessary for success in this course”. Then I’ll download the syllabus, set up my workstation (for projects and lab environment), then if I’m lucky, watch a video lecture videos.

    References

    1.  https://omscs.gatech.edu/cs-6210-advanced-operating-systems-course-videos
    2. https://www.cc.gatech.edu/~rama/CS6210-External/cs6210_diagnostic.pdf

    Appendix

    Didn’t sleep well last night for whatever reason. Probably because so many thoughts were racing through my mind (like starting this semester) and as a result, my brain woke up at around 04:30 AM. Oh well. I’m going to get the day started early since today is also my first day back at work after taking a (much needed) one week vacation. Better get cracking now because Elliott will be waking up any minute now.

  • Weekly Review – 2020/08/09 – 2020/08/16

    Past Week

    • Published 8 blog posts within a week. I’m developing a cadence, aiming for one (very) short blog posts a day and one medium blog post per week. I think this target is manageable and S.M.A.R.T and will help force me to get in the habit of shipping small fragments instead of never shipping (in)complete blog posts.
    • Took a 3 day vacation with wolf pack at Suncadia, a hotel resort in eastern Washington. This was the first “holiday” (if you can call it that) since COVID19 hit. So … that’s about 6 months and I totally needed it, since I felt my mental health was deteriorating and it was impacting not just work but my personal life: my patience for others was wearing thin and found myself snapping at almost everyone (especially at Jess, no fair to her). Overall, unplugging for the past week has been great not just for me but the for the entire family. Able to spend quality time despite being in the midst of a pandemic and able to help more around the house
    • Hit with tennis coach on Sunday, my first lesson in about 8 months? I had considered cancelling the lesson the day of given that the weather was blistering, 99 degrees (and probably hotter on the tennis court).
    • Bathed Elliott every night this week. Finding joy in these fleeting moments. She’s growing up so fast and although I’m almost always tired, she’s worth it.
    • Refined my organization and writing workflow. Started creating a digital library, scanning about 10 of my books using my recently purchased ScanSnap.
    • Finding that my slimmed down GTD (getting things done) system is kind of working. Needs some tuning – probably need to incorporate a tickle file to remind me of projects, goals, etc.
    • Cooked a couple decent tasting meals. Always feels good to eat clean plant based meals and feels good to help Jess out
    • Still haven’t mustered up the courage to reach out to my dad. I think about him daily but him and I are entangled, like two cowboys about to fast draw but nobody will make the first move

    Next week

    • Start advanced operating systems next week (i.e. Monday). Will need to switch back on into academic mode
    • First day back in office after a week long (much needed) vacation.