የኮምፒውተር ሳይንስ እና ፓይተን ማኑዋል

ይህ የኮምፒውተር ሳይንስ፣ የሶፍትዌር ኢንጂነሪንግ እና የፓይተን (Python) ፕሮግራሚንግ ቋንቋን መሰረታዊ እና ጥልቅ ፅንሰ-ሀሳቦች በዝርዝር የሚያብራራ ማኑዋል ነው።

🏠 Home

🏢 ክፍል 1፡ ኮምፒውተር እና ተያያዥ ፅንሰ-ሀሳቦች (Computer & Core Concepts)

ኮምፒውተር ማለት መረጃን (Data) ተቀብሎ፣ በከፍተኛ ፍጥነትና ጥራት አሰናድቶ (Process)፣ የመጨረሻ ውጤትን (Information) የሚሰጥ እና መረጃን መልሶ ለመጠቀም የሚያስቀምጥ (Store) የኤሌክትሮኒክስ መሣሪያ ነው።

ኮምፒውተር ሙሉ በሙሉ ለመስራት በሁለት ዋና ዋና ክፍሎች ይከፈላል፦ ሃርድዌር (Hardware) እና ሶፍትዌር (Software)

1. ሃርድዌር (Hardware)

በእጃችን ልንዳስሳቸው እና በዓይናችን ልናያቸው የምንችላቸው የኮምፒውተር አካላት ናቸው። በውስጡ አራት መዋቅራዊ ክፍሎች አሉት፦

  • የመግቢያ መሣሪያዎች (Input Devices): መረጃን ወደ ኮምፒውተሩ ለማስገባት ያገለግላሉ። (ምሳሌ፦ ኪቦርድ፣ ማውዝ፣ ስካነር)
  • ማዕከላዊ ማቀነባበሪያ ክፍል (CPU - Central Processing Unit): የኮምፒውተሩ "አንጎል" በመባል ይታወቃል። ማንኛውንም የሂሳብ ስሌት እና ውሳኔ የሚወስነው እሱ ነው።

ALU (Arithmetic Logic Unit)

የሂሳብ እና የሎጂክ ስሌቶችን ይሰራል (+, -, ×, ÷ እና ንፅፅሮችን)።

CU (Control Unit)

በሃርድዌር አካላት መካከል ያለውን የመረጃ ፍሰት ይቆጣጠራል።

  • የማከማቻ ክፍሎች (Memory/Storage):
    RAM (Random Access Memory): ኮምፒውተሩ በወቅቱ እየሰራበት ያለውን መረጃ ለጊዜው የሚይዝበት ፍጥነትኛ ማህደረ ትውስታ ነው። ኮምፒውተሩ ሲጠፋ RAM ውስጥ ያለ መረጃ ሁሉ ይጠፋል (Volatile)።
    Storage (HDD/SSD): መረጃዎችን በቋሚነት ለረጅም ጊዜ የምናስቀምጥበት ክፍል ነው (Non-volatile)።
  • የውጤት መሣሪያዎች (Output Devices): ኮምፒውተሩ ያቀነባበረውን መረጃ ለእኛ ለሰዎች የሚያሳይበት መንገድ ነው። (ምሳሌ፦ ሞኒተር/ስክሪን፣ ፕሪንተር፣ ስፒከር)

💻 ክፍል 2፡ የፕሮግራሚንግ ሶፍትዌሮች (Programming Softwares)

ሶፍትዌር ማለት ሃርድዌሩ ምን መስራት እንዳለበት የሚነግሩ የኮድ ትዕዛዞች ስብስብ ነው። ሶፍትዌሮችን ለመስራት ደግሞ የፕሮግራሚንግ ሶፍትዌሮች እና መሣሪያዎች ያስፈልጉናል።

1. የቋንቋ ደረጃዎች (Levels of Programming Languages)

ኮምፒውተር በቀጥታ የሚረዳው የራሱን ቋንቋ ብቻ ነው። የሰው ልጅ ደግሞ ያንን መረዳት ስለሚከብደው የኮምፒውተር ቋንቋዎች በሂደት አድገዋል፦

የማሽን ቋንቋ (Machine Language / Low-Level)

በ 0 እና 1 (Binary) ብቻ የተገነባ ቋንቋ ነው። ኮምፒውተር በቀጥታ ይረዳዋል፣ ለሰው ልጅ ግን ኮድ ለመጻፍ እጅግ ከባድ ነው።

የአሰምብሊ ቋንቋ (Assembly Language)

ከ 0 እና 1 ወጣ ብሎ እንደ ADD፣ MOV ያሉ አጫጭር ቃላትን ይጠቀማል።

ከፍተኛ የፕሮግራሚንግ ቋንቋ (High-Level Language)

እንደ Python፣ Java፣ C++ ያሉ ወደ እንግሊዝኛ ቋንቋ የሚጠጉ ናቸው። የሰው ልጅ በቀላሉ ይረዳቸዋል፣ ነገር ግን ኮምፒውተሩ በቀጥታ ሊረዳቸው አይችልም።

2. አስተርጓሚዎች (Translators)

ከፍተኛ ቋንቋዎችን (High-Level) ኮምፒውተር ወደሚረዳው ማሽን ቋንቋ (0 እና 1) ለመቀየር ተርጓሚ ሶፍትዌሮች ያስፈልጋሉ። እነዚህም በሁለት ይከፈላሉ፦

  • ኮምፓይለር (Compiler): አጠቃላይ የተጻፈውን ኮድ በአንድ ጊዜ በአንድ ላይ ገምግሞ ወደ ማሽን ቋንቋ ይቀይረዋል። (ምሳሌ፦ C++, Java)
  • ኢንተርፕሬተር (Interpreter): ኮዱን በመስመር በመስመር (Line by Line) እያነበበ ወዲያውኑ ይተረጉማል፣ ይተገብራል። (ምሳሌ፦ Python, JavaScript)

3. የመጻፊያ አካባቢ (IDE - Integrated Development Environment)

አንድ ፕሮግራም አውጪ ኮድ በብቃት ለመጻፍ፣ ስህተት ለማረም (Debug) እና ኮዱን ለማስኬድ የሚጠቀምበት የተቀናጀ ሶፍትዌር ነው።

የፓይተን ኮድ ለመጻፍ በብዛት የሚጠቅሙ የ IDE ምሳሌዎች፦ VS Code, PyCharm, Jupyter Notebook, Google Colab ናቸው።

🐍 ክፍል 3፡ ፓይተን እና ታሪኩ (Python and its History)

ፓይተን (Python) ከፍተኛ ደረጃ ያለው (High-level)፣ በኢንተርፕሬተር የሚሰራ (Interpreted) እና ሁለገብ (General-Purpose) የፕሮግራሚንግ ቋንቋ ነው።

1. የፓይተን አጭር ታሪክ (The History of Python)

  • ፈጣሪው ማነው? ፓይተን የተቀረጸውና የተፈጠረው በኔዘርላንዳዊው የኮምፒውተር ሳይንቲስት ጊዶ ቫን ሮሰም (Guido van Rossum) ነው።
  • መቼ ተፈጠረ? ማዘጋጀት የተጀመረው በ1980ዎቹ መገባደጃ ላይ ሲሆን፣ የመጀመሪያው ይፋዊ ስሪት (Python 0.9.0) የወጣው እ.ኤ.አ. በየካቲት 1991 ነው።
  • የስሙ አመጣጥ፦ ብዙ ሰዎች ፓይተን የሚለው ስም የተወሰደው "ፓይተን" ከሚባለው ግዙፍ እባብ ይመስላቸዋል። ነገር ግን እውነታው ፈጣሪው ጊዶ ቫን ሮሰም በወቅቱ በቢቢሲ (BBC) ይሰራ የነበረውን "Monty Python's Flying Circus" የተሰኘውን የኮሜዲ ተከታታይ ድራማ ይወድ ስለነበር፣ ለቋንቋው አጭር፣ ምስጢራዊ እና ለየት ያለ ስም ለመስጠት ሲል "Python" ብሎ ሰየመው።
  • ዋና አላማው፦ ፓይተን የተፈጠረው ABC ከተባለ የፕሮግራሚንግ ቋንቋ በመነሳት ነው። ዋናው ፍልስፍናው የኮድ ተነባቢነትን (Readability) ማሳደግ እና ፕሮግራም አውጪዎች በጥቂት የኮድ መስመሮች ትልልቅ ስራዎችን እንዲሰሩ ማስቻል ነው።

2. የፓይተን እድገት ደረጃዎች (Version History)

Python 1.0 (1994)

እንደ lambda, map, filter ያሉ መሰረታዊ ተግባራትን ይዞ መጣ።

Python 2.0 (2000)

የፓይተን ዝና የጀመረበት ነው። መረጃዎችን በቀላሉ ማደራጃ መንገዶችን (List comprehensions) እና የቆሻሻ መጣያ ማህደረ ትውስታ ማጽጃን (Garbage collector) አስተዋወቀ።

Python 3.0 (2008)

ይህ ትልቅ የለውጥ ምዕራፍ ነበር። ፓይተን የነበሩበትን የዲዛይን ስህተቶች ለማረም ሲባል የቀድሞውን ኮድ የማይደግፍ (Backward Incompatible) ተደርጎ ተሰራ። በአሁኑ ጊዜ ፓይተን 2 ሙሉ በሙሉ ያበቃለት ሲሆን፣ አለም እየተጠቀመች ያለችው በፓይተን 3 ስሪቶች ላይ ነው።

3. ፓይተን ዛሬ ለምን የኢንዱስትሪ መሪ ሆነ?

ፓይተን በአሁኑ ሰዓት በቴክኖሎጂው ዓለም ውስጥ ንጉስ የሆነበት ዋና ዋና ምክንያቶች የሚከተሉት ናቸው፦

  • ለሰው ሰራሽ አስተዋይነት (AI & Machine Learning): እንደ TensorFlow, PyTorch እና Scikit-learn ያሉ ታዋቂ የ AI ቤተ-መጻሕፍት (Libraries) የተገነቡት በፓይተን ነው።
  • ለዳታ ሳይንስ (Data Science): ትልልቅ ዳታዎችን ለመተንተንና በግራፍ ለማሳየት Pandas, NumPy እና Matplotlib እጅግ ተመራጭ አድርገውታል።
  • ለዌብሳይት ግንባታ (Web Development): እንደ Django እና Flask ያሉ ፍሬምዎርኮች ፈጣንና ደህንነቱ የተጠበቀ ድር ጣቢያ ለመስራት ያስችላሉ። (ለምሳሌ፦ Instagram, YouTube እና Spotify በከፊል በፓይተን የተገነቡ ናቸው)።