Reaction Paper: An Encounter with an Anthropologist
There are quite a few things that struck a nerve in the discussion. I am a devout catholic, despite being a computer scientist, and I have had many sleepless nights and heated discussions with my fellow professionals about the age-old debate concerning “Science vs. God”. On one hand, science, or as Dr. B have discussed, the scientific method, relies on proof. Even knowing something a priori, science still needs at least logic and reason. Faith, on the other hand, relies on belief without proof, about hope and the inherently unexplainable miracles.
In my opinion, Science is just a way of comprehending God's ways- an instrument from Him, through our scientists. Its a lot like the Bible in some ways, an instrument written by (divinely-inspired) humans, open to interpretation. A few examples: The Bible tells the story of genesis eg. “God created the world in six days, rested on the seventh”. When taking into consideration who wrote that story, even if he/she is divinely inspired, it would be impossible to measure time and translate it to something that we can comprehend. Maybe the writer simplified it, or maybe not- something to think about.
Another example: From year 2000 to 2005*, several scientific journals was published that confirms the existence of a single Creator. Of course, the scientists did not name who (God, Allah, etc.) but still- these journals have NOT been reverted yet. Several journals have tried to disprove these, the latest of which is Stephen Hawking's The Grand Design (2010). A good read, to be sure.
I find it distrubing when people generalize scientists to be godless heathens- people who rely on proof only. I'd like to believe, that I'm not the only Catholic Scientist/Skeptic here. Also, if I may offer a friendly advice from one (former) professor to another: Respect your student's beliefs. It would also be wise assume that there are catholics in a catholic college- not everyone would be devout, of course, but it would help to take care, none the less.
My two cents.
* related: Cosmic Microwave Background Theory
This whole post is my reaction paper for my first meeting with Dr. B, my current professor in "Theories in Research". This was written with only my stock knowledge (minimal to no references) and my opinions: read with a grain of salt.
The Flaws of College Education Today
What does all these mean, in the context of our current college education system?
This means that memorizing theories are no longer needed. It will not matter if you don't know the answer, because the answer is only a few clicks away, right in your pocket. Seatworks, homeworks , quizzes and tests becomes obsolete, since these are the ways to test if a student remembers a lesson, which is unnecessary with the current technology. You forgot the next ingredient for the recipe? so what? LMGTFY. What's the difference between the star, bus and ring topologies? This. What's the truth table and the logic circuit for the function: P && (Q || R)? Easy.
The way the current system measures the abilities of the students is outdated (and in my opinion, no longer work). And remember: What you can't measure, you can't control.. and if the colleges are not controlling what our students are learning, then what's the point? Imagine going to the university hoping to learn how to become a nurse, and after four years, everything you know are not only outdated, but even elementary grads can download a free app that knows most of what you do?
So what do we do? Stop going to school? NO.
Let me tell you guys a story. Two fresh CS graduates land a job in a company. They were given identical tasks- let's say, design and implement a module on a program. They both have zero experience programming in the industry, but has unlimited access to both the company's documentation as well as the internet. The problem is: there's only one permanent spot available, and the management have to decide which of the graduates to retain after their probationary period. If you are that manager, how will you pick? How do you decide, which one is better? Remember that they both have access to the same resources.
If I'm the manager, the graduate who have grasped the program quicker gets the job. Since everybody can become an effective employee (in the sense that the resources to learn how to do stuff are both accessible and free), then you have to become an efficient employee- spend less time learning and spend more time doing stuff. Now how can we do stuff faster? Let me ask you this: if you're learning to play basketball, how do you improve your game? The same is true on almost every discipline: You have to practice. You have to experience things, instead of memorizing them. An example: learning how to make the Fibonacci sequence appear on your computer is cute, but applying the Fibonacci sequence by creating a game will make you experience more (not to mention a lot more fun and challenging).
Bottom line: A parrot can memorize words, but will never understand its meaning. Don't be a parrot: Make new things, apply what you know NOW, and practice always.. and remember: Knowing is not enough. My two cents, Sayonara and have a great new year~
Failure
Edison quote mug by ~estranged-illusions on deviantART
Imagine: After creating a program and testing it against the known correct results, everything works. Congratulations! You just learned how to solve the problem. BUT! Consider this- When you test your program and something goes wrong, what do you do? Give up? Of course not! One of the best ways to study programming is through trial and error, and being wrong is an integral part of the learning process. When the program doesn't work as intended, we find the bugs and fix it. We test more. We think more. We learn more.
However, constant failure is another beast entirely. The saying goes: "Fool me once, shame on you, Fool me twice, shame on me". This is particularly true in programming, where a correct line of code will always produce the correct output and vice versa.
A professor in a prestigeous college once said that programming is a routinary job- eg. doing the same things over and over again. This true only when the programmer is NOT learning, and is constantly wrong, and thus have to repeat his job over and over again. A real programmer writes code only once, tests and tweaks for errors, learning what to do and what not to do along the way, and reuses old code extensively. Strive to be that kind of programmer.
Until next time, Sayonara~
Optimus Prime (a.k.a Transformational Leadership)
Ok, what striked me the most is the 5-part "Training Cycle"
- "The Teaching"
- Develop their skills through detailed instructions
- Stay with your "disciple" every step of the way
- "The Demonstration"
- Show, don't tell
- Let the "disciple" try their skills out in real situations
- "The Coaching"
- Find their flaws, make constructive criticism
- Inspire your "disciple" to increase his/her skills
- "The Release"
- Stay in the background, help only when necessary
- Give the "disciple" the power to decide for him/herself
- "The Next Generation"
- Confirm that your visions and goals are still aligned
- Let your "disciple" spread his expertise to others through this 5-part cycle
Another topic that I liked is the transformational leadership model~ This is how I understood it..
- Start with yourself, to give yourself some perspective. If your don't walk the talk, then you'll lose followers faster than you can gain them. [Additional Reading: Mat.3:13-4:11]
- One-on-one with a few of your most trusted people. Don't try to "change the world" as soon as you can, start with those nearest and most open to you. [Mat.4:18-22]
- Start building your team. Let your 'chosen few' choose their own 'chosen few', stay in the background and guide the vision of your community. [Mat.10:5-10, Mat.28:19-20]
Object-Oriented Seminar
If you have any questions, clarifications or suggestions about any of the topics I've discussed in this blog, just message me in my Google Profile, Facebook or Twitter. Until next time, sayonara~
Trippy Dot Net
2nd seminar in a month c-c-combo! I'm getting my old confidence back :D I'll try to schedule another one next next tuesday (which I will post here too) about Unit Testing~ But in the meantime, here's a few choice bits about my take on Exception Handling (Part 1 of my 3P.Net series):
Social Networking and Education
It has been quite some time since I stood in front of a classroom filled with students. A week ago, Mam (Mich) Ramirez invited me to talk at Lyceum, and I immediately agreed- As you guys know, I like being an educator. But as I stood in front of the students, I suddenly felt fear and my heart started pounding fast.. I guess 'hindi na ko sanay' and I need to start performing talks more. I hope more opportunities like these present themselves..
Anyhow.
My talk was about how college education is not enough, how we must supplement it with knowledge available to us (free!) in the internet, and how to find these knowledge through the use of Social Networking. After that, I talked a bit about blogging (which, ironically, I'm blogging about right now) and which blogging platforms I think is the best. I'll reiterate a bit here:
1) I love Blogger. Absolutely free, No strings attached, moderately customizable and best of all: Allows Ads.
2) Wordpress: for Design Experts. It requires a small yearly fee, but you can customize a lot of it afterwards: plugins, widgets, themes, etc. Also, a photoshop pro's dream photo blog.
3) Quick & Easy blogging at Tumblr & Posterous. These are free services, little customization (compared to Blogger and Wordpress, at least) but very clean and simple to use.
4) Make your own. You can set up a Joomla, Drupal or a Ruby on Rails web server at home or on a host, get a domain name to get a 100% fully customizable website that can breath fire (if you're a good enough programmer), but of course, you'd need to invest a lot of time, effort and cash to do so. I suggest trying out the free services first.
That's it for today~! If you guys have any questions (about the seminar, blogging or even programming) you can leave a message on my Google Profiles page, or just contact me through Facebook or Twitter. Until next time, Sayonara! *watches the latest Hitman Reborn*
Motivation
Motivation is the fuel for your creative engine, so that you can reach your goals. Intelligence and creativity matters little if you are not motivated enough to use these gifts. Actually, some people argue that motivation is the root of being smart or creative.
However, not all motivation are the same. Being a Computer Science or Information Technology student, the rewards matter a lot. In fact, as the video below demonstrates, carrots and sticks (the traditional “more work == more reward” paradigm) have the opposite effect on tasks that require the algorithmic approach.
According to studies performed by world-class economists from M.I.T. & Carnegie Mellon: For simple, straight-forward tasks, the traditional “do this == get this” paradigm offers enough motivation. But for more complicated tasks that requires conceptual or creative thinking (eg. programming or information analysis), the traditional motivators does NOT work.
If this is true, then what drives us? Autonomy & Mastery
Autonomy is the desire to be self-directed. This is why programmers tend to clash with the management the most- because we are innovators, risk-takers, explorers, and most importantly: Scientists. We boldly go where no man has gone before.
Mastery is the urge to get better at stuff. The best musicians in the world play music for fun. Not for cash, not for fame. Just because its fun. Programming is the same- we want to be better programmers because we enjoy programming, and being better at it is immensely satisfying.
Look at Google’s Innovation Time Off: Engineers are encouraged to spend one day of their week to work on projects that interest them. The engineers decide (autonomy) to work on interesting projects (mastery). And from this model, a lot world class services emerged: GMail, Google News, Orkut, even Google’s primary revenue source: AdSense. Now THAT is how you motivate programmers.
A look inside Letran: Teaching Programming Part 3/3
I totally agree with Jeff Jarvis’ points in the above video. Education today is a 19th century system struggling to cope in a 21st century world- it’s like using a steam engine to commute to work today. It has become apparent to me, that in Letran’s walls, teachers “stamp out students all the same way with only one right answer each… And so, that assumes that all the knowledge flows from the [lecturer], if you don’t feed it back, you’re wrong- you fail.” Its a system that kills the students drive to explore, to argue.
Inside the classrooms, discussions are always one sided- why would Letranites ask questions? Why would they argue? Not only is there zero incentive to do so, but I think arguing with the professor has been indirectly forbidden. How? Peer pressure can be a problem, or a teacher might have embarrassed someone asking a stupid question. Maybe the curriculum does not stimulate a students brain enough for them to ask any questions. In my opinion, more interaction is needed- we are training computer scientists here, and like the scientists of other fields they need to discuss and argue and experiment in order to challenge the norms and discover new things, eg. non-routine problem solving.
If you can compare side by side the curriculum of Letran (or even the other Universities in the Philippines) and MIT’s OpenCourseWare, Academic Earth, or even Youtube EDU, you’ll begin to see another problem. On all of the courses offered, their online equivalents are almost always better. Its more interactive, up to date and free. You can learn more online in a weeks worth of videos, than spending four years in a Philippine university.
As Jeff above said, the good stuff are already out there. We have to stop this culture, of standardized testing and standardized teaching.
PS. More good points from the video: Quizzes and Exams @8:46, Google did not spring from the lectern @10:45, We have to stop this culture… @12:30
A look inside Letran: Teaching Programming Part 2/3
“Institutional Education needs to do more than just adopt a few new tools.“ ~ Dan Brown (http://twitter.com/DBUniverse)
A few meetings went by, and I was getting the hang of speaking in front of the class. It was terrifying at first, but my fear was soon replaced by the thrill that my students are actually learning something. It was an awesome experience to watch the freshmen’s eyes light up as they discover the concepts and algorithms to solve the problems. Granted, the language should have been easier so that more than just the logically-inclined students can pass the laboratory exams, but aside from that- all of us are learning.
The midterm period passes without a hitch, but soon I find myself questioning (again) the methods that I use to teach the concepts at lecture. I noticed that more than half of my students are very unmotivated to learn. They’d rather focus on some of their minor subjects- Art App, Communication, and later, Physical Ed. I wondered why..?
Interaction.
The students craved interaction. They needed to interact and experience the facts (in our case, concepts & algorithms) in order to learn them effectively. They want to understand the concepts, not memorize what they mean. Just telling them to memorize what iterations mean is plain stupid- because that information is free, online. This is what they liked about the minor subjects: you don’t have to memorize anything, you just have to do it.
The video above by Dan Brown (not the author, mind you) nailed it: Education is not about facts- Its about empowering students to change the world for the better.
A look inside Letran: Teaching Programming Part 1/3
“Do what you do best and link to the rest” ~ Jeff Jarvis (http://www.buzzmachine.com/)
I am an educator. Once, I lived a life of teaching and evaluating, and it was a journey I would never forget. I still am.. but my year on Letran was very fun & very informative- and I’d like to share with you a summarized version of my short roller-coaster ride there. With videos =D
When it was confirmed that I’m going to teach Introduction to Programming (Fundamentals of Programming, for the non-Letranites out there) to the first year students, the first thing I did was to look for other lectures. I knew that someone, somewhere, there is a great professor teaching the same subject, and I was hoping he recorded it.
Watch it on Academic Earth
Prof. David J. Malan from Harvard University, is the star I decided to shoot for (The entire series can be watched on Academic Earth). At least if I failed, I’d land on the moon. But as I was teaching, I realized that Letran’s methods and Harvard’s are not the same. I asked myself, should I teach Python to this kids, considering that their next subject is C++? My co-teachers told me that the disconnect might hurt the students- and relying on their better judgment, I revised my plan and taught C instead.
In hindsight, I think I should have stood my ground. I should have pushed against teaching C, because the language is, fundamentally, a low-level language (just a step above assembly). It is primarily used for close-to-the-metal applications where performance is a priority. A 1st year professor shouldn’t care if the program takes 1 minute slower, coz as long as it runs, then the student understood the concept/algorithm. Teaching an easier language, something more like natural language (english-like) would make the freshmen understand stuff better. Python is perfectly good example of this, but there are languages actually designed for this, such as SmallBasic.
Another thing: If the students know C, then you start teaching them C++, then they might mix them up. They might accidentally use C-only syntax or a C library instead of the C++ counterpart. Would it help if they know some of syntax beforehand? Maybe. Would it hinder them? Maybe. In my opinion, it’s a 50-50 deal, gambling that C would help the students learn C++.
Why not just teach them something easier but still introduces the same concepts & algorithms?
