Curriculum
Course: Computer Science Basics
Login
Text lesson

Foreword

This e-book is the first installment in a series dedicated to software engineering. While there are already numerous resources available such as training materials, college programs, and online courses on this topic, you might wonder why I’m introducing yet another one.

Truth be told, the internet is filled with excellent courses, both paid and free, offering plenty of support. I’ve personally benefited from these opportunities for decades. However, despite the abundance of resources, I felt that something crucial was missing:

  • Learning all the necessary concepts to grasp the big picture takes a significant amount of time. Without prior knowledge of a subject, it’s challenging to know where to start or what questions to ask, leading to occasional feelings of being lost.
  • Not everyone possesses the talent to teach effectively, resulting in potential time wasted along the way.
  • Many courses or educational materials are not tailored to the level of the audience, making it difficult for beginners to understand.
  • Premium content can be prohibitively expensive for some learners.
  • Understanding the history of a field is essential for mastering any occupation, yet many courses overlook providing this historical context.
  • It’s often challenging to find resources that facilitate progressive learning, where each piece of knowledge builds upon the previous one seamlessly.

 

Taking all these factors into account, I realized that I could and wanted to approach this differently.

With a solid analytical foundation and a Bachelor of Science degree in electronics engineering (earned in 2003) from the esteemed Bilkent University in Ankara, Turkey, along with over 20 years of experience as a ‘semi-self-taught’ software engineer, I possess the ability to connect the dots and a strong desire to contribute through writing. This gives me the confidence and joy to embark on this journey.

I’ve designed these courses with several goals in mind:

  1. To cater to complete beginners, ensuring they can follow the materials progressively, grasp concepts effortlessly through real-life examples, and gradually develop into competent software engineers with a comprehensive understanding of computer science.
  2. For students already studying a similar subject, these materials will serve as valuable aids, offering support, reinforcement, or a refresher as needed.
  3. The courses will be divided into separate categories, allowing learners to skip any topics they are already familiar with.

 

In crafting these courses, I’ve drawn on centuries of research into teaching methodologies. While there’s no single best approach, certain principles have stood the test of time:

  • “A picture is worth a thousand words.”
  • Repetition strengthens learning, thanks to the brain’s neuroplasticity.
  • Engaging with a subject through reading, listening, observing, and practicing leads to easier, faster, and more enjoyable learning experiences, with lasting results.

 

Rest assured, I’ll strive to incorporate these principles to create a supportive learning environment for you.

To bolster your understanding, computational thinking, and problem-solving skills, I’ll provide numerous relevant examples and exercises.

Drawing from my experience, I’ll occasionally delve into the meanings and etymological roots of words within the context of the subject matter, as this can expedite the learning process.

Additionally, I’ll integrate traditional deduction and induction techniques throughout the lessons to enhance your logical reasoning and critical thinking abilities.
I aim to differentiate my work by prioritizing simplicity, learner-friendly organization, and a progressive approach. Real-life examples and analogies will help you build new neural connections in your brain by encouraging natural comparisons. I hope you’ll soon see the benefits firsthand.

As already stated above, success in computer science requires honing critical thinking, logical reasoning, and computational thinking skills. While there’s no direct path to acquiring these skills, my courses will introduce specific learning approaches, encourage pre- and post-material brainstorming, offer prompts for independent thinking, and provide references to other relevant sources and tools. Engaging with these efforts will undoubtedly strengthen your foundation and prepare you to tackle future topics with confidence.

If you prefer interactive course versions of these e-books, I invite you to visit softacademia.org. There, you’ll find a wealth of courses designed with the same principles outlined above. Softacademia.org offers an online education platform tailored for self-paced learning, providing a personalized environment as you progress. You’ll also have the opportunity to take quizzes if you enjoy them, and upon completing a course, you can download and share your certificates.

For further details about my background and projects, please visit my
LinkedIn account,
Upwork profile, or
personal website.

In this course, you will become acquainted with the basics of computer science, such as the general architecture and components of computers, how computers function, the execution of computer programs, binary formatted data, and the fundamentals of operating systems.

That being said, let’s get started.