Computer Science Tutorials — Algorithms, Data Structures, OOP and Programming Styles

Flat illustration of four computer science discipline cards showing algorithms sorting chart data structures tree OOP class diagram and programming styles lambda symbol connected in blue and white

Computer science is the intellectual foundation beneath every line of code you write. While programming teaches you how to instruct a computer, computer science teaches you why certain approaches work better than others — why one algorithm processes a million records in seconds while another takes hours, why the right data structure makes the difference between elegant and unworkable code, and why the principles of object-oriented design produce software that survives contact with the real world.

MYCPLUS has been publishing computer science tutorials and practical programming guides since 2004, building a comprehensive resource covering the core theoretical and applied topics that every serious programmer needs to understand. This Computer Science hub brings together four interconnected areas of study — Algorithms, Data Structures, Object-Oriented Programming and Programming Styles — each with its own dedicated section of in-depth tutorials, practical examples and working source code.

Tis section gives you the theoretical understanding and hands-on programming experience to write better software, solve harder problems and think more clearly about how programs work. Whether you are studying for exams, preparing for technical interviews or simply becoming a stronger programmer — start here.

What You’ll Learn

  • Algorithms — sorting, searching, graph traversal, dynamic programming and optimisation techniques with working C implementations and complexity analysis for real-world problem solving
  • Data structures — arrays, linked lists, stacks, queues, trees, hash tables and graphs with practical C and C++ source code examples and guidance on choosing the right structure for every problem
  • Object-oriented programming — the complete OOP model including encapsulation, inheritance, polymorphism and abstraction with practical examples across C++, Java and C# for real-world software design
  • Programming styles and paradigms — procedural, object-oriented, functional and declarative programming approaches with examples showing how modern developers apply multiple paradigms in professional codebases
  • Algorithm complexity and analysis — understanding Big O notation, time and space complexity, best and worst case analysis and applying complexity thinking to write more efficient everyday code
  • Applied computer science — bridging theory and practice by applying computer science principles to real programming problems in C, C++ and Java with source code you can study and build on immediately

Explore the four core areas covered in this section:

Algorithms — sorting, searching, graph traversal and optimisation
Data Structures — arrays, linked lists, trees, stacks and graphs
Object-Oriented Programming — classes, inheritance and polymorphism
Programming Styles — procedural, functional and declarative paradigms

Why MYCPLUS: Trusted by programmers and computer science students since 2004 — MYCPLUS covers all four core computer science disciplines in one place, with practical implementations in C, C++ and Java designed for both academic study and real-world software development.

String Sorting in Java

String Sorting in Java

In this article, we explore different sorting techniques applied to strings in Java. We will look into the implementation of the direct insertion sorting algorithm and more advanced techniques such as the Merge Sort and Quick Sort algorithms. Each approach offers unique advantages by providing Java developers with flexibility in choosing the most suitable method based on the specific requirements of their applications.

random numbers

Find the longest common sub-sequence between two strings: Dynamic Programming Algorithm

This C program finds the longest common sub-sequence between two strings. It implements the most famous dynamic programming algorithm. Dynamic programming is a computational technique used to solve complex problems by breaking them down into smaller subproblems and solving each subproblem only once, storing the solution to each subproblem and using it to solve larger problems.

Base 64 Encoding and Decoding

256-bit Serpent VB Implementation

This is a slow but working Visual Basic implementation of the 256-bit Serpent algorithm. Serpent was a finalist for Advanced Encryption Standard (AES) and appears to be a very secure powerful algorithm. The Advanced Encryption Standard, or AES, is a symmetric block cipher chosen by the U.S. government for the encryption of classified electronic data and is implemented in software and hardware throughout the world to encrypt sensitive data.

c-algorithms-library

Bayer Tree implementation in C

This is implementation of Bayer-Trees, which are normally used for indices of data bases. These routines provide all stuff that is needed to create and destroy; insert, update and delete; load and destroy; search and traverse; check a tree. Sort huge amounts of data by doing a multi-phase sorting on temporary files.

Porter's Algorithm in C

Porter’s Algorithm in C

Originally written in 1979 at Computer Laboratory, Cambridge (England), it was reprinted in 1997 in the book “Readings in Information Retrieval”. Initially it was written in BCPL language. Here is the list of implementations in other programming languages including C, Java and Pearl implementations done by author himself.

Standard Function Library

Standard Function Library – ANSI C

The SFL (Standard Function Library) is an open source portable function library for C/C++ programs. Written by iMatix, the SFL provides about 450 functions for compression, encryption, encoding, datatype conversion and formatting, dates, times, calendars, internet programming (MIME, CGI) and many more.

trie data structure

Linux kernel coding style

This is a short document describing the preferred coding style for the Linux kernel. Coding style is very personal, and I won’t _force_ my views on anybody, but this is what goes for anything that I have to be able to maintain, and I’d prefer it for most other things too. Please at least consider the points made here.

The C++ Standard Library

STL: The C++ Standard Template Library

The STL (Standard Template Library) was originally a third-party library from HP and later SGI, before its incorporation into the C++ standard. The standard does not refer to it as “STL”, as it is merely a part of the standard library, but many people still use that term to distinguish it from the rest of the library (input/output streams [known as IOstreams], internationalization, diagnostics, the C library subset, etc.).

Scroll to Top