Skip to content

AhmedYaser-Mt/08---Algorithms-Problem-Solving-Level-4

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 

Repository files navigation

📘 08 — Algorithms & Problem Solving – Level 4

65 advanced C++ problems building a complete Date & Time library from scratch — plus two real-world projects. Scale, endurance, and system-level thinking.


🚀 Course Overview

This is Course 8 in the Programming Foundations Roadmap by Dr. Mohammed Abu-Hadhoud.

Level 3 covered matrices, strings, and file handling.

Level 4 goes deeper — but with a focused twist.

All 65 problems are centered around a single domain:

Date & Time.

Not because dates are simple.

Because building a complete, reliable date system from scratch — function by function — is one of the most effective ways to train precision, edge-case thinking, and system design at scale.

At this level, experience is no longer optional — it defines you.


🧩 Problem Categories

📅 Date Foundations — Problems 1–19

Core date logic built from the ground up: converting numbers to text, detecting leap years (including a one-line solution), calculating days/hours/minutes/seconds in a year or month, generating day names, month calendars, year calendars, finding days elapsed from the start of a year, deriving a date from a day order, adding days to a date, comparing dates, and calculating differences in days and age in days.

➕ Increase Date Problems — Problems 20–32

A dedicated group focused entirely on date incrementation — covering all edge cases across days, months, and years, including month boundaries, year rollovers, and leap year transitions.

➖ Decrease Date Problems — Problems 33–46

Mirror of the increment group — decrementing dates correctly across all boundaries, with the same edge-case discipline applied in reverse.

🔀 More Date Problems — Problems 47–53

Mixed date operations: combining increment, decrement, and comparison logic in more complex scenarios.

🗓️ Advanced Date & Period Problems — Problems 54–65

Higher-level operations: calculating vacation days, computing vacation return dates, checking if Date1 is after Date2, a unified date comparison function, detecting overlapping periods, calculating period length in days, checking if a date falls within a period, counting overlap days between two periods, validating dates, reading and printing date strings, and formatting dates.


🏦 Projects

Project 3.2 — Bank System (2nd Extension)

The bank system from Projects 3 and 3.1 — extended with a full user management layer.

New Features:

  • Role-based user permissions
  • Login and access control
  • User management screen
  • Permission-based menu visibility

Each feature added without modifying the original system's core.

👉 (Separate repository — see Bank project series)


Project 4 — ATM System

A standalone ATM simulation — a different system, built from scratch using the same clean architecture principles.

Features:

  • Card-based login
  • Balance inquiry
  • Deposit and withdrawal
  • PIN management
  • Transaction handling

👉 (Separate repository)


🎯 What This Course Builds

  • A complete, professional-grade Date & Time library built step by step
  • Precision thinking for edge cases (month boundaries, leap years, year rollovers)
  • Endurance across a 65-problem set without losing code quality
  • Period and overlap logic used in real scheduling systems
  • System-level project thinking applied to two different domains
  • The habit of solving → reviewing → extracting patterns

🛠️ Tech Stack

Language C++
IDE Visual Studio
Paradigm Structured Programming — Divide & Conquer
STL Used vector, string, iomanip

🏁 Milestone

  • ✅ 65 problems solved — all within the Date & Time domain
  • ✅ 2 complete real-world projects built and deployed
  • ✅ Part of Course 8 — Algorithms & Problem Solving – Level 4
  • ✅ Roadmap progress: 8 of 13 courses in Stage One complete

🙏 Gratitude

Thank you to:

  • Programming Advices Platform
  • Dr. Mohammed Abu-Hadhoud

[ https://programmingadvices.com ]

For designing a course where 65 problems are not scattered exercises —

but a single, deliberate build toward something real.


🔥 What's Next

Course 9 — Foundations Level 2

Networks, Internet, APIs, and how real software systems communicate.

The foundation keeps growing.

Releases

No releases published

Packages

 
 
 

Contributors