You should be MOOC-ing with purpose

September 2017

If you look at my LinkedIn profile (, you might notice something unusual. Although I have reached the highest academic degree available, i.e., holding a Ph.D. degree, you will find several MOOCs that I have completed with certificates. In fact, I have completed lots of other MOOCs but didn’t get the ‘Certificate of Accomplishment’ for some reason. I have been doing product and technology training since I’ve graduated from college. At that time, most of them were certification training from the major players in the IT industry, such as the Microsoft Certified System Administrator (No. You will not find something similar to this one in my profile. It was a long time ago. But, you will find recent updates like a dozen of certificates from the Data Science realm.)

I suppose you now might be wondering why. As an academic, I must keep pushing the limits of knowledge in my field to a new frontier. So, you ask: “Shouldn’t you be digging deeper in your field (i.e., Computer Networking)?” My answer: Yes and no. The ‘yes’ needs no further explanation. The ‘no’ needs more clarification. If I had to summarize in a few words I would say Cross-Pollination (or Cross-Fertilization). In the business world, the term cross-pollination has been around for over a decade (Perfecting Cross-Pollination, Harvard Business Review, 2004, It also works well in academic environments. Cross-disciplinary strategies in academic labs and campuses have the potential to generate innovative ideas leading to an eventual breakthrough.

But I have plenty of other reasons, as follows:

    1. Access to advanced knowledge: As you might have guessed, I am an enthusiast of MOOCs. I considered that MOOCs have the potential to become the Uber/AirBnB for education (cf. Uber for Education – MIT Technology Review - The power to reach a wider audience, to attract world-class institutions/lecturers, and the major players in the industry, are the main factors of their tremendous success. Of course, many fields of study need proper accreditation and additional mechanisms to ensure the students acquire the required skills to become a professional. Reading tons of books will help but that alone is not effective. MOOCs and formal studying and training are complementary.
    2. Developing higher level thinking: I have trained and graduated 50+ high-qualified humans (from undergrads to graduate students). I guided them to develop higher level thinking, which of course is a natural consequence of my own training during my Ph.D. and Post-Doctoral years. I helped them to dig deep into relevant problems (critical thinking) from the industry and academic point of view, to find connections among abstract pieces of information (conceptual thinking), to find creative solutions to them (innovative thinking), and I encouraged them to plan and execute the most promising solutions effectively (implementation thinking). Particularly, I do like to explore new ideas hands on. It is very common in the academic world that professors stop being involved in lab work as we become overwhelmed with many duties, such as writing grant proposals for funding, participating in administrative committees and editorial boards, lecturing, writing reports for the funding agencies, and the like. With time, most professors I know lose their grip on the implementation thinking. In my opinion, when we lose that skill, we don’t know how to respond to “Oh, it will take two months of coding and testing to implement that!”. If one doesn’t know how difficult it is to implement and test some ideas it becomes difficult to assess if someone (or a team) is underestimating or overestimating the time to complete a certain task.

3. Understanding current practices and challenges: Implementation thinking allows one to have a good understanding of the practical aspects of a field, such as current practices and challenges. Most MOOCs present - from the point of view of scientific research - well-known and established concepts in a field. Some MOOCs go a step further and present the state-of-the-art in research. For instance, I’ve implemented techniques from AI research papers as early as 2015/2016 (e.g., the He, Glorot, and Xavier Neural Networks initialization techniques). It is important for researchers to get the view from practitioners in the industry. I always give my graduate students lots of new information that they could possibly explore for their thesis and dissertations. My involvement with the industry - by means of leading industry-based research projects and participating in some working and research groups within the Internet Engineering Task Force (IETF) – has opened my eyes to see (and drive through) less traveled roads. Cross-fertilization is key for the advance of knowledge. I am currently working on the application of Generative Adversarial Networks (GANs) to… wait for my next paper :-)

4. Adding new layers of knowledge to your technical background: Exploring new fields can open new possibilities of research and advance knowledge by combining two different subfields. For instance, I have been applying predictive analysis in computer networking problems using techniques from different fields, such as Statistics. To have a good grasp on the common techniques used in a particular field, you must spend lots of time studying, understanding, exploring new approaches to apply techniques from one field to another. One field of research in computer networking is Internet Traffic Identification and Classification. We have seen so many techniques from different areas to build fast and precise classifiers. If you do a literature review you will find techniques that come from Information Theory, Signal Processing Theory, Automata Theory, Statistical and Machine Learning, etc. I know that it is easier said than done. That’s why MOOCs come handy. It will certainly speed up the learning process so you can comfortably navigate through the new concepts and put them into practice.

5. Never stop learning: Finally, I truly believe no one should ever stop learning. In my case, I learn from interactions with the students and colleagues, by attending seminars and conferences, writing, reading and refereeing journal papers and books, coding constantly, and of course by taking MOOCs. There is always an opportunity to learn from everyone and from every situation. The point is that MOOCs give you a structured way to learn something new. There is no way to describe the satisfaction feeling gained by completing course milestones (e.g., weekly quizzes and assignments finalized, course finished, specialization completed). You must feel it. It’s easy to give up when you are not committed. That’s why some reports show that people tend to finish courses or specializations in MOOCs they have paid for.

My story with MOOCs started a while ago when I decided to explore the major players in the field, i.e., Coursera, EDX, and Udacity. I have been always curious on how to prepare and deliver such courses. Maybe I’ll soon create a new MOOC, related to Performance Evaluation of Computer and Communications Networks (here is my book on the subject - I have formally completed several courses as one can see in my profile and have followed many others on other platforms like Udemy, StackSkills, and Lynda.

Exploring the Hype: Data Science, Machine Learning/Deep Learning

The Data Science Specialization from Johns Hopkins University at Coursera was a nice experience. If you look closer I have finished all the 10 courses in roughly 4 months, where one should expect to finish in one year. I am not bragging about it. This happened due to my commitment in finishing all theoretical and programming assignments (weekdays, from 9:30 pm-11:30 pm) as well as my background on the subject. I have postponed the work on the Capstone Project for almost a year due to lots of other commitments I was involved in. I finally managed to get around to it in June this year and I have finished it successfully. The Coursera approach to automatically grading as well as peer review grading is efficient and interesting. For the Capstone project, I had to polish my code several times to make it faster and more accurate due to feedback (sometimes harsh complaints) from my fellow colleagues/reviewers. But in the end, the feeling of mission accomplished, with lots of hands-on coding and experimentation, is amazing. I’d say that I was familiar - from both practical (i.e., coding) and theoretical point of view - with most concepts and techniques in that specialization. Of course, my background on the subject made me go faster than the average student. In the past decade, I have focused part of my research and development efforts in the application of Data Science/Analytics in challenging computer networking scenarios, such as the ones related to traffic identification and classification through Deep Packet Inspection (DPI), behavioral-based machine learning models, as well as time series analysis and forecasting. As a result, I have developed an in-depth view, knowledge, and hands-on approach to the Data Science workflow (i.e., data gathering and manipulation, feature engineering, selecting and developing appropriate predictive models, and model performance evaluation and deployment). However, in several occasions, the lecturers conveyed valuable information and tips that are hard to put a price on.

I am currently in the middle of playing with the new Deep Learning specialization at Coursera. Yes, it is fun and I consider taking MOOCs as playing. I’m generally interested in the newest development in AI when it comes to novel Neural Network architectures (e.g., RBM, LSTM, GANs), fine tuning deep networks, and practical aspects of training NN in local and cloud environments with GPUs. Of course, the whole Data Science/Deep Learning experience would not be complete if one skipped the last step, that is deploying the trained DL models into real systems efficiently. Therefore, I have frequent discussions with high tech companies looking for real data that I could test some ideas on, which in turn would be beneficial to them in the form of a new application/service. In the next few months, I’ll be playing seriously with Udacity. Prof. Yoshua Bengio (Université de Montréal), one of the most prominent and prolific researchers in Deep Learning, stated recently that given the necessary background (CS and Math), it is possible for someone to build experience with Deep Learning in 6 months. I couldn’t agree more. And I would add that this can be applied to several subfields within the Computer Science and Engineering world. The challenge still relies on using the most effective learning techniques (Here is a MOOC for that: Mindshift: Break Through Obstacles to Learning and Discover Your Hidden Potential -

I don’t see myself switching fields for good in the near future, e.g. from Computer Networking to Artificial Intelligence. But with lots of hands-on experience in R/Python for Data Analytics/Machine Learning/Deep Learning, I can solve a variety of either scientific/academic or business-oriented problems, using the tools, frameworks, and libraries available (e.g., Keras, Tensorflow, and PyTorch). I can read and understand several recent advances in the field and test them with real code if I need to. To be able to read some recent (e.g., 2016-2018) scientific papers from the major conferences and journals in the AI field is really rewarding for someone from the Computer Networking and Communications field. I encourage my colleagues from AI to do the same and learn the recent advances in my main field of research (e.g., Traffic Analysis, SDN, NFV, etc.).

I guess MOOCs can be considered as “the new black” in learning/training.

Some words of caution though:

1. Don’t take MOOCs without a purpose. Seriously, it can lead to addiction (Confessions of a MOOC Addict – Huffington Post, 2014 -

2. For undergrads, new grads, graduate students, and professionals: Use MOOCs to complement the shallow skills you had in your college years. Focus on the skills you need now and on those you will certainly benefit from in the near future.