Saturday, October 17, 2020

Virtual international academic conferences and workshops

A lot of major academic conferences in computing are being held online/virtual these days. The conferences and workshops I was able to attend so far include the following:

These conferences waived the registration fees this year. I hope to add more to this list.

If you are interested, here is a list of upcoming conferences from various professional organizations:

Friday, October 2, 2020

On remote learning/teaching

Remote learning poses some new challenges to students and instructors. As an instructor, the question that I always ask is "How can I effectively and efficiently deliver my courses to students?" I've been using technologies in teaching already   so it is a little bit easier for me to transition to remote learning. The challenge I think is in the assessment and enforcing academic honesty. 

Coming up with the course guide was the first step.  It contains the "outline" for the semester with topics, learning outcomes, and laboratory activities specified per week. Materials such as video lectures will be prerecorded or delivered live and uploaded. Exams will be delivered online, multiple choice type. Additional materials such as slides and handouts will be made available for download also. Communications will be done through email and messaging tools.

Thus, this semester the following tools occupy my screen most of the time:

  • Google Classroom - general class housekeeping
  • Github/Github Classroom - lab/programming activities
  • OBS Studio - recording/streaming lectures
  • Youtube - storage and streaming of lectures
  • Zoom - video conferencing
  • Shotcut - video editing
  • Veikk A30 Tablet - for use in whiteboard app
  • Openboard - whiteboard app
  • Kahoot - quiz engine
  • G Suite - documents, presentations, spreadsheets, storage, calendar
  • Slack - messaging/collaboration
  • Gmail - email

 

 

Green screen setup

 

Tuesday, April 14, 2020

ROOTCON's Easter Egg Hunt Event 2020: Power

Since we are in ECQ, I tried some of the problems. I decided to focus on the Power problem which is a crypto problem.

The flag is: rc_easter{p0w3r_1s_n07h1n6_w17h0u7_c0ntr0L}

You can read the full writeup here.

Monday, March 9, 2020

Count the number of downloads of publications

I make my publications public. I was curious about the download count of the papers so I wrote a bash script. My site is using Nginx as the web server software thus I can process the access logs which contain the HTTP requests. So as of writing this post and from Feb 23, 2020, the following are the download counts.

     21 /publications/pabico-pitj2008-perceived.pdf
     14 /publications/tolentino-iwcfu2012-disaster.pdf
     13 /publications/raquel-iwcfu2012-parallel.pdf
     12 /publications/hermocilla-ncite2016-osv-mpi.pdf
     11 /publications/escamos-acrs2015-comparison.pdf
     10 /publications/aluning-ncite2010-terra.pdf
      9 /publications/silapan-iwcfu2012-using.pdf
      8 /publications/lara-ncite2017-exploring.pdf
      8 /publications/duldulao-ncite2011-an.pdf
      7 /publications/lactuan-pitj2011-a.pdf
      7 /publications/hermocilla-pitj2009-ics-os.pdf
      7 /publications/cabigting-iwcfu2012-eucalyptus.pdf
      7 /publications/borja-iwcfu2012-squigis.pdf
      7 /publications/aguila-ncite2015-sustainable.pdf
      5 /publications/lactuan-ncite2011-a.pdf
      5 /publications/hermocilla-ncite2014-p2c.pdf
      5 /publications/carpio-pcsc2017-skylab.pdf
      4 /publications/hermocilla-model2009-a.pdf
      4 /publications/escamos-acrs2016-bertud.pdf
      3 /publications/manzano-sfrc2013-squidler.pdf
      3 /publications/macasaet-iwcfu2012-a.pdf
      3 /publications/eclarin-ncite2014-dgrav.pdf
      3 /publications/bulalacao-sfrc2015-is.pdf
      3 /publications/aguinaldo-iwcfu2012-automatic.pdf


The one-liner below does the trick.
Loading or something, this is just text to display while the browser pulls the gist....

Saturday, February 29, 2020

DOST Call Conference 2020 Experience



I attended the call conference hosted by the Department of Science and Technology last February 28, 2020. The call conference is intended to provide a unified venue to present some updates and new requirements and procedures  for research proposal processing, and submission. The event was participated by representatives from different HEIs and RDIs in NCR and Region IV.

One interesting requirement needed for research proposals for this round of calls is that there should be a private company partnering with the proponents. The purpose is for the possible commercialization of the research output. Although this is an interesting development, I think this will be difficult, especially for SUCs and UP. Issues regarding Intellectual Property should be addressed early on in the project.

The figure above shows some statistics about the DOST-funded projects sorted according to decreasing research index.

Sunday, December 22, 2019

A review of my CMSC 131 class offering



Last semester I taught, for the first time, the Introduction to Computer Organization and Machine Level Programming course for undergrads. Traditionally this course mainly teaches students x86 (32-bit) assembly language programming in an Ubuntu environment using NASM. I decided to "upgrade" the course by directing the course towards systems programming and introducing x86-64 assembly language. My main reason for the upgrade is to prepare the students for their Operating Systems class which they will take later and which I also teach. In order to achieve this goal, I needed textbooks to guide me which led me to use the following:
CS:APP was created by professors from CMU and is widely used in many top universities. I used the slides provided by the book. But in my lectures, I have several open terminals to demonstrate the actual operation of the codes. ALPU is a good book also with simple exercises at the end of each chapter.

The topics (based on the CS:APP2e contents) I was able to cover in the lecture are the following:
  • A tour of computer systems
  • Representing and manipulating information
  • Machine-level representation of programs
  • Memory hierarchy
  • Linking

In the lab, I was able to cover most of the chapters in ALPU, excluding DDD, Macros, Stack Buffer Overflow, I/O Buffering, Floating Point, and Parallel Processing.

I introduced GDB in the lab to help students debug their programs. I also used GitHub Classroom for distributing boilerplate code and code submission.

In my lectures,  the emphasis is on how the GCC compiler translates C source code into assembly language and how the processor executes the machine code. I always have terminals open to fire up GCC and GDB during lectures.

For future improvement of the offering of this course, I recommend the following:
  • Use same syntax in both the lecture and lab. CS:APP2e uses AT&T syntax while ALPU uses Intel syntax.
  • CS:APP2e is still 32-bit with a little introduction to 64-bit. It may be possible to use the 3rd edition which I believe is purely 64-bit.
  • Most of the programming exercises do not accept input and produce output interactively. A GDB command/script file can be used to provide input and produce output by explicitly stating the variable names, memory addresses, or registers. Checking of programming exercises can be automated using GDB command scripts.
  • Introduce assembly language programming in Windows environments using Microsoft Native Build Tools.
  • Introduce ARM assembly language programming using an emulator or RPi.

I would like to thank Prof. Rizza DC. Mercado and Prof. Kendall Jaen for sharing their teaching materials. It was fun teaching this course and I learned some new topics in depth.