How to Take Notes for Computer Science Classes

Computer Science
96 followers
Hey guys, welcome back to the channel.
If you're new here, my name is Iman.
I'm a student studying computer science and economics.
And on this channel, we explore different productivity
and study techniques that you can use
to achieve your goals faster.
Today, we're gonna talk about how I take notes
for my computer science classes in university,
along with some tips and tricks that I've picked up
that you can use to supercharge
your computer science study routines.
Timestamps are in the description below.
Let's go.
So there are two parts to learning anything.
The first part is being able to understand the subject,
having the ability to put all the moving parts
and pieces together and really understand
how everything works.
The second part is remembering your understanding
or what you learned down the line,
whether it's tomorrow, the next week,
the next year, or 10 years from now.
It's all about remembering in the second part.
So if we apply this to a basic mathematics example
like algebra, step one is actually understanding
how algebra works, and step two is remembering
how to do algebra for your test next week,
next month, next year.
This video is gonna focus on the first part.
The memorization and retention techniques that I use
will be explored in a further video.
So at my university, the computer science courses
mainly focus on two topics.
The first part is the theory
or the higher level understanding of the subject.
This is where we look at the background
of how everything is used, and it's a lot more conceptual.
So if we were learning about arrays,
we probably have a diagram of an array
where we talk about how arrays work
and the different methods that are associated with them.
It's all a very high level conceptual point of view.
Or if we were learning about sorting algorithms,
we've maybe discussed several different algorithms
and discussed why certain ones are faster or slower
than other ones in different scenarios.
It's more understanding rather than actually going in
and writing code.
The second part is the programming aspect
where you actually go in and write the code.
This is where you take everything you've learned in theory
and apply it to actual problems that you need to solve.
So for my college, we would get an assignment every week
where we would have to use everything we've learned
over that semester and in the past
and put it all together and tackle an assignment.
We'd spend five, 10 hours on our own or with a partner,
really just putting our heads down and coding.
That's the programming aspect of computer science.
Both aspects are incredibly important
to a computer science education.
Right now, we're gonna talk about theory
because programming is really just practice.
So in this video, we'll focus on
how you actually learn theory.
So let's talk about how I learn theory.
So usually the day before or a little before a lecture
on a new topic, I like to crack out the textbook,
lecture notes, lecture slides,
basically any information I have before the lecture,
I like to open that and take a look at that beforehand.
When I'm looking through those,
I like to take some notes in a separate document
to really put down my understanding
and I'll talk about why I do this.
So there's a methodology called the Feynman technique.
This is a methodology that is named after Richard Feynman.
He's a great physicist of our past.
And this method centers upon the idea
that if you can't really explain
what you've learned to another person,
you don't really understand it.
When I'm with my friends,
I'll often practice by explaining to them.
But when you're by yourself,
you don't really have another person
that you can talk to and bounce ideas off of.
And that's where your notes come in handy.
When you write something down,
you're forcing your mind to really contextualize it
and format it in a legible format.
So when you write it down, it has to be readable,
it has to all flow and make sense.
If you leave everything in your mind
and you don't actually put anything down,
how do you know that you can explain it to someone else,
that you actually understand it?
However, if you can put it down in your own words,
that's a great indicator
that you have a good understanding,
at least that initial understanding of the topic.
There's a really great quote
by computer scientist Nabeel Qureshi
in his essay about understanding, where he says,
"'It's harder to fool yourself
"'that you understand something
"'when you sit down to write about it
"'and it comes out all disjointed and confused.
"'Writing forces clarity.'"
So that's why I always try
to take some notes off to the side.
So let's actually take some notes in real time.
So let's say that I have my textbook over here on the left
with a open text editor, anyone would do fine on the right.
I basically just dug up a really old notes document
that I had when I first learned about arrays.
So we'll go through how I made that,
why I made it like that,
and what each individual section means and why it's there.
What I like to do is I like to take
this super dense textbook and reformat it,
kind of condense it down into my own thoughts
and make it a lot more readable in my notes document.
So as you can see right there, there are bullet points,
and it's just a lot easier to go through and understand
than the super dense textbook on the left.
So whenever I read a sentence or a line
that is new information,
I always decide to put that in a bullet,
in a fresh bullet if it's really important.
Then in that bullet point,
I try to rephrase it or try to change it around.
I don't like to copy the exact definition down.
I want to sit down, think about it for a little bit,
and then put that new definition down.
So as you can see right here,
we have my definition of an array.
I tried not to take the exact definition
from the textbook on the left.
I kind of just move some things around.
That forces you to think about it
rather than just copying and pasting from the textbook.
And if you're thinking about it,
then that's all about understanding.
And the point of this exercise
is to force your mind to think
rather than just reading a textbook
and not really thinking about it or understanding it.
Notice how I talked about
how they are a reference type variable.
At the time, that was a concept
I was struggling with a little bit.
So even though that wasn't necessarily in the book,
I really thought about it
and thought that was an important concept to put down.
So don't let the book limit you.
Whenever you have a question
or something you don't really understand,
use external resources and collect that information
and then put your own thought process down on the page.
So as you can see over here,
I have gone through this textbook
and really reformatted everything
and put it down in my own words
in a lot more legible, simple format.
What I always make sure to do
is to put down some sort of examples
or case studies of whatever you're studying.
This is hugely important
because there's a lot of evidence
that physical examples or visualizations of concepts
are a lot easier to grasp or understand faster
rather than just looking at abstract definitions.
So if I was doing these notes on paper,
I maybe would have drawn like a little box thing
to represent an array.
So over here, I just put down a random example,
int with the brackets A,
just to represent and kind of solidify
what the syntax for declaring an array was.
Another important aspect of picking examples
is you wanna make sure
that you can create your own examples.
A lot of people, what they'll do
is they'll just go in the book
and they'll just copy and paste the example in the book.
And just because you can copy and paste the example
doesn't mean you actually understand it.
So it's a true sign that you understand something
if you can create your own example for that concept
and then put that in your notes.
So notice how I have another example there
and another one down below.
I really stress the importance of examples
when you're trying to learn some new content.
So the third most important aspect
of taking your preliminary notes
is you wanna make sure that you put down any questions
or misconceptions or concerns that you have over the topic.
Ideally, you're taking these notes beforehand,
the day before, the week before,
and you haven't learned this new stuff.
So you're bound to have a ton of questions.
And if you put those down, you won't forget them.
And you can make sure to ask your teacher during the lecture
when that lecture comes up.
So that's what I do the day before the lecture.
I always make sure to read through the textbook,
read through the lecture notes,
and create my own document where I'm reformatting
and trying to really understand the topics
before the professor teaches me.
Now let's talk about what I do during the lecture.
So ideally, during the lecture,
you'll have your notes open,
whether they're handwritten or typed.
And the point of the lecture is to fill in any gaps
that you had while doing your self-learning.
Now, a lot of people complain about how
professors aren't teaching you any information
that you can't learn yourself.
And I get this argument.
I mean, you have your textbook, your notes.
You can get a pretty good understanding of the subject
without the professor.
However, the professors have a level of experience
and teaching skills that it's really impossible
to get from a textbook.
Every professor brings their own unique outlook
on a certain topic with their own examples
and own explanations.
So it's really important to pay attention during lecture
and put down any new or unique or novel examples
or aspects of the topic
that you didn't see in your lecture notes,
that you didn't see in your textbook.
You wanna consolidate everything
into this one master document.
If you did everything right,
your notes should have your own rendition
of the textbook information, the lecture notes,
the lecture slides, and the lecture itself.
So now let's talk about what the goals
and impact of the system is,
why I decided to go with this system
for my computer science classes,
and honestly, most of my other classes,
because it just works so well.
So this note-taking system produces two things.
One, it greatly increases your understanding
and knowledge of a topic before a lecture.
If you can force yourself to sit down
and make yourself write out notes,
you are making yourself slow down
and really think about a topic.
And I find that in this day and age,
a lot of us will tell ourselves, oh, we're studying,
but we don't really slow down enough
and try to understand it to a deep level.
The second impact of this note-taking system
is that at the end of lecture,
you have this beautiful master document
with literally all the information from that lecture,
all the information in the lecture notes,
the textbook, the slides, everything is together here.
And the effects of that are remarkable.
It's amazing to have one document
where you have everything
from all the different aspects of the topic,
all the different places consolidated into one place.
It's a great study aid.
So those are the methods that I use
to take notes for my computer science classes.
Before and during lecture.
In the next video,
we'll talk about exactly what I do after lecture
to practice my notes and make sure
that I actually remember what I've learned for the test.
So that's all for this video,
but before you go,
I'd like to ask you to check out Skillshare.com.
Skillshare is an online learning community,
kind of like Netflix for online classes.
You can access thousands of different classes
from all different topics,
from creativity to video editing,
to design, to filmmaking,
anything and everything is on there.
I have my own class on the fundamentals of C sharp,
a really new programming language.
So if you sign up for Skillshare,
you can check that out.
If you click the link in the description,
you can get a two month free trial to Skillshare
and help support the channel.
That's two full free months
of accessing thousands of online courses
in all different topics and subjects.
Anyway, thank you guys for watching.
Make sure to hit the like and subscribe button
and I'll see you guys later.
