Tuesday, November 8, 2016

Computer Science (CS), Information Technology (IT), and Information Systems (IS) in Philippine HEI

(Source: CHED CMO 25 Series 2015)

Bachelor of Science in Computer Science

The BS Computer Science program includes the study of computing concepts and theories, algorithmic foundations and new developments in computing. The program prepares students to design and create algorithmically complex software and develop new and effective algorithm for solving computing problems.

The program also includes the study of the standards and practices in Software Engineering. It prepares students to acquire skills and disciplines required for designing, writing and modifying software components, modules and applications that comprise software solutions.

(Topics on databases: Storage Structures, Relational Algebra, Query Optimization)
(Topics on networks: CSMA-CD, TCP Congestion Control)

Bachelor of Science in Information Technology

The BS Information Technology program includes the study of the utilization of both hardware and software technologies involving planning, installing, customizing, operating, managing and administering, and maintaining information technology infrastructure that provides computing solutions to address the needs of an organization.

The program prepares graduates to address various user needs involving the selection, development, application, integration and management of computing technologies within an organization.

(Topics on databases: Setup of a RDBMS such as Oracle, CRUD using SQL, User Access Management)
(Topics on networks: LAN Setup, Network Management)

Bachelor of Science in Information Systems

The BS Information Systems Program includes the study of application and effect of information technology to organizations. Graduates of the program should be able to implement an information system, which considers complex technological and organizational factors affecting it. These include components, tools, techniques, strategies, methodologies, etc.

Graduates are able to help an organization determine how information and technology-enabled business processes can be used as strategic tool to achieve a competitive advantage. As a result, IS professionals require a sound understanding of organizational principles and practices so that they can serve as an effective bridge between the technical and management/users communities within an organization. This enables them to ensure that the organization has the information and the systems it needs to support its operations.

(Topics on databases: Student Academic Information Systems)
(Topics on networks: E-commerce)

Further Reading

  • http://www.innovators.edu.pk/node/233

Wednesday, October 26, 2016

NCITE 2016 Experience

This year's NCITE was held at DMC College, Dipolog City, Zamboanga del Norte. I presented a paper on OSv-MPI, part of my PhD project, under the IT track. The best papers for CS, IT, and IS came from ADMU, MSU-IIT, ADNU respectively. There were a lot of participants from the different regions. This was also the first time I attended a conference without the company of ICS colleagues. It was fun and enjoyable.

Wednesday, October 19, 2016

Packing light for a three-day academic conference

Being an academic involves a lot of traveling especially to attend a scientific or academic conference. It is best to minimize the things to bring. Described here is what I usually pack for a three-day conference. My main objective is to avoid checking in luggage. I usually bring three bags, a carry-on,a backpack, small crossbody bag.

Carry-on bag

Shirts
  • 3 dress shirts (short, three-fourths, or long sleeves)
  • 3 undershirts
  • 2 polo shirts
  • 1 t-shirt
Pants/Shorts
  • 3 trousers
  • 1 walking shorts
  • 1 sleeping shorts
Shoes/Slippers
  • 1 pair of casual shoes
  • 1 pair of black leather shoes
  • 1 pair of casual slippers 
Underwear
  • 4 pieces underwear
  • 3 pairs of socks
  • 3 hankerchiefs
Backpack

Accessories
  • 1 small-medium towel
  • 1 light jacket/sweater
  • 1 watch
  • 1 belt
 Others
  • Laptop with charger
  • Cellphone charger
  • Notebook and Pen
  • Instant coffee
  • Broadband stick
  • Paper Holder
 Crossbody bag
  • Wallet
  • ID
  • Cellphone
  • Cash
  • ATM card
  • Travel documents
  • Point-and-click camera
 
What to wear

Going to the venue(day before the conference):  polo shirt, trousers, and casual shoes

Conference day 1: dress shirt, undershirt, trousers, leather shoes

Conference day 2: dress shirt, undershirt, trousers, leather shoes

Conference day 3: polo shirt, trousers, casual shoes

Going home: same as Conference day 3

Touring around after each day: t-shirt, casual shorts, casual slippers

Sleeping: undershirt and sleeping shorts

Thursday, September 29, 2016

Setting up a Drone Programming Environment using DroneKit on Ubuntu 16.04

This guide describes how to setup an environment for programming drones using DroneKit. The main requirement is an Ubuntu 16.04 box. Using this environment will allow testing of code before they are run on an actual drone. To run the code on a drone, simply update the connection parameters.

The procedure will require four terminals which will be used for different purposes. In the steps that follow, SRG-Bots is the working directory.

Terminal Zero - Used for installing the required packages 

$cd ~/Downloads
$wget  http://firmware.eu.ardupilot.org/Tools/APMPlanner/apm_planner2_2.0.23_ubuntu_xenial64.deb
$sudo dpkg -i apm_planner*.deb
$sudo apt-get -f install
$sudo dpkg -i apm_planner*.deb
$sudo apt-get install python-pip
$pip install virtualenv
$mkdir SRG-Bots
$cd SRG-Bots
$virtualenv dronekit_env
$source dronekit_env/bin/activate
$pip install dronekit dronekit-sitl mavproxy

 
Terminal One -  and running the simulator

$cd SRG-Bots
$source dronekit_env/bin/activate
$dronekit-sitl copter

In case the initialization is taking too long, you can reset the simulation.
$dronekit-sitl--reset


Terminal Two - Used to allow multiple connections on the drone

$cd SRG-Bots
$source dronekit_env/bin/activate 
$mavproxy.py --master tcp:127.0.0.1:5760 --sitl 127.0.0.1:5501 --out 127.0.0.1:14550 --out 127.0.0.1:14551

Terminal Three - Used to run APM Planner


$apmplanner2

Go to the menu, then select Communications -> Add Link -> UDP. Set the UDP Port field to 14550. Connection to the copter will be established.

Terminal Four - Used to run programs

$cd SRG-Bots
$source dronekit_env/bin/activate
$wget https://github.com/dronekit/dronekit-python/raw/master/examples/simple_goto/simple_goto.py
$python simple_goto.py --connect "udp:127.0.0.1:14551"

You can observe the behavior of the drone on the APM Planner as the code gets executed.


Monday, August 29, 2016

Drone 101

We have been lucky to be awarded with some funds to buy some drone kits. Since July, I spent my weekends playing around with the Erle-Copter assigned to me which I named Red-SRG-Bot. This kit is powered by Linux and therefore opens up a lot of possibilities programmatically. I have a presentation that documents my activities in this area and another for an extension work. Below is a video of one of our outdoor flight tests.

Monday, August 1, 2016

Writing the abstract for systems(or applications) papers

(Last update: 8 June 2024)

Writing an abstract for systems papers is easy if you know what to put in it. Begin the abstract with "This paper presents the design, implementation, and evaluation of ..", then add the following.

1. Catchy title for the system. (acronym, one word)
2. General description of the system and how it addresses a problem in a particular area. (two sentences)
3. Features/contributions that are unique or novel on the system. (three or more sentences)
4. Performance evaluation results. (two sentences)

Here's an example from this paper:
--------------
This paper presents the design and implementation of MemPipe, a dynamic shared memory management system for high performance network I/O among virtual machines (VMs) located on the same host. MemPipe delivers efficient inter-VM communication with three unique features. First, MemPipe employs an inter-VM shared memory pipe to enable high throughput data delivery for both TCP and UDP workloads among co-located VMs. Second, instead of static allocation of shared memories, MemPipe manages its shared memory pipes through a demand driven and proportional memory allocation mechanism, which can dynamically enlarge or shrink the shared memory pipes based on the demand of the workloads in each VM. Third but not the least, MemPipe employs a number of optimizations, such as time-window based streaming partitions and socket buffer redirection, to further optimize its performance. Extensive experiments show that MemPipe improves the throughput of conventional (native) inter VM communication by up to 45 times, reduces the latency by up to 62%, and achieves up to 91% shared memory utilization.
--------------

The goal of the abstract is to help the readers decide whether to continue reading the rest of the paper or not. Do your readers a favor by not wasting their time. Present what you have upfront in the abstract.