Thoughts on Outcomes for My Computer Science Students

I have been teaching project management to the students at the Deerwalk Institute of Technology (DWIT) for the past year while here in Nepal. I teach a non-credit course that focuses on building IT services for the people in Nepal. We start with fundamental technical skills and move to building production quality systems through the three year curriculum. This course positions the student to succeed in their 4th year internships and projects which are required for them to graduate.

I have identified and shared two key outcomes for my students that I hope they achieve by the time they finish college:
1) Become confident communicators.
2) Understand how they learn best.

I define a confident communicator as someone who is knowledgeable about a subject matter, knows that they add value to a conversation and shares their ideas in a clear and constructive way. Good communication is difficult. The goal is to move something from one person’s brain to another’s. Unfortunately, there isn’t a USB or Bluetooth connection to achieve this. We have a number of tools to make this happen including verbal, non-verbal and written communication. My goal is to have each student learn a subject area, build confidence and practice communicating ideas at the personal and group levels.

Culture plays a major role in becoming a confident communicator. Confident communication in the US is different than in Nepal. Non-verbal signals and language are specific in different areas of the world. Don’t give a thumbs-up in Turkey. It took some time for me to get used to the South Asian ‘yes’ when trying to get feedback during my lectures. I have half of my students nodding their head up and down and the other half left to right. I have adapted my communication techniques to try to better reach my students and coworkers. The three finger hand flip (what?) is now a regular part of my day.

My DWIT students have to first learn to be confident communicators in Nepal then, to other areas of the world. They’re getting internship exposure at businesses across Kathmandu where they build tangible skills in business communication. The majority of this communication is done in Nepali, which is a good thing. The tech world is full of cognates, which are words that adapted from other languages. A router is a router regardless of the language you speak and English is often the source of the cognate. First year students have to learn an entire new vocabulary and integrate it into their daily lives. After realizing this, I shifted my curriculum to present language communication in a different way.

I have coined the term “English++” in my classes. No, I don’t have a thing for addition signs. C++ is one of the common computer programming languages taught to people who formally learn computer science. (Full disclosure, I took a year of C++ courses at university and realized that computer science wasn’t my field.) The majority of IT services provided across the globe are done in English. I realized that my students don’t just need to learn English to be confident communicators. They need English + technology speak + business speak to help them succeed in the future. They can pass the TOEFL exams, but that’s not going to give them enough knowledge to succeed in technology and entrepreneurship. They need to learn technical English that includes a different set of terminology like TCP/IP, router and task runner. Furthermore, many new advances in entrepreneurial business principles are delivered in English. The Scrum agile framework and the Lean Start Up was first developed in English. Unfortunately, I haven’t seen any of this translated into Nepali.

##Understanding How We Learn Best
The technology field is developing at a rapid pace and I expect that this will continue. The IT professional of today needs to be able to identify, learn and implement the cutting edge technologies of the future. The core curriculum builds a foundation of software development methods, but the languages that are learned will change by the time a freshman graduates. All technology is under constant development and I believe that the true value in a computer science degree lies in the ability for a graduate to stay on top of the latest trends and apply them to solve real world problems.

I’m not an expert in this field, but believe that this is achieved by systematically thinking about and learning how we learn. I often ask myself questions like “how did I learn that new process?”, “What steps did I have to take to get a more complete understanding?” and “Can I streamline that process?” I have learned that I learn best when I take notes during a conversation and later review them. I don’t learn something if I type my notes on a computer. I don’t know why, but things stick in my brain if I hand write my notes. I have a number of lectures walking students through identifying their learning process. These focus on structured learning like calculus and statistics where many of the learned tasks involve identifying a problem and working through a predefined set of steps. We all learn differently and I believe that a graduate will be best positioned if they take a personal inventory and thinking about how they learn best.

##Identifying and Adapting Cutting Edge Technology
I believe that every field has a pulse. This pulse is a group of people or organizations that are actively living and developing the next generation of their field. This is evident in the technology at places like the UC Berkley AMP Lab whose teams are building the big data platforms that will run the world. I do my best to share the latest in system development and deployment so my students can get a feel for what “cutting edge” looks like. I have them actively developing in virtual machines using Vagrant, committing their changes to Github, testing their code in TravisCI or Jenkins and deploying to production with Chef or Puppet. Additionally, I’ve provided workshops in Bootstrap, Font-Awesome and Foundation to get front end development up and running quickly. We just started an introduction to Meteor which transitions into mobile development as we deploy our Meteor applications to PhoneGap.

These are examples of technologies and frameworks that quickly became industry best practices. Innovation is constant and identification of these ‘pulses’ will play a critical role in an individual’s success. I like to think I’m able to identify and contribute to the industry pulses at the intersection of Global Health + Project Management + IT. Every day I have numerous RSS feeds sending me emails; I spend every morning catching up on recent technical trends in Global Health; and I follow key players on Twitter to see what they’re interested in. I gather a lot of information and practice has helped me determine if an information source is worth exploring.

##Closing Thoughts
I’m fortunate to be in the position to share these thoughts with my 130+ students and now the global community through this blog. I wish I had a teacher who shared these things with me in my undergraduate program. With the help of my patient coworkers, I learned them through trial and error in the working world. I hope this has resonated with you. If so, send me a message. I’d love to hear your thoughts!

Contact me if you'd like to talk about this post.