I've taught several courses on control theory, optimization and machine learning (under Georgia Tech's course code):
ECE6550 - Linear System and Control
ECE6270 - Convex Optimization
ECE6551 - Digital Control
ECE6254 - Statistical Machine Learning
ECE2026 - Signal Processing
I intend to make some of the course notes available after a few more iterations.
Some courses I have been thinking about teaching in the future include:
a course purely on dynamical systems in the style of Strogatz
a course on robotics (serial manipulators or mobile robots)
a course on game theory or multiagent systems or reinforcement learning
a course on the biological modelling of the brain
a course on device physics or quantum mechanics
I am likely to incorporate some material from these areas into the existing set of courses I'm teaching.
My most ambitious plan is to teach a course on qualitative sociology for engineers. A course like this is the only way to resolve a number of contradictions if not downright questionable practices in the engineering discipline. I believe I have done a sufficient amount of thinking into this area so that I'm not suffering from Dunning-Kruger effect. I acknowledge that this will likely require some creative career planning to make it happen (if ever).
I have been thinking about compiling a list of my viewpoints on teaching and my advices for students for a while now (as opposed to keeping a record of these exchanges in my email). I will add more of them here as time goes on.
Q. What is the purpose of education?
I take the view that purpose of education is to uncover the connections and recognize the effects that humans and their societies have on each other and other living or nonliving things in our environment.
In particular, those between,
(1) humans and everything else in their environment,
(2) humans belonging to dominant social structures (or possessing dominant status) and those belonging to subordinate social structures (possessing subordinate status).
Beyond simply recognizing these effects and connections, educators should also seek to instill a sense of empathy among students, which may lead to pro-social and pro-environmental behavior.
Under this view, I neither encourage nor discourage any application of knowledge. This is up to the students to decide.
I understand that this view on education can be seen as impractical and at odds with the day-to-day practice of education. Certainly it would be more practical to view education as job training.
Q. Why do some students perform well while other students do not?
A student's performance is a measure of synergy between the course, the instructor and the student. Everything needs to be compatible in order for a student to perform well.
Certainly, there are many cases where friction exists between the instructor and the course that they teach. Other times, there exists friction between the student and the instructor. These factors could all affect a student performance. This said, it appears that on average, most courses typically exhibit a gradient of student performance outcomes. Since the evaluation method in a course tends to be standard among all students, therefore these outcomes are in large parts determined by the students themselves.
From my observation, some key determiners student's performance in a course include a student's background preparation, motivation and attitude. These things are usually clear to an instructor by the middle of the semester. There are even some instructors who purportedly can predict a student's final grade by the first week of the semester.
Background preparation is the most significant element. Occasionally a student may overcome a missing prerequisite course through serious effort or motivation. Aside from prerequisites, background preparation also include how the student approach learning and adapt to new material.
Motivation is another important factor and students having strong motivation or interest in a subject tend to perform better.
Attitude towards one's work is an important one which governs a student's quality of work. This one could be difficult foster during the course of a semester as attitudes are typically solidified somewhat in the student prior to enrolment.
There are many personal factors at play which affects students on individual basis. Some of them include:
Availability to engage with the course (due to work-life balance).
Stress-tolerance.
Pre-existing or new disabilities. Some disabilities tend to get worse as the semester goes on. Disability strongly affects the amount of "headspace" a student can devote to a certain subject.
Q. What are the differences between teaching undergraduate or graduate engineering students?
Mainly due to how the highschool curricula are structured, at the beginning stages of a typical engineering undergraduate degree, the student is taught to develop a deep procedural knowledge. This involves having a thorough understanding of how to perform certain sets of relatively simple operations that provide answers to conceptual problems. In electrical engineering, this would involve the calculation of certain pertinent quantities, such as the current through each branch of an electric circuit.
The goal of procedural knowledge is for students to view a well-defined engineering problem as sequences of subproblems, where each subproblem can be solved through a set of known procedures. Towards the end of an undergraduate program, the student should start to develop a top-down/systematic view of engineering, that is, knowing all the essential moving parts associated with a particular system, and how that system addresses a particular engineering problem. The student should also retain some key discipline-specific knowledge and have mastery in at least one area which would enable them to seek employment or delve further into a potential research theme. This latter aim is often realized through a final undergraduate project or thesis.
Graduate students on the other hand should be trained towards the creation of new knowledge. One method is for students to develop a solid and rigorous understanding of basic concepts and technical terminologies, beyond what they have been exposed to at the undergraduate level. This necessitates the memorization and subsequent internalization of a (small) set of important details, such as the definition of certain mathematical concepts or certain key equations. A solid grasp of basic concepts is crucial in either gaining or building new knowledge (from my experience, this is similar to how undergraduate mathematics students are taught).
There are some common goals in teaching graduate and undergraduate students. In both cases, the student is taught to develop a top-down/systematic view of engineering. The student is taught to formulate real-life engineering problems into well- defined problem. The student is also taught to break-down a larger problem into smaller constituent parts. Finally, an engineering education should ideally endow the student with a sense of confidence in recognizing and solving problems in their personal lives and in society at large. Engineering skills are useful at a fundamental personal level.
Q. What is the hardest part about knowledge acquisition?
In my opinion, the hardest part about knowledge acquisition is internalization. Internalization is the process of making outside information a part of your own existing knowledge. The more expansive your knowledge is, the harder it can be to internalize new information, because new information tends to come into conflict with the existing ones. For me, it helps to set aside some headspace that holds new information, without accepting any of them as true or useful.
In no small part due to my personality, I am sceptical of new information as they appear and takes a long time for me before I accept new information as true/correct. This has been detrimental for me as a student. As a student, I could never match my peers who seemed to quickly absorb new course material. I would later find out that the material others have so effortlessly absorbed contained internal contradictions or required more context in order to be made sense of. In other words, I refused to be disciplined by incompatible information and that refusal runs contrary to how academic curriculum are designed.
Internalization is coincidentally the hardest part about teaching. Because to teach is to express internalized ideas. You must understand something and make it into your own language before you can teach it to others. Most mistakes happen in teaching due to the transmission of uncritical, parroted thoughts or thoughts made out of habit (the entire discipline of machine learning is a prime example). This is why certain beliefs get propagated in certain disciplines and occasionally overturned by new finding.
Q. How do you prevent bias or discrimination in interaction with students?
As an educator, I aim to treat all students with kindness, respect and fairness. I do not want any of the student to feel that their work was unfairly evaluated on the basis of who they are. But I also recognize that it is impossible to prevent our own biases from seeping into our evaluation of and interaction with students. Therefore I take the view that educators need to actively and consciously identify our own biases.
Most of these biases are culturally-endowed and comes from values and attitudes that are reinforced by society at large. In the context of engineering education in a diverse, multi-cultural, multi-lingual environment, I actively remind myself of the following set of implicit biases:
out-spoken or more active students are more competent as compared to quiet students,
male engineering students are more competent as compared to female engineering students,
fluent English-speakers are more competent as compared to non-fluent or accented speakers,
asian and white students are more competent as compared to brown or black students,
socially normative appearing or well-groomed students are more competent than other students.
I do not feel it has been a burden to at least occasionally self-reflect on these during my own interactions with students.
In addition, here are several other things I intentionally do in my classrooms to minimize bias (or reinforcement thereof):
I almost never valorize individual researchers/historical figures. Their accomplishments are historically situated and disassociated with their characters. I do, however, mention any hardship that may have occurred during their lives.
I minimize placing subjective value to individuals, societies or culture, that is, I never mention that a certain thing is "beautiful" or "good". If I use a picture in my classroom, then I prefer a picture that's not related to culture, e.g., an animal. If I must use humans (e.g., generation of human faces using generative networks), then I use all types of humans all at once.
It is not burdensome for me to deliberately foster an environment that minimizes the perpetuation of existing societal biases.
Q. Lecturing seems to be a easy job. You come to the podium talk for about an hour and relax for the rest of the week. What skill does it take to be ?
I teach two courses per semester. For example, often teach statistical machine learning back to back with control theory. On any day of the week, I need to utilize the following set of knowledge in order to successfully get through my lectures.
To teach statistical learning, I need a knowledge of:
Early history of machine learning and contemporary topics. Real-life applications arising from machine learning. Probability theory. The ideas of sample space, events, equivalence of events, continuous and discrete random variables, probability measure, probability distribution, expectation, variance, Bayes' rule. Multivariable calculus, differentiability, gradient, Jacobian and Hessian, Taylor series approximation, ideas in automatic differentiation, forward and reverse trace, Jacobian-vector-product, and their implementation in modern software libraries. Vector spaces and linear algebra. Norm, inner product. Singular and eigenvalue decomposition. Optimization. Local vs global minima. Convexity. Gradient descent. Polyak and Nesterov's momentum methods and adaptive methods. Binary and multi-class prediction and regression: perceptron, k nearest neighbors, linear, logistic and softmax regression, support vector machines, multilayer perceptron, convolutional neural network, and variants of convolutional neural networks such as resnet, inception block, highway network. Applications such as transfer learning, object detection, one-shot or zero-shot learning. Adversarial attack. A bit material about the biological neuron and the vision system. Action potential. Grandmother cell. Sequence modelling. Recurrent neural networks, gated recurrent unit, long short-term memory. Language models and word vectors. Attention model. Applications in machine translation (difference between human languages), sentiment classification, POS tagging. Methods of training neural networks. Cross-validation. Regularization (dropout, batchnorm, lp norm regularization, shuffling), bagging and boosting. Learning theory. VC dimension and related combinatoric arguments. Generalization bound. Software implementation. Some knowledge of object oriented programming.
To teach control theory, I need a knowledge of:
Early history of control and contemporary topics. Real-life applications arising from control theory. Linear algebra and matrix analysis. Eigenvector, eigenvalue. Determinant, adjoint, inverse. Definiteness. Diagonalizability, Jordan decomposition. Change of coordinate. Vector spaces and their subspaces. Basis, orthognal complement. Linear operators between vector spaces and their image or kernels. Finite and infintie dimensional vector spaces. A-invariance. Classical mechanics (Newtonian and Lagrangian) and circuit theory. Force, torque, mass, friction, moment of inertia, momentum, natural frequency, charge, current, voltage, resistance, capacitance, inductance, Kirchoff's current law, power, energy. Different kinds of models and their specific characteristics: pendulums, gantry crane, cart-pole, RLC circuit, bridge circuit, operational amps, coupled water tanks, ball-beam, magnetic levitation, active suspension systems, among others. Topics of control theory: reachability, controllability, stabilizability, observability, detectability. Duality between controllability and observability. Separation principle. Internal model principle. Control techniques: PID, state-feedback, LQR, observer based state-feedback, LQG. Kalman controllable, observable and full decomposition. Reduced order observers. Applications of control such as regulation/stabilization and tracking. Software and/or hardware implementation.
I need to have a working understanding a small subset of these topics every week.
Q. How can I use engineering (or more broadly, technology) for good?
I have gotten this heavy-loaded question from students before. The difficulty of this question lies in the meaning of "for good" and this cannot be answered unless one makes a certain set of assumptions (and stick to them!).
There are several ways in which the meaning of "for good" can be construed. The most basic way is perhaps the maximization of human happiness (and minimization of pain). If this is the meaning that one wishes to go with, then there are some obvious venues. For instance, making healthcare systems more efficient. Tackling tough problems such as how to detect and destroy cancer cells. Elongating the human lifespan. Making our air and water cleaner. I believe it is possible to live a fulfilling life doing engineering for good if one were to strictly stick with this definition of "for good".
At some point, however, one might realize that this understanding is not sufficient, as healthy humans are not free from wider conflicts in society - a huge source of unhappiness in spite of our health or lack thereof. Conflicts over natural resources manifest themselves in the forms of racism, sexism, economic inequity and "who is more deserving". These conflicts form hierarchies, dependencies and intersect multifariously. At the heart of these intersections is the inequality stemming from the difference between physical bodies, with one deemed more deserving, the other less deserving. All inequalities are enforced by some type of violence.
In this case, then, "engineering for good" can be reframed into conflict resolution between humans. Indeed any and all engineering and technology could be viewed as contributing to conflict resolution. The technologies used in movie production can be used to promote social advocacy. Cellphone cameras can be used to capture abuse. The internet can serve as a megaphone. (I still remember the preface to Ulaby's "Applied Electromagnetics", which said, to the effect "Electromagnetics has done more than just help science...increased communication (as a result of EM) has led to more understanding about different cultures and will result in global harmony.")
But if engineering is so powerful in promoting and doing "good", even passively, then why are there still so much suffering and hopelessness in the world? I argue that there are at least two intertwined reasons for this.
First, doing good should be organized and intentional. Societies and their engineering technologies have not been historically arranged in this manner. Rather, engineering and technology are popularly dressed up in the languages of progress and competition. Progress against the previous ways and competition between the haves and have-nots. In this sense, technology accelerates evolution and evolution leads to inequity because of much of it is completely arbitrary. Second, doing good suffers from an anthropocentric bias. When good is popularly framed as "good for (a small subset of) human animals", it ignores the happenings of the wider natural world. Technology mostly accelerates the destruction of the natural world.
So what can be done as individuals, given that the source of "badness" in the world seems to be generated from engineering to begin with and its solution needs to be systematic, intentional and ecologically-driven? There is no easy answer. For me, the answers seem to lie in the ways of doing engineering that goes against our base nature. For example, using technology to limit instead of increase consumption, restrict movement instead to ease transportation, promote frugality as opposed to extravagance. There is no easy answer.
Q. What will be the most important technological trend to emerge in the future?
I am biased in thinking about this question due to my own interest in computational data science, psychology and sociology.
When I think of the technology of the future, I ask myself, what would happen if any individual on this planet was to be, at any point in time, reduced to a set of data (a digital replica of the person) where the data completely and totally describe all aspects of the person.
Under this imagined scenario, the most important technological trend that is likely to emerge is the control, optimization and planning of humans' entire lifespan on both individual as well as societal-scale. Many unsolved technological problems remain in this area and accumulation of historical data is rapidly unraveling much of the mystery. The enabling technology at the heart of all these future developments is the collection and interpretation of data.
A positive outcome we might expect is the personalize prediction, classification and treatment of medical conditions (possibly without having to go to a hospital).
We might also expect optimized long-term schedule planner in reaching goals that might not even be on a person's radar.
We can also expect more subtle forms of advertisement aimed at the modelling and prediction of individual preferences and the shaping of those preferences into a set of "normative" preferences, thus the creation of ever-more-so normal human subjects (who is also the most effortlessly influenced).
Currently much of this work is done by humans for humans because we have the distinct advantage of understanding our (socially acceptable or unacceptable) preferences at the present time and within our geographical vicinity. This work is definitely not needed to be performed by real humans. The technology of the future will be able to see a clear linkage between the neurological basis of behavior and connect it to social behavior at large, and through this understanding, serve to whoever wishes to shape the evolution of society.
It may be quite possible through technology for societies of the future to have accurate understanding of a person's social position, life-time wealth, or even cause of death, even before a person is born. Such predictions are not new (and quite prevalent in the sociological literature), but they will likely to be become more accurate due to the accumulation of data. Michel Foucault's work on discipline, biopolitics (and related work on necropolitics) are good access points.
This will inevitably lead to questions as to how to optimize a person's life. My opinion is that this is rarely if ever been a concern for society at large but a very important question for the individual. We can expect more effort from the individual to use to technology to control our own bodies ("body work") in relation to normal human subjects. A technology that will emerge is the precise control of a person's body, possible at all stages of a person's lifespan.