JIFUNZE COMPUTER PROGRAMMING KWA KISWAHILI: 2

     Jifunze computer programming kwa kiswahili:2




Utangulizi:


       Karibu tena katika muendelezo huu wa kujifunza computer programming kwa lugha ya kiswahili. Awali kabla ya yote ningependa kusema kuwa misamiati mingi tunayoitumia katika teknolojia ni ngumu sana kuweza kuitafsiri katika lugha ya kiswahili moja kwa moja, kuna baadhi ya maneno ukiyapeleka katika kiswahili inakuwa ni ngumu sana kwa msomaji kuweza kuyaelewa, tuchukulie mfano wa lugha ya python ni ngumu sana mimi kumwambia msomaji kuwa leo "nitazungumzia lugha ya chatu" (python language) kwani nitakuwa nimemuacha njia panda na hatonielewa  ila nikimwambia kuwa "leo nitazungumzia kuhusu lugha ya python" kwake yeye ni vyepesi kuweza kunielewa nimekusudia nini,mfano mwingine ni neno bug ambalo katika programming linamaanisha error(makosa) ila katika kiswahili cha kawaida neno bug linamaanisha kunguni, hivyo hivyo kuna baadhi ya maneno ni ngumu sana kuweza kupata maana yake halisi kwa kiswahili, neno kama software, ni neno ambalo kwangu mimi imekuwa kazi kupata kswahili chake, lakini si kwangu tu bali hata kwa baadhi ya wasomaji itakuwa ngumu kwao kuelewa nimekusudia nini, kwahiyo basi tukubali kuwa japokuwa kuna baadhi ya maneno ambayo yana kiswahili chake ila kiswahili hicho ni nadra sana kuweza kutumika.

       Ili kuweza kumfanya msomaji asichanganyikiwe sana na baadhi ya maneno, kuna baadhi ya maneno ambayo yamezoeleka katika jamii ambayo yapo katika lugha yake asilia kama vile English words, Latin words n.k nitayatumia hivyo hivyo bila kuyabadilisha, ila kabla ya kuyatumia nitayaelezea kwanza maana yake ili msomaji aweze kuyaelewa kwanza maana yake kisha nitaendelea kuyatumia hivyo hivyo bila kuyabadilisha.
Mfano wa maneno ambayo nimekwisha yaelezea na nitayatumia hivyo hivyo bila kuyabadili ni kama vile software,debug,program,error prone n.k
       Jambo lingine kwako wewe msomaji ni kutambua kuwa sio kila kitu utakipata hapa, kumbuka kuwa elimu ni pana sana, kuna baadhi ya mambo nitayaongelea na mengine inawezekana nisiyaongelee, kuna baadhi ya mambo hutoyajua kwa wakati huu ila kadri unavyozidi kusoma ndivyo unavyozidi kujua mambo mengi zaidi, kuna mambo ambayo nikiyazungumzia kwa sasa hivi itakuwa ni ngumu kwa wale wanaoanza kujifunza kuyajua, hivyo basi nitakuwa nazungumzia mambo muhimu(basic) kwa kuwa kuna mambo mengi sana na tukisema tuyazungumzie yote hatutomaliza........
       Ushauri wangu kwako msomaji ni kuwa kama unataka kuwa mtaalamu( expert) katika jambo fulani basi usitegemee chanzo( source) kimoja, jaribu kuingia katika sites mbalimbali, jaribu kusoma vitabu mbalimbali na jaribu kujichanganya na watu wanaojua ili pale utakapo shindwa waweze kukusaidia, hii ina maana ya kuwa mwalimu anakupa vitu vya muhimu tu ila kwa vitu vya ziada ni juhudi yako wewe kuweza kuvitafuta, kwa kulijua hili nitakuwa nikitoa maswali kila baada ya somo ili uweze kujipima mwenyewe uelewa wako juu ya kile ulichokisoma....Asanteni.
                                                                                                                      ............endelele

                                           PROGRAMMING ERROR(BUG):


       Sheria ni kanuni zilizowekwa katika sehemu fulani ambazo zina muelekeza mtu kufanya jambo fulani au kutolifaya kabisa jambo hilo. kila kitu kina kanuni na utaratibu wake, pale tu sheria hizi zisipofatwa zinaweza kusababisha athari/madhara kwa mtu aliyevunja sheria au kwa watu wengine wasiohusika katika kuvunja sheria na hata kwa kitu kilicho wekewa sheria hizo.

Hivyo hivyo katika programing kuna sheria zake ambapo sheria hizi zisipofatwa zinawez kusababisha error na kupelekea kazi iliyokusudiwa kutofanya vizuri.
           ERROR: ni neno linalotumika kuelezea tatizo lolote lililotokea bila kutarajia ambapo tatizo hilo hupelekea computer au program kutofanya au kufanya kazi kinyume na iliyokusudiwa.

                                              Aina za programming errors:


       Syntax error: haya ni makosa yanayotokea pale tu programmer anapokuwa hajafata sheria za lugha husika ( lugha ziliyokusudiwa hapa ni high level languages kama vile python,java,c++, n.k), mara nyingi husababishwa na kuacha au kuzidisha vitu kama alama mfano ; , . : / " n.k , kuacha au kuzidisha maneno mfano printy badala ya print, au kuandika herufi kubwa au ndogo sehemu isiyohusika  mfano katika java ukiandika Println  utapata error badala yake andika kwa herufi ndogo println n.k.. Kumbuka kuwa wakati wa kurun program yako ili uitumie au kuona output ni lazima iweze kaguliwa na transilator, na pindi transilator akigundua kuwa program ina syntax error basi atakutaarifu kuwa program yako ina makosa na hapo ni lazima uweze kuondoa hayo makosa ili uendelee na process ya kuitumia program hiyo, bila ya kuondoa syntax error basi program haiwezi kufanya kazi kama kama ulivyotarajia.

       Logic error: ni aina ya makosa ambayo hutokea pale tu programmer ataweka maelezo au command ( maamrisho) ambayo kimaantiki hayapo sawa. Mfano wewe ni programmer umeambiwa utengeneze program ambayo itajumlisha mshahara wa Djmuba na Snoker (wafanyakazi) na kupata jumla yao sasa wewe ukaja kuandika manyago haya

x=eval(input("Enter the salary of Djmuba: "))

y=eval(input("Enter the salary of Snoker: "))
sum=x-y
print(sum)

Hapo ina maana kuwa kama mshahara wa Djmuba ni Tsh1,000,000 na mshahara wa Snoker ni Tsh 850,000 jumla yake itakuwa ni Tsh 1,850,000, ila katika hiyo program hatuwezi kupata Tsh 1,850,000 badala yake tutapata Tsh 15,0000, hii ina maana gani, katika line ya kwanza mtumiaji(user) ataambiwa aweke mshahara wa Djmuba ambao  ni Tsh1,000,000 na katika line ya pili user ataambiwa aweke mshahara wa Snoker ambao ni Tsh850,000 katika line ya tatu program itafanya process iliyoambiwa ifanye, ambayo ni kutoa(-), sum=  Tsh1,000,000 - Tsh 1,850,000 na katika line ya nne computer itaambiwa ionyeshe thamani ya sum iliyopatikana katika process ya tatu na jawabu lake litakuwa ni Tsh 15,0000 ambayo kimaantiki siyo sahihi. Badala yake program yetuingetakiwa kuwa hivi

x=eval(input("Enter the salary of Djmuba: "))
y=eval(input("Enter the salary of Snoker: "))
sum=x+y
print(sum)

Jambo la kuzingatia ni kuwa program haiwezi kufanya kazi kama kuna syntax error, ila program itafanya kazi kama kuna logic error, ila tatizo litakuwa  pale tu tutakapokuwa tunapata majibu ambayo kimaantiki( kifikra/kimawazo) yatakuwa sio sahihi.

       Running time error: hii ni aina ya makosa ambayo hutokea pale tu utakapokuwa una run program yako. program itataka kurun ila haitoweza kufikia malengo kutokana na vitu vilivyokuwa juu ya uwezo wake, mfano ni pale unapotaka kuinstall program yako ila inashindwa kutokana na kiwango kidogo cha memory katika kifaa chako, mfano mwingine ni pale utakapokuwa unajaribu kugawanya namba kwa sifuri( divide by ziro). Mambo haya hayawezi kusababisha process ya translation isifanyike, vile vile katika hali ya kawaida running time error inaweza kusababishwa na vitu kama vile ukosefu au uwepo wa baadhi ya programs kama vile surporting softwares katika kifaa chako, na hata malicious software ( software zinzoweza kushambulia na kuharibu software nyingine) n.k
                                                     
                                    Transilator( kitafsiriji/mkalimani):

       Katika darasa lililopita nilijaribu kuzungumzia aina za lugha za computer na tukazungumzia kuhusu low level language ambapo tuliona kuna machine language na assembly language. Program iliyoandikwa kwa high level language inajulikana kama source code na baadaye hutafsiriwa/hubadilishwa na transilator na kuwa katika file ambalo huitwa object code

       Source code: ni mkusanyiko wa code ambao umeandikwa kwa high level language na programmer ambao ndio unakuwa na maudhui(content) yote ya program. mfano wa source code ni kama vile

# program for multiplication table

num=int(input("Enter any number which you want to see its multiplication: "))
for x in range(1,13):
    print(num,"*",x,"=",num*x)


huo ni mfano wa source code ambao unazidisha namba ambayo imewekwa na user, kwa hiyo program kama hiyo haiwezi ku run katika computer kwa sababu computer haiwezi kuelewa imeambiwa nini, badala yake source code hubadilishwa na transilator na kuwa katika object code.
       Object code: ni file ambalo lina mkusanyiko wa code zilizobadilishwa kutoka katika source code na kuwa katika mfumo wa binary( lugha ya computer ambayo ni 0 na 1). Source code zikibadilishwa (transilated/converted) zinakuwa katika mfumo huu wa 0 na 1
mfano:


       Transilator: ni software ambayo inatumika kubadili( transilate/convert)  maelezo( instructions) ambayo yameandikwa kutoka lugha moja kwenda nyingine katika mfumo mzima wa computer bila ya kubadili maana au maudhui(contents). Vile vile transilators wanakazi ya kuchunguza (detect) na kutoa taarifa endapo tu watakutana na error(makosa) katika program.
       Compilation: kabla ya kuendelea kuna baadhi ya maneno unatakiwa uyajue, maneno hayo ni compilation na execution, compilation ni kitendo ambacho kinatokana na neno/jina compiler ambapo kwa maana ni kuwa compilation ni kitendo cha kuikagua program yako kama ina makosa ambayo yanafahamika kama syntax error na kukupa taarifa endapo itagundulika kuwa program yako ina makosa na unatakiwa kuyaondoa na kazi nyingine ni kubadili high level language na kuwa machine language, baada ya program yako kubadilishwa na kuwa katika machine language hapo computer inaanza kufanyia kazi kile ilichoambiwa ambapo process hii ndio inayoitwa execution.  
       Executable file: baada ya compuer kufanya exacution katika program, program hiyo ina hifadhiwa kwa ajili ya matumizi ya baadaye ambapo hujulikana ka executable file, mfano wake ni program za window operating system amazo baada ya kuwa executed huhifadhiwa katika format ya .Exe, program za android operating system .Apk, program za macintosh .App n.k

                                                Aina za transilator:


              Interpreter: ni aina ya transilater ambayo hutumika kubadili high level language na kuwa low level language. interpreter hukagua codes mstari kwa mstari, mfano

marks=int(input("Enter your marks: "))
if marks<50:
      print("YOU FAILLED")
else:
      print("YOU PASSED")

huu ni mfano wa program ambayo inatakiwa kutafsiriwa na interprete. na hapa chini ni mfano wa mistari(lines) niliyokusudia.


Line 1.....   marks=int(input("Enter your marks: "))

Line 2.....   if marks<50:
Line 3.....         print("YOU FAILLED")
Line 4.....   else:
Line 5.....         print("YOU PASSED")

Kwahiyo interpreter atakapokuwa ana transilate hii program, atakuwa anakagua mstari baada ya mstari( mstari mmoja moja kuanzia line 1 mpaka line 5) na pindi akikutana na tatizo (error) katika line hawezi kuendelea mpaka tatizo hilo litakapo ondoshwa, mara nyingi sana interpreter hutumiwa wakati wa kutengeneza/kurekebisha programs( development of program) kwa sababu hufanya process ya debugging kuwa nyepesi kwa sababu hukagua program mstari kwa mstari kabla program haijaenda kufanyiwa kazi na computer. Mfano wa high level language zinzotumia interpreter ni kama python, matlab n.k


       Compiller: aina nyingine ya transilater ni compiler ambayo ina kagua(read) high level language na  kuitasfsiri kuwa katika assembly language ikisha hutumwa katika assembler na mwisho hubadilishwa na kuwa machine language , utofauti uliyokuwepo katika compiler na transilator ni kuwa, compiler ana kagua programu yako yote mwisho ndiyo ana kupa majibu, tofauti na interpreter ambaye yeye anakagua program yako mstari kwa mstari na kama atakutana na error basi hawezi kuendelea na mstari mwingine mpaka programmer atakapo ondosha error iliyokuwepo katika line husika, tofauti nyingine ni kuwa compiler baada ya kukagua program program hiyo anaitengenezea file(executeble file) mfano wake ni .exe ambapo file hili lililotengenezwa ndio utalitumia kila wakati bila ya kuwa executed tena ila interpreter hatengenezi file hivyo basi pindi unapotaka ku run program yako kwa wakati mwingine process za mwanzo zinajirudia tena na tena. mfano wa high level language zinazotumia compiler ni kama vile C++,C,Java, C#,


Over view:



  • Interpreter ana kagua program yako mstari kwa mstari na kama atakutana na kosa basi hawezi kuendelea mpaka kosa hilo liondoshwe ila compiler ana kagua program yote baadaye kama kutakuwa na kosa atakupa ujumbe mwisho kuwa katika program hii kuna kosa jaribu kuliondoa kisha jaribu tena.
  • Katika compiler debugging process ni ngumu kufanyika kwa sababu compiler ana toa ujumbe kuwa katika program yako kuna error ila huwezi kujua hiyo error iko line ipi tofauti na interpreter ambayo hutoa ujumbe wa error pale tu inapokutana nayo hivyo ni vyepesi kwako kujua kuwa ni mstari upi una makosa
  • Compiler anahitaji memory kubwa kwa sababu anatengeneza file tofauti na interpreter ambaye huhitaji memory kidogo tu kwa sababu hatengenezi file.
  • Execution process katika compiler ni ya haraka zaidi kwa sababu ya file lililokuwa tayari limekuwa executed tofauti na kwenye interpreter.
  • Compiler huchukua muda mwingi sana kutransilate source code kuwa machine language kwa sababu ana transilate source code kwenda katika compiler kisha ziinabadilishwa na kuwa machine language tofauti na interpreter ambaye huchukua muda kidogo tu kufanya transilation.
       Assembler: ni transilator ambaye ana transilate assembly language na kuoeleka katika object code. Assembly language ni aina ya low level language ambayo imejengwa kwa mnemonics words.
      Mnemonics words: ni maneno ambayo yamefupishwa kutoka katka lugha ambayo hata programmmer anaweza kuyaelewa mfano Adition ina kuwa ADD, Substraction- SUB,Division-DIV, Move- MOV n.k
                                         
                                                                                                          to be continued................        

Maswali:



  1. Ni aina gani ya programming language inayopendwa sana na programmers? toa sababu tano (5)
  2. Katika kusoma kwako kutoka vyanzo mbalimbali, nini maana ya (a) Semantic error (b)Compilation error na ina sababishwa na nini?
  3. Uwepo wa high programming languages umechangia vipi ukuaji wa sayansi na technologia?
  4. Mpaka sasa kuna high level languages nyingi sana, je! kwa uoni wako ni kwanini kuwe na lugha nyingi hivi kwani lugha moja ilikuwa haiwezi kutosha kutengeneza program(s)?
  5. Toa tofauti kati ya   (a) Program na Application (b)Natural language na Programming language  
  6. Kuna tofauti gani kati ya assembly language na machine language?                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Mpaka hapo sina la zaidi, tukutane katika darasa linajalo.............                                             Ulikuwa nami Djmuba, Asante..

10 comments:

  1. Vizur sana kaka ila ungeweka kawa English ingekuwa pow zaidi

    ReplyDelete
    Replies
    1. Totorials kwa lugha ya kingereza zipo kibao sana, ila kuna watu ni ngumu kwao kuelewa, so mtu akipita hapa ni vyepesi kuelewa ili akitaka kujiendeleza ina kuwa ni vypesi kwake.

      Delete
  2. Replies
    1. Haya mafunzo kwa lugha mama ni mazuri sana kwa wale ambao lugha ya kigen haijakolea sawasawa

      Delete
    2. This comment has been removed by the author.

      Delete
  3. Let me a platform we use for programming.

    ReplyDelete
  4. best youtube - videodl.cc
    youtube - youtube converter YouTube | Videosl

    ReplyDelete
  5. Shukran sana broh nimepata mwanga

    ReplyDelete