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?
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.
Type under console tab: >console.log(“Hello World”); >Hello World
|Console.log is for outputting certain text when placed within ‘’ or “” in the console section||Have to open the console tab from the menu to open it. Or press CMD+ALT+J from Mac.|
|Console log can also be used for number computation and variables||I 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.
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.
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.
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 notes. Markdown editors for note-taking – Offline editor: Beautiful Typora & Online editor: StackEdit for good features.
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.
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.
In any case, be kind, do a good deed i.e. share your notes with your friends and public if appropriate, and good luck!
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?
- Quell and [the sequence] are logic puzzlers (Windows only)
- Algo Bot is a puzzle game with better graphics and 7 Billion Humans for programming logic (Windows, Mac, Steam OS + Linux)
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+).