Laptop Laser Etching

Monday, March 24th, 2008

How I wish I can do this on my MacBook.

It’s been a year!

Tuesday, September 18th, 2007

rodin-thinker.jpg

Looking at the archives list in the sidebar, I noticed that I’ve already had this blog for a year! Technically, this site is on its 10th month, but content-wise (part of the contents of this blog was taken from my old Wordpress.com free blog) it is on its first year.

I’m having several thoughts about this blog, and my site in general. I want to change everything, sort of refocusing my efforts on blogging. I remember Jayvee Fernandez on his blog challenging bloggers about their blog conviction, and I’m thinking about mine right now. For the previous year, I focused on what I see and read on the internet, my experiences, and even my thoughts on some issues related to computing and the web. Now what do I intend to achieve on this second year?
(more…)

What’s Happening With IT Graduates Today?

Friday, April 13th, 2007

I have been talking with several new graduates of IT-related courses these past few days. When asked what they know with regards to programming, I noticed that there are just a handful of them who have a working knowledge of C language, much less when it comes to Assembly. A lot of them know mostly Visual Basic, PHP, Java, C++. The sharp observer would notice that generally, either they know a fourth generation language (4GL), or an object-oriented one. It seems that these are the ones being taught in school. Algorithms were taught using C++, and most of them create programs using PHP (and SQL) for their design project.

When asked which one do they prefer: programming using 4GLs, or the traditional way of opening up a text editor and coding everything from the ground up, most would prefer 4GLs. A lot of them would also balk at the idea of coding everything from scratch and creating documentations for their work. Most of them have the understanding that creating the documentation is just a requirement for them to pass the course, instead of the document being a means to relay information to anyone who needs to know how the design works.

What’s happening? Didn’t their professors make them understand why they are being taught these things?

To be fair, I can see that these graduates have the potential to learn new things at a quick pace. I get the impression that most of them are capable of learning a new skill even if the time allotted is quite short. This is something I know we Filipinos can be proud of our graduates for. However, it would be more beneficial to both the employer and the employee if that time needed to learn basic low-level programming skills are taught at school. It seems that now they are being taught how to make GUIs at school, and then they let the employers be the ones to provide the training for the rest. To put it bluntly, it seems to me that graduates are now being taught how to make functioning GUIs as “projects“, and the other things are left behind.

Now, there’s the argument that it’s the student who should have the initiative to learn the details. Okay, I agree to that. However, I’ve noticed that nowadays, professors would just teach them the basics, then leave them on their own to do their projects. No guidance or follow-ups whatsoever, “see you when you finish your project“. Without the proper guidance, it would be pretty hard for them to understand things — it would be more like the students being blindfolded and leaving them on their own to feel their way around a room to reach the exit, instead of telling them where to go to reach it. This would be very much different from spoonfeeding though, which would be explicitly showing the students the exit.

Would it be too much to ask if the curriculum in schools would be done this way:

  1. Teach software development processes first.
  2. Teach algorithms using pseudocode and flowcharts so the students would be able to concentrate with solving the problem. Creating documents that present the algorithm in detail should be a requirement, as well as documents that show how the algorithm can be tested for validity.
  3. After learning algorithms, teach the students a procedural language, where they could do top-down, structured programs. Making them create the algorithm first, then produce a design document and a test case document, before proceeding to implement that algorithm using the programming language.
  4. After learning a procedural language, let them learn about object-oriented languages and how it differs from procedural ones. If possible, make the students implement an algorithm on both a procedural and object-oriented programming language, complete with the design documents.
  5. Create a subject where students can experience testing software.
  6. Once they are able to pass the abovementioned subjects, let them learn about fourth generation languages, why they were created, and how they are related to earlier programming languages.
  7. Provide an opportunity for the students to be able to explain their design in front of several professionals, not just other professors (some professors may be biased in determining if the design being presented is justifiable or not).

Am I asking too much? I am thinking that if these are implemented, graduates can have an easier time in their transition from school to the workplace. It’s a win-win situation, isn’t it?

    Multi-Touch Screen Video Presentation

    Tuesday, March 13th, 2007

    Shown around February 2006. Pre-iPhone, post Minority Report. Really impressive when you think of integrating these things to large-screen home media center devices.

    10 Things I Want To Do In My Life

    Monday, February 26th, 2007

    I have this little list I made after a near-fatal illness made me fear for my life a couple of years back. I chanced upon this list a while ago and decided to put it here. I have been able to fulfill some of them already, but most of them I haven’t yet.

    1. Play competitive basketball (again)
    2. Speak in front of a large audience
    3. Buy my own mobile computer
    4. Buy my own car
    5. Get a house and lot
    6. A M.S. (at least) and a Ph.D. in a Computer Science-related study
    7. 2 kids (a boy and a girl)
    8. A dream wedding with my ideal wife
    9. My own domain and website
    10. Make a noted contribution to a major computer science project

    I guess some people close to me will know which ones I’ve already had. Please bear in mind that I made this list when I was still a bachelor, so most are self-centered. Got some geeky entries there as well.