How To Take Notes For Computer Science

I am wondering what are the ways to take notes for a computer science course. Computer science is an extensive subject of various in-depth specializations, particularly in the past decades driven by the explosive growth of the internet and its related technologies. Computer science may just be classified as a single subject but the creative inventions and its financial potential is a testament to the fact that wealth of knowledge is only limited by our own imagination and reluctance to explore. We should bear in mind our goal may not be to attempt to master everything that computer science has to offer but to take notes of all the important points, and looking to create useful but currently unavailable or improve upon poor web services from a business perspective in my humble opinion. Some of the richest people on the planet are pioneers in specific fields of computer science providing what people needed at that time.

How to take notes for computer science?

Technique:

  • Divide-and-conquer

Modern Notes taking tool: 

  • Gingkoapp – For organised note-taking overview
  • Boostnote and more – For programming comments and snippets

Whether you use a digital device app to take notes or not, keep in mind the important point is to understand the subject matter and apply it when you have to. Computer science is a practical subject as much as it is theoretical if not more. One should aim to score well in every subject including this but also pay attention to the applicable daily uses of the concepts learned. This may be a decisive factor in your future as a web entrepreneur or inventor with a passive income. Let us examine how to take notes for computer science in greater detail below…

Divide-and-conquer for note-taking

This is a familiar method among the information technology field, and an appropriate one given this subject can be overwhelmingly informative at first glance. Divide and Conquer is an algorithm design paradigm on Wikipedia, this post focuses on solving difficult problems aspect mentioned in that same article. On a personal note, a great advantage in this method is the removal of fear and procrastination. It changes your perspective of everything to one doable unit or task at a time, and just focus on accomplishing to overcome one problem at a present time. Conversely, if we cannot accomplish the smallest unit then what chances do you have of the whole? Do not get ahead of ourselves first. This method worked for me and many others, please give yourself a chance to start dividing and conquering away. 

Basically, all you have to do is to divide up the course or chapter into tasks or units that you can do and cover in a single session. Just do as best you can in that session to accomplish your unit task, before moving on to the next. Once you have completed all the unit tasks (with exercises) for all chapters of the whole course and reviewed them with ease, you can be ready for the exam.

For example, you want to learn Javascript. So you break it up into various chapters and start from the most basics of command and how to run and output it. In the programming world, we start with displaying the first output in a tradition known as “Hello World”.

E.g. From Chrome Menu -> View -> Developer -> click Javascript Console.
Type under console tab:  >console.log(“Hello World”); >Hello World

Once you figured this out, you move on to the next concept or command syntax and so on until you covered what you want to learn from Javascript. Keep on practicing. Pay close attention to exercises, because we may learn and understand more from these than reading the text. When you run into a problem or a concept you do not understand, research, Google and ponder over it for a breakthrough. If you have a problem with this, it is probably someone else encountered it too. Do not be too hard on yourself. Takedown text notes for 2 columns: theory and practical. Another 2 columns for realizations worth noting down on theory and practical.

For example Javascript – Chapter 1

Textbook

TheoryPractical
Console.log is for outputting certain text when placed within ‘’ or “” in the console sectionHave to open the console tab from the menu to open it. Or press CMD+ALT+J from Mac.

Realisation

TheoryPractical
Console log can also be used for number computation and variablesI find console.log useful as a first step to debugging and troubleshooting the program logic.

Note: The above is only for illustration purposes. You do not need to take notes down for every detail, but only for more important ones, I would think especially the realization part.

One may also use Divide-And-Conquer with a difficult concept by dividing it up into smaller parts and strive to understand each and every part before summing it all up as a whole. Difficult sentences work the same way, once we understood all the words in that sentence we should know what it means. 

For example, when your program or codes are displaying an unexpected result, you can apply the divide-and-conquer method in an attempt to solve the problem. 

  • First, identify all possible causes that may have caused the unexpected result, including those parts that you are unfamiliar with.
  • Second, start with what is working first and then add one new part (you understood and tested i.e. CodePen/Visual Studio Code) to see if it delivers what you expect.
  • Third, add another part (tested individually also) and the next and so on until the final part. By now at least you should know where the problem started.
  • Fourth and now for the problem, focus on understanding it or apply the divide-and-conquer method again only to learn more about the specific problem. This process may be tedious and long but it is effective. However, bear in mind you probably should not have to deviate too far from the solution and got lost in the researching process. In this case, you may reset the whole process and restart the divide-and-conquer process in an attempt to discover what you could have missed before.
  • Fifth, remember to record down any notes of importance you learned and realized. If you had taken a long and arduous road to figure this out, it is unlikely you will forget it anytime soon but let’s not leave anything to chance especially when you are planning for a long term goal.

Have faith you will get there: The key to success with this technique is whether you have divided into conquerable tasks and act on it. Divide yet into smaller units and parts if it is still too hard.

When you are considering books for programming, I would recommend one that you can connect well with. I remember probably the first programming book I was fond and find useful was the Sams Teach Yourself C in 21 days. I liked it because it was divided into numerous logical parts over 21 days format. The exercises was brief and clear to the point. This book is dated but I hope you consider and find a modern book with these qualities for your programming success.

For programming, you may code in a good desktop free coding editor such as Visual Code Studio or Atom. Both have extensions or packages to customize to your needs. My vote goes to CodePen for Javascript, HTML, and CSS for saving all your work on the web and the option to share with others your work. There are numerous free books e.g. Javascript & Python but just pick any good book (paper or digital) for quick mastery and do not get distracted from your end-goal. You can find my recommendation for the web developer course under Related Questions section below.

Tip: Do not underestimate the power of this technique. A single session work may seem unimpressive, but multiply that by ten or even a hundred sessions and you will have a certain degree of knowledge specialization. Do not be overly impatient and take time to work through the concepts and any available exercises to understand the matter well, but do not overspend your time by reminding yourself to keep sight of your overview goal.

On a side note, did you miss this post?   Beginner's Guide To Taking Notes On Computer

Gingkoapp 

Gingkoapp can work not only for computer science note-taking but also for academic papers, projects, screenplays, and others. But it is more for factual and textual learning with notes, not to substitute your programming experience. The clear advantage of Gingkoapp web notes app is with how structured and suitable for the divide-and-conquer approach of learning. 
Examples

Boostnote and more

This is covered in more detail in a previous post, please go here. Coders may also prefer Atom, please read this How to use Atom to take notesMarkdown editors for note-taking – Offline editor: Beautiful Typora & Online editor: StackEdit for good features.

Evernote

Alternatively, a general but a professional features-rich note app such as Evernote can be used. This is actually a good idea because your notes gathered on a single platform over the years can be referenced back with searches and tags for easy access. For those new to Evernote starting on a new note, a short guide with screenshots can be found here. The above 2 column tables are created in Evernote. It is also easy to add colors to the table cells.

Group Note Collaboration

Classmates and workmates may wish to take notes on the same lecture or meeting at the same time without private details, they may edit the same google document shared to them.

Are there any ready-made notes for computer science?

Computer Science Flash Cards by Barron’s AP. Physical cards can get you started learning the different concepts. It also has 100 problems with solutions on the back. This can be a good idea because you would be better off learning the main concepts while focusing on the programming aspects of computer science. Remember to tackle both theory and practical for better coverage. Also, the cards may cover the essential basics but this should be good as long as it functions as a stepping stone to the next level of topic understanding. Moreover, you can take notes down on these flashcards as a template with new knowledge and experience acquired. Computer Science A with Online Tests is also available from the same publisher. (affiliate links)

Memrise has various free courses in questions-and-answers style to help you drill for review and memory purpose. Memrise may be effective in repeating information for longer-term memorization purposes however it is may not excel in learning new knowledge or understanding. Please evaluate if these ready notes are helpful to your existing studies: 

Where can I take computer science courses?

These days computer science courses from reputable institutions are offered for free online. For example, you may consider Computer Science 101 by Stanford School of Engineering and CS50: Introduction to Computer Science by Harvard University (available as of writing). 

Listen to an audio podcast lectures course: Introduction to Computer Science and Programming (John Guttag, Eric Grimson) from MIT Open Courseware.

Alternatively for those who prefer a course on a video platform: Computer Science 101: Master The Theory Behind Programming (affiliate link). For a self-taught path in Computer Science education, this Github resource may help.

Conclusion

Divide and conquer can also be used for learning or completing other subjects, projects and life goals, not just computer science. It is suited here because this subject is vastly extensive with detailed information, just networking itself can be an in-depth field that spans multiple books with practical lab expert certifications i.e. Cisco.

More importantly, perhaps is to consider why we are taking notes for computer science in the long run. Are we learning to program and create certain websites offering a specific service such as word counts or color palettes with a twist to generate passive income from Google ads? Are we learning so we can publish a Kindle book with a certain focus? Are we learning so we can publish multiple useful YouTube videos? You should plan ahead so you know how to work towards your goal, starting with the first note. At least know you are accountable for any slippages and where to continue from. When taking notes relevant to your long-term cause, save a copy elsewhere or add a tag in Evernote.

The tools mentioned are just resources to help you attain your goals, but it is up to you to act on them and be creative with new ideas and directions. For example, there is any number of potential JavaScript sites that you can create starting from simple ones to open-source GitHub projects.

In any case, be kind, do a good deed i.e. share your notes with your friends and public if appropriate, and good luck!

Related Questions

What if I am new to computers?

Consider Learn Computers for free learning on Memrise.

Are there any good web developer courses out there?

I recommend The Complete Web Developer Course: Zero To Mastery (ZTM)  with a review here. One benefit is the practical aspect applicable to building web sites or apps. Learning from an experienced developer who evidently put in effort to create quality content with an active web community at an affordable price can be worth it for those who are struggling to pass, go for an interview or create useful websites. Someone who is unsure whether they have what it takes to be a web developer may also find out here if they can complete all the lectures and assignments. I like the way he cut to the chase, condensed and makes the topic easier to understand (this itself is value in my opinion). 

Back then in my programming days pointers in C, linked list and algorithms are probably the difficult theoretical concepts to master. Nowadays people are more concerned with algorithms to master e.g. for interviews. Neagoie also covered this in Master the coding Interview: Data Structures + Algorithms.

Note: affiliate links included.

How to manage a programming team?

If you have experience in programming with others, you will likely perhaps learn the hard way people are not always the easiest to deal with. You may be a good programmer who delivers but there are various sorts of people who do not play well with others or by the book. People can be even more challenging and stressful than the project assignment. This can apply to work colleagues as well. We need to be patient and communicate truthfully with tact as best we can.

I am inclined to believe managing and communicating with a working team is a skill we need to address and learn to apply as well, in addition to programming knowledge. This may be part of a comprehensive computer science curriculum. Peopleware and Managing the Unmanageable (affiliate links) are two books with good reviews that may help with this concern.

Are there any programming, puzzle or logic computer games?

AppGameKit for those looking to develop games across platforms for beginners and advanced.

Are there any games for kids to learn programming logic?

Code Master Programming Logic Game and STEM Toy (Age 8+) by ThinkFun is available on Amazon. Associating logic and fun is a good idea for instilling a positive skill in kids.

The Programming Team (affiliate link) teaches programming fundamentals understanding with a simple and short story (Age 2+).

close

Oh hi there 👋 Join to receive

content in your inbox

We don’t spam! Read our privacy policy for more info.