Unfortunately, in secondary school, the reward is grades, and thus, students will optimize their behavior to achieve high grades. This behavior, however, does not corelate with understanding. Students will often cram prior to tests and examinations, and then forget the material, or as we may say in computer engineering, and then perform a core dump. Students rely on teachers to review material when it is required again. Thus, a significant number of students have simply forgotten most of the material they saw in secondary school, and expect university instructors to review the material in class. This often doesn't happen, and students are left not being able to comprehend the course material being covered because they simply don't have a sufficient grasp of the background material. Additionally, in first year, instructors make allowances for this, but then students still try to revert to the cram-and-forget style of learning, so they may squeak through first year, but then in second year, learning becomes even more difficult. Thus, excellence in secondary school does not imply that a student will be able to demonstrate excellence in post-secondary studies, especially those subjects that actually require an understanding of the background material.
​
What can you do to avoid the traps of a false sense of accomplishment achieved through gaining high grades in secondary school? In this article, I will discuss a number of steps you can take:
-
Explaining algorithms, concepts and proofs to your friends
-
Read a text book
-
Learn to sit down and study
-
Make your own notes
-
Review material sufficiently often
-
Leave time between studying different topics
-
Building a framework
-
Work on problems (and don't look at the solution)
-
Read popular literature in your area of interest
-
Maybe you're lucky (ASMR)...​
-
For computer engineers
​
1. Explaining algorithms, concepts and proofs to your friends
To begin, the first step you can take is to use the following approach when learning: when you learn something new, always think of how you explain that concept to someone you know: someone who is not an expert, but never-the-less intelligent. This will allow you to fill in any gaps in your knowledge, for if you just learn an algorithm or proof, you may gloss over some aspects, but as you consider how you explain this to someone else, you will hopefully notice the gaps in your understanding.
​
For example, here is a complete proof that there are infinitely many prime numbers.
​
Assume that the statement that there are infinitely many prime numbers is false.
If this is the case, then the only alternative is that there are finitely many prime numbers.
There are finitely many prime numbers if and only if there are exactly N prime numbers, even if we don't know what the value N is.
Now, the Fundamental Theorem of Arithmetic states that every integer than one can be written as a product of prime numbers and this product is unique.
Also, if n is a multiple of m, then n = mp; while if n is not a multiple of m, then we can write n = mp + q where 0 < q < m. The remainder of n when divided by m is defined as q, and n is divisible by n if and only if q = 0.
Now, suppose that there are exactly N prime numbers, so write these as p[1], ..., p[N]; thus, if N = 5 (which is clearly false), p[1] = 2, p[2] = 3, p[3] = 5, p[4] = 7 and p[5] = 11.
If we can write all these prime numbers, we can also multiply them out, so let us define P = p[1] × p[2] × ··· × p[N - 1] × p[N] + 1.
Because the smallest prime number is two (2), notice that P is not divisible by any prime from p[1] to p[N], for suppose that P is divisible by p[k]. If this is the case, then P = p[k] × (p[1] × p[2] × ··· × p[k - 1] × p[k + 1] × ··· × p[N - 1] × p[N]) + 1. Consequently, the remainder of P when divided by p[k] must be 1. Thus, P is not divisible by any of the N prime numbers p[1] through p[N].
However, by the fundamental theorem of algebra, P must be written as a unique product of prime numbers P = π[1] × ··· × π[M]. Of course, if P itself is prime, then M = 1, otherwise, M > 1. Thus, this prime factorization has at least one prime number π[1]. None of the prime factors of P are the prime numbers p[1] through p[N]. Thus, we have at least one new prime number π[1].
However, in this case, there are N + 1 prime numbers: p[1], ..., p[N], π[1].
This contradicts our assumption that there were exactly N prime numbers, for if there are N prime numbers, there must be N + 1 prime numbers.
If it is false that there are N prime numbers, then it is false that there are finitely prime numbers.
Thus, there are finitely many prime numbers implies there are not finitely many prime numbers (a contradiction); and therefore, there must be infinitely prime numbers.
​
Could you explain this proof to a friend?
​
Do you know how to calculate the greatest common divisor of two positive integers? Given any positive integer n, what is the greatest common divisor of 0 and n? What is the greatest common divisor of 0 and 0? Could you teach a friend to calculate the greatest common divisor of two positive integers? If 27 is divisible by 7, is it not also divisible by -7, so why is the greatest common divisor of 21 and 49 equal to 7 and not -7?
​
2. Read a text book
Most students can only learn from an instructor. An instructor has taken the collective knowledge, and distilled out from that what is necessary to explain the concept in a period of 30, 60 or 90 minutes. Invariably what is covered in that time is never complete, but it is sufficient to understand the algorithm, concept or proof. The instructor than hopefully assigns additional homework questions that the student can attempt to not only demonstrate understanding of the material covered, but hopefully also to cover the subtleties that were not described in the given time. Additionally, the instructor and quickly review material that has been covered before, but that is also needed to understand the presented algorithms, concepts or theorems.
​
This differs significantly from a text book: the text book must cover the material fully, at least, it will if it is a good text book. A text book must cover all of the material, although it can sometimes include some of the learning in explicitly questions associated with each chapter or section. A text book cannot afford to review all the material necessary, so if you are reading a chapter or section in a text book and you do not understand a word or a phrase, you will have to look this up on your own. Thus, a text book cannot present a summary and is thus often more verbose than a corresponding lecture.
​
This is not, however, bad. Instead, it forces you to learn not only the material, but also how to learn from a text book. When you come across a word that you don't understand the definition thereof, you must look that word up. If you don't understand a concept that is being described (e.g., the fundamental theorem of algebra or the Pythagorean theorem), then you must look it up.
​
Now, some students, even by the end of university, have not mastered the ability to learn from a text book. Instead, they can only learn when another human being has summarized that information into short 30, 50 or 90 minute sound bites. This is unfortunate, for in the real world (that is, in industry or in academia), you may not have the luxury of someone else summarizing the material. Instead, you must read a book and you must derive from that document the information you require.
​
Note, however, that learning from a text book is a skill. The first time you do it, it will be frustrating, because you will not be used to learning from such a medium. However, the second time will be easier: you will know that you must immediately look up terms and definitions and previously proved theorems or presented algorithms. You will also learn how to find such additional sources of information. Two of the best students I had never once attended any class during their undergraduate studies. Instead, they studied all the material on their own, at home, and never-the-less interacted with their classes, but they both studied on their own. They were in different classes, so they never met each other, but each graduated with averages above 85, and each was poised to be able to go into industry and accomplish great designs and innovations.
​
As an aside, sometimes, it requires a special text book. I was not very knowledgeable in linear algebra after my undergraduate studies. One of the text books that significantly improved my understanding of linear algebra was "Finite-Dimensional Vector Spaces" by Paul Halmos. It is an excellent text, and it significantly solidified my understanding of the subject matter. However, a few years later, the title of one book piqued my interest: "Linear Algebra Done Right" by Sheldon Axler. I thought "What a presumptuous name!" and immediately picked it up and flipped through it. This book engrossed me for some time thereafter, and reading through it made linear algebra much more intuitive. So much so that one time after, I picked up a regular text on linear algebra, and quickly realized why I had had a block: so many linear algebra text books teach the algorithms, but don't develop them. Most books on linear algebra became so frustrating to read. Halmos and Axler are two texts that should be central to every engineering undergraduate student's list of books, along with "Starship Troopers" by Robert Heinlein.
​
Now, if you don't know a text book to read, read a chapter from one of the text books you are currently using, but one that your instructor is not going to be teaching.
​
3. Learn to sit down and study
Learning to sit down and study for an hour at a time requires no less training than being able to jog three hours to complete half a marathon. Being able to sit down and concentrate on one subject matter is not something you can do without preparation. I did not become aware of this until I spoke to a student who had failed a term. When he came back, he achieved grades in the high 70s and 80s, so I asked him what he did to achieve this. He indicated that immediately after he failed, he sat down and tried to study, but found he could not really study any one topic for more than a few minutes. He then sat down and over the course of the next seven months to force himself to spend more and more time studying one topic at a time, until after many months, he was able to sit down and study one topic for well over an hour. This preparation allowed him to study more efficiently and more effectively when he repeated the term and the proceeded to graduate with distinction.
4. Make your own notes
Don't just read a text book, do not just watch a lecture, do not just listen to a podcast, and do not just watch a video. If you want to remember what you saw or heard, summarize it in your own words in your own notes. Make your own sketches, use diagrams to summarize information where possible, and record definitions, algorithms, concepts and proofs in your own words, as much as possible.
​
In my undergraduate studies, I took voracious notes in class. Once, I tried to use a laptop (yes, an early 1990s era laptop) to take notes, and it was impressive: at the end of each class, I did not recall what it was that I had typed into the computer. The additional step of typing the material made it much easier to forget. I regretted doing that for one course, but it was an experience. At this point, still today, I always use a pen, pencil or stylus to take notes.
​
5. Review material sufficiently often
Short-term member is very efficient: it retains information for a very short period of time; just enough to be able to generally make use of it, but your mind cannot remember everything, so your short-term memory will quickly discard information. For example, from this web site, here are twenty random words:
​
-
bounce
-
incandescent
-
outstanding
-
ordinary
-
snobbish
-
letters
-
plan
-
faithful
-
food
-
self
-
snore
-
live
-
cherry
-
different
-
swing
-
homeless
-
crazy
-
produce
-
astonishing
-
offer
Because these words are randomly chosen, none has anything to do with the other, so if you tried to memorize them, you'd quickly find that while you are memorizing "cherry", you've probably already forgotten "plan." This is positive, because otherwise your mind would be overwhelmed with information. Instead, concepts discovered in short-term memory only transfer to long-term memory if there is a) a traumatic event or b) repeated exposure to the same or similar concepts. Essentially, the brain has an excellent filter by which it only remembers concepts in the long term if there appears to be a need to retain that knowledge.
​
Now, in secondary school, your teachers reviewed this material for you. You were taught a particular concept once in a course, but then, when the teacher needed that material again in another topic or subject, the teacher would review the concept. The concept would also be covered in examples done in class, and in homework. Concepts are also much more thoroughly tested in shorter quizzes. Thus, the teacher is setting up an environment in which your short-term memory will be exposed to the same concept multiple times, hoping that that information will correctly transfer to your long-term memory.
​
Thus, when you cram for a secondary school test or examination, the information is already there, you are just refreshing your memory.
​
One final point before I describe the issue with reliance on the instructor to review the material for you: to establish an algorithm, concept or proof in your long-term memory, it is often best to expose your mind to that information three or four times: first when you are introduced to the material, then again within 24 hours, then once again within a week or two, and then, perhaps, again in a month or two. In my undergraduate studies, I reviewed all my notes from the week and rewrote them from scratch. This had two benefits: first, it exposed the material to my mind a second time, but also, it was sufficiently distant from when I learned the material that I had to study it a second time, and thus, I consistently found mistakes in my original notes, for I could not just look at the notes and say "Oh yes, that makes sense," but rather, I'd have to work through the material covered in class a second time, and occasionally I would make an error in that transcription.
​
6. Leave time between studying different topics
This is an interesting problem, and it is a consequence of your brain associating material that it is exposed to in close temporal proximity (close in time). There are two data structures that are very commonly used: trees and heaps. The first is used to store data that is hierarchically ordered and if a binary tree is used, it can also be used to store linearly ordered data; while a heap is also used to store data that is linearly ordered but where you are only interested in the item that comes first. Visually, they both look like a tree that has a root and splits into two at each level; however, the actual mechanisms that arrange the data are very different. Unfortunately, if a student studies binary trees and heaps in close temporal proximity (say, within a few minutes), the mind makes incorrect connections in the information, and students begin to mix the two distinct ideas up: concepts from heaps are used in binary trees, and concepts from binary trees are used when dealing with heaps. This is often a good indicator that the student was cramming for the mid-term or final examination and was rapidly studying multiple topics at approximately the same time. Because your mind is being exposed to unrelated topics again and again in close temporal proximity, your mind will make also make invalid links between the material. One way to avoid this is to ensure that there is a period of time between studying similar but distinct topics, and another is to build a framework in your mind.
​
7. Building a framework
This has to do with memory. If you don't simply cram and core dump, but instead try to understand what you are learning, and understand the relationships between the concepts, then what you begin to do is build a framework in your mind. This is the word I'm using to describe a collection of related information stored within your mind. Then, when new information comes in, you may have one of three possible reactions:
-
The information may actually fill in a gap in your framework that you were either consciously or unconsciously aware of. This is exceptionally satisfying, for you may have understood a concept at a higher level, but not understood the details, and then discovering the details fills a hole in your lack of knowledge. This is, for example, the experience I had when I read Engineering a Sort Function by Jon L. Bentley and and M. Douglas McIlroy. In first year, I learned that the ordered pair (a, b) could be represented by the set {{a}, {a, b}}. I found this fascinating, but I never understood the significance until decades later and I was reading Russel and Whitehead's "Principia Mathematica." It was there that I learned that the authors were not aware of this relationship, and therefore an unnecessary assumption that ordered pairs were something separate from set theory. When this relationship between ordered pairs and sets was shown a few years later, this could have significantly simplified certain aspects of their tomb. The same with the determinant: the fact that the determinant gave the change in volume was something that I did not grasp or was not emphasized the first time I took a course in applied matrix algebra. Instead, it was given as a binary test: if the determinant is zero, the matrix is not invertible, while if the determinant is non-zero, the matrix is invertible. While my significant other at the time was doing research in the Wilfred Laurier University library, I was randomly picking out older text books and flipping through them, and this one older text on linear algebra made this one statement, and it was the most eye-opening revelation I ever had, up to that time.
-
The information may add new information to your framework: almost like a steel girder that fits perfectly to an existing structure. You will never forget such new information, as it so perfectly ties in to what you already understand. I experienced this when a student explained a better algorithm for partition than the one I had learned. The algorithm I learned had you search from one side for the first entry that did not satisfy the condition, and search from the other for the first that did, and then both were swapped. Instead, you make a hole at the back, and you search forward for the first entry that does not satisfy the condition, and you move that to the hole, and this creates a hole near the front, everything to the left satisfying the condition. You then search from the right for the first entry that satisfies the condition, and you move that into the hole you just created, and so on and so forth, until there is a hole in the middle, and you place the entry you took out in that location. This reduces the number of assignments by 33%. A story about how the real-time system that guided Apollo 11 to the moon managed to handle unexpected interruptions solidified my understanding of how real-time systems are absolutely critical.
-
Finally, the information may build in new directions. For example, I had learned about many different data structures and how they were designed, and how they could be implemented in various languages; however, later I began to understand the relationship between mathematical relationships, which I also understood, and the corresponding data structures: linear orderings, equivalence classes, partial orderings, hierarchical orderings. I learned set theory in my first academic term in undergrad with Prof. Frejer together with the various relationships (I still have my course notes thirty years later), and I was first introduced to data structures by Prof. Salvadore; however, the data structures were introduced independent of of the relationships, so it was a situation where for a long time, I was learning the same concepts twice: once in the field of mathematics, and a second time in the field of computer science.
​
If you do not have a framework in your head, every new piece of information you are being exposed to is in isolation to all other thoughts you have incorporated into your memory: it doesn't fit, and therefore your mind quickly discards it unless you expose yourself to that information repeatedly. Unfortunately
​
8. Work on problems (and don't look at the solution)
If you have a problem and you know the answer, the answer is obvious. The difficulty is getting the answer if you don't have it. In the real world, you will be given problems for which you do not have a solution, and you must find a solution. If you always revert to the habit of too many secondary school students of reading the question, reading the answer, and thinking "oh, that makes sense," then you will never gain the tools necessary to solve problems in the real world. Work on problems on your own, and don't just look at the answer, and even once you get the answer, try to determine if your answer is correct. For example, consider the following:
-
Suppose you are asked to find the antiderivative of ½ x cos(x²). If you get ¼ sin(x²) + c, then rather than checking the answer, why not just differentiate ¼ sin(x²) + c and see if you get ½ x cos(x²)?
-
Suppose you factorized a quadratic polynomial -30x² + 99x + 21 and you get -3(2x - 7)(5x + 1), then rather than checking your answer, expand the factored form and see if it results in the original polynomial.
-
Alternatively, suppose you have that same quadratic and you are asked to find the roots and you find one of the roots is -â…•. Instead of checking if that is a root, why to evaluate the original polynomial: -30/25 - 99/5 + 21 = -1.2 - 19.8 + 21 = 0. If you don't get zero, the the value you found is not a root. Suppose you
​
In other words, don't just do problems on your own without looking at the solutions, but use the skills you have to check your solution.
​
9. Read popular literature in your area of interest
Just like Vogue and Sports Illustrated, there are popular magazines for the sciences and engineering. These are magazines that have articles that are targeted at non-specialized audiences. These can be quite fascinating to read, as the authors are making an effort to bring their research to a general audience, so they make greater efforts at describing the appropriate background.
​
Whether or you are in computer engineering or geological sciences, search out such journals and magazines and blogs and take some time to read them. This can be excellent for expanding your knowledge base, and for computer and electrical engineering, I can recommend the following:
​
The last is a podcast that for almost twenty years have been discussing rational thinking and scientific skepticism.
​
One positive benefit of reading such material is that you may now introduce higher-level models in your mind, and then, later, when you take classes, you will be introduced to the mathematics and engineering science that are required for this model to work. This makes taking related courses much more interesting, because you're not just learning about the next topic the instructor is teaching, whatever it may be, but rather you see what the instructor is teaching and you recognize that this can be used in the higher-level model you read about in such magazines, journals and blogs.
​
10. Maybe you're lucky...​
If you​ are lucky enough like me to experience ASMR (autonomous sensory meridian response, although meridians don't exist) and you happen to be able to associate this response with learning, you're exceptionally lucky. I experienced this whenever I was learning something exceptionally new and exceptionally interesting. Unfortunately, not all people seem to experience this sensation, and it is unlikely that many of you experience this in association with learning, but if you do, let me know.
​
11. For computer engineers
If you want to understand the concepts necessary to gain competence in the field of computer engineering, you must understand algorithms and data structures: these form the basis of most your career. Once you understand how to use programming languages to encode algorithms, I would encourage you to read the book "Introduction to Algorithms" (see https://en.wikipedia.org/wiki/Introduction_to_Algorithms). Using the strategies above, and starting with the first chapter:
-
Read the chapter in question of this text book on your own.
-
Make your own notes, summarizing the information presented.
-
Consider how you you would program any of the presented algorithms.
-
Do at least some of the problems at the end of the chapter. Don't try to find an answer; instead, try to convince yourself that your answer is correct.
-
Move on to the next chapter and go back to Step 1.
​
Good luck!