are functions core concepts in - index-of.co.ukindex-of.co.uk › programming › how to design a...

42

Upload: others

Post on 27-Jun-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Are Functions Core Concepts in - index-of.co.ukindex-of.co.uk › Programming › How to design a computer...Are Functions Core Concepts in Computer Programming? Author:M Mubashar
Page 2: Are Functions Core Concepts in - index-of.co.ukindex-of.co.uk › Programming › How to design a computer...Are Functions Core Concepts in Computer Programming? Author:M Mubashar
Page 3: Are Functions Core Concepts in - index-of.co.ukindex-of.co.uk › Programming › How to design a computer...Are Functions Core Concepts in Computer Programming? Author:M Mubashar

AreFunctionsCoreConceptsinComputerProgramming?Author:MMubashar

Computerprogrammingisaphrasethatisbandiedaboutquiteheavily,butonlyfewpeopleactuallyunderstanditsimplications.Theprocessofcomputerprogrammingitselfisdifficulttounderstandforpeoplewhoarenotinthecomputersciencefield.Computerprogrammingmakesuseofacodeoralanguage:thislanguagecanbeplacedintoseverallinesofcodethatcanbetranslatedtomeandifferentthingsoncetheyareprocessedasaprogram.Forinstance,thesoftwarethatyouusetocalculateyourtaxes,orthesoftwarethatyouemploytomakeyoursimplewebpageareallproductsofskilfulcomputerprogramming.Behindthesesoftwareprogramsarescriptsandcodes,andthesescriptsandcodescanmeandifferentthings.

Formanydifferentprogramminglanguages,afunctioncanbeimportantandcanthereforebeakeyconcepttolearnwhensomeoneisinterestedinsoftwareandcomputerprogramming.Afunctioncanalsobetermedasasubroutine,procedure,orsub-query.Howisafunctionimportant?Forinstance,ifacompanyorinstitutionhasalibraryofmanydifferentprograms,theseprogramscanthereforeconsistofmillionsuponmillionsoflinesofasourcecode.Intheinterestsoftimeandspace,youwouldliketokeepfromduplicatingacertainsourcecodeinmanydifferentplaces.

Whyisduplicationsoundesirable?Ifasourcecodeisduplicatedinmanydifferentplaces,itisbeingneedlesslycopied,anditcanspellHellfortheprogrammerandtroubleshooterwhenthingsgowrongdowntheline.Ifthesourcecodeisactuallyerroneous,theprogrammerortroubleshooterwillhavetocorrectthecodeinallthedifferentplacesthatitappears.Ifthesourcecodehastobeupdatedorimprovedinordertomaketheprogrameitherrunfasterorperformmoreoperations,thenthesourcecodehastobemodified,improved,andupdatedinalltheplacesthatitappears.Andifthesourcecodehastoberemovedandreplacedwithanewsourcecode,thenithastobeerasedandreplacedwiththenewcodeineverysingleplacethatitappears.

Thisisindeedtime-consuming,anditcanleadtomoreerrorsbecauseofallthehumaninterventionthathastobedone.Ontheotherhand,iftherearefunctionsthatarebuilttohandleallthedifferentprograms,thenonlyoneorafewchangesneedtobemadeshouldtherebeerrors,orshouldthesourcecodehavetobeupdated,modified,improved,orchanged.Youcanthinkofthefunctionasanumbrella:itcoversallofmanydifferentprogramsbeneathit,sothatyoudonothavetocovereachprogramindividually.Havingasinglesourcecodeservingasthefunctionisalsoadvantageouswhenyouhavetointroduceanewprogramthatstillmakesuseofthatsamesourcecode.Becausethesourcecodeisalreadyavailableasanoverallfunctionorsub-program,youdonotneedtoaddthesourcecodetothenewprogram.Youonlyneedtofindawayforthenewprogramtointeractwiththesourcecodeitself.

Theseareonlyafewfactsthatyouneedtoknowaboutfunctionsincomputer

Page 4: Are Functions Core Concepts in - index-of.co.ukindex-of.co.uk › Programming › How to design a computer...Are Functions Core Concepts in Computer Programming? Author:M Mubashar

programming.Formoreinformation,readuponthelatestcomputerprograms,howdifferentprogramscaninteractwitheachotherusingsomeumbrellaoroverallscripts,andhowdifferentprogramscanbeimprovedwhenusingfunctions.

Page 5: Are Functions Core Concepts in - index-of.co.ukindex-of.co.uk › Programming › How to design a computer...Are Functions Core Concepts in Computer Programming? Author:M Mubashar

BASIC:AComputerProgrammingLanguage

Computerprogramminghasitsownlanguage,andthat’sjustthebeginningofthesoftwareadventure.Therearemanydifferentlanguagesincomputerprogramming,andallofthemhavetheirownpurposes.Inordertounderstandtheimportanceofcomputerprogramminglanguages,knowingthem,andtweakingthem,onehastounderstandtheimportanceofcomputerprogramming.Computerprogrammingproducessoftwarepackages,amongotherthings,tomeetourneeds.Wemayneedsoftwareforaccounting,makingphotosbiggerorsmaller,oreditingourhomevideos.Behindallthesesoftwarepackagesarethecomputerprogrammerswhousetheirindividuallanguagesinordertocreatethesoftware.

OnesuchcomputerprogramminglanguageistheBeginner’sAll-PurposeSymbolicInstructionCode,orBASIC.BASICisactuallycomposedofmanydifferentkindsofprogramminglanguagesthatareactuallyhigherlevelthanmostotherlanguages.ThisBASICfamilyofcomputerprogramminglanguageswasfirstdesignedinthe1960’s,andwasoriginallymadefornon-sciencepeopletogainbetteraccesstocomputers.Duringthattime,usingacomputerrequiredthatapersonwritecustomizedsoftware,ataskthatonlymathematiciansandscientistswereequippedtodo.TheBASIClanguagewasthereforeabridgeforpeopleofotherprofessionstotakeadvantageofthepowerofcomputers.

Whenthe1970’scame,theBASIClanguage,whetherinitsoriginalformoravariantofit,spreadontomicrocomputers;andbythe1980’s,evenhomecomputerscouldberuninBASIC.Today,BASICremainspopular,asitservesasthebasisformanyofthemoremodernprogramminglanguagesthathavebeendevelopedinthewakeofadvancedoperatingsystemsandtheInternet.

Whenitwasoriginallyconceived,BASICwasmeantforbeginners:itwasalanguagethatpeoplecoulduseeasily,whetherornottheywereeducatedinmathematicsandthesciences.Thelanguagealsohadtobeageneralpurposeone,inthatithadtoservemanydifferentneeds,andnotonlythosethatmathematiciansandscientistsrequired.TherootlanguageofBASICalsohadtoallowforadvancedfeaturestobepluggedonasexpertsgrewmoreandmoreadeptinit,andasthelanguagefoundfurtheruseinmanyotherfields.BASICwasalsomeanttobeinteractive,andwasdesignedtoshowerrormessagesthatwereclearandfriendly;thatis,theseerrormessageshadtocompletelyexplainwhattheproblemwas,whichwouldhopefullyallowtheusertofixitfasterandeasier.

Whenitwasfirstreleased,moreover,BASICwasfreeofcharge,whichallowedthelanguagetospreadmuchfaster.Oncethelanguagespreadmuchfaster,itwasalsoeasytomodifyitandcorrecterrors.BASICwasalsodistributedtoafewhighschoolsinordertopromoteitfaster.Thankstothiswidespreaduseofthelanguage,BASICwassoonimplementedonseveralmicrocomputers,andbyseveralsoftwaremanufacturers.

Despiteitssuccess,BASIChashaditsdissenters.Forinstance,someprogrammersfindthatitsscriptsdonotshowproperprogrammingpractices,andthelanguageitselfistooslow,orsometimeseventoosimple.Despiteallthese,however,BASIChascontinuedtothrive,succeed,andevolve,andhasthusbecomeagoodtooltointroducebeginnerprogrammerstotheconceptofcodingandcomputerprogramming.

TheseareonlyafewfactsabouttheBASIClanguage.FormoreinformationonBASIC,

Page 6: Are Functions Core Concepts in - index-of.co.ukindex-of.co.uk › Programming › How to design a computer...Are Functions Core Concepts in Computer Programming? Author:M Mubashar

readanddoyourownresearchthroughseveralkeypagesonline,orusingcomputerprogrammingbooks.

Page 7: Are Functions Core Concepts in - index-of.co.ukindex-of.co.uk › Programming › How to design a computer...Are Functions Core Concepts in Computer Programming? Author:M Mubashar

TraininginMacromedia

TheMacromediafamilyofsoftwaremightbesomethingthatistakenforgrantedbypeoplewhohaveusedthedifferentkindsofsoftwareinitalot.BypoppingtheMacromediadiskintotheCD-ROMdrive,everyone,fromatoddlertoacomputerprogrammer,candoalotofthingswithhisorhercomputer.However,forthosewhoareinterestedinworkingwithsuchsoftware,computerprogrammingandtraininginMacromediaisneeded.

TherearemanykindsofsoftwareintheMacromediafamily.Forinstance,ifyouareinterestedindevelopingcomputersoftware,andifyouarelookingforawaytomakeadynamicwebsite,thenyoumayneedAdobeColdFusion,whichworksliketheASPpackageofMicrosoft,ortheprogramminglanguagePHP.Ifyouarehopingtocutdownonwebsitedesign,development,andeditingtime,thenyoumayalsobeinterestedinAdobeContribute,whichallowsdifferentmembersofanorganizationtocontributetothechangesmadeinawebsite,thereforesavingtimeandmoneyinhiringasinglepersonorateamtomakethechangesinthesite.Ifyouwanttodowebsitedesignbutwanttoseeyourresultsimmediatelyinsteadofploddingthroughoceansandoceansofscript,thenyoumaybeinterestedinAdobeDreamweaver.ThispopularmemberoftheMacromediafamilymaynotrequireprogrammingskills,butitcanhelpsoftwareprogrammersunderstandwhatcertainscriptsdoandhowthesescriptsbehaveonline.

Forthoseinterestedinonlinelearningsolutions,thereisMacromediaAuthorware,whichisaprogramminglanguagethatisbasedonflowcharts.Authorwareisusedformakingprogramsthatareinteractive,andthatcanbeintegratedintovarioustypesofmultimediacontent.AlsoindemandisAdobeDirector,whichwasoriginallycreatedformakinganimation.Today,AdobeDirectorisusedasascriptinglanguageforcreatingastandalonekiosk,orCD-ROMS.Itisalsobeingusedfordevelopingonlinethree-dimensionalgames.

TheMacromediafamilyalsohasitsowngraphicseditorinthepersonofAdobeFireworks.TheFireworksprogramisthegraphicseditorthatisdesignedtointegratewithotherMacromediaproducts.AnothergraphicsprogramistheFreeHandpackage,whichcreatesvectorgraphicsintwo-dimensions,andisdesignedfortheuseofdesktoppublishers.

WhatisundoubtedlythemostpopularpackageintheMacromediafamilyistheFlashandShockwavegroup.MacromediaShockwaveplayersaremultimediaplayersthatwereoriginallydesignedasindependentpackages,andthatweremadetoplayFlashprograms.Today,however,thetwoareintegratedheavilywitheachother;Flashitselfisahighlypowerfultoolforwebsitedesignerswhowanttocreatemoredynamicandattractivewebsitesthatthriveheavilyonanimation.Despitethe“eyecandy”feelofFlash,however,mostwebsitedesignersstayawayfromitanddotheirownscripting,sinceFlashanimationcannotbepickedupbysearchengines,andcanthuslimittheamountofreadablecontentthatcanhelpawebsitebemorepopular.

IfyouareinterestedintraininginMacromedia,youalsohavetobeawarethatmostofthepackagespresentedarealreadyundertheAdobeumbrella.Moreover,youmayneedto

Page 8: Are Functions Core Concepts in - index-of.co.ukindex-of.co.uk › Programming › How to design a computer...Are Functions Core Concepts in Computer Programming? Author:M Mubashar

honeyourcomputerprogrammingskillswellenoughtobeabletorunMacromediaapplicationsandusethemforyourwork.NotonlyisMacromediaallaboutpoppingsomethingintoyourCD-ROMdrive,itisaboutcomputerprogrammingusedwell,inordertoserveawidervarietyofpurposes.

Page 9: Are Functions Core Concepts in - index-of.co.ukindex-of.co.uk › Programming › How to design a computer...Are Functions Core Concepts in Computer Programming? Author:M Mubashar

TheDifferentSidesofComputerGameProgramming

Manypeoplewillplaycomputergameswithoutanyknowledgeofhowmuchworkwentintothegame.True,alotofthoughtandcreativityhadtobeemployedinordertomakethegamework,butthegamealsorequiredagooddealofcomputerprogrammingandknowledgeofdifferentcomputerprogramminglanguagesinordertomakethegamenotonlyfeelreal,butlookattractiveaswell.Therearemanysidesofcomputergameprogramming,soifyouareinterestedincomputergameprogrammingandmaywanttotakeupcoursesinthefuture,takealookatthislist.

Thegamephysicsprogrammerissomeonewhodirectshowagameusesphysicsinordertolookcorrectandfeelcorrect.Inmostcases,acomputergamewillnotcompletelysimulatethephysicsofarealworld,butsomeimportantaspectsofphysicsmayhavetocomeintoplayforsomegames.Forinstance,windresistancemightbeimportanttodogfights,whilethefluidbutretardedmovementsofsomecharactersinwatermightbeneededforarole-playinggame.

Theartificialintelligenceprogrammeristheoneinchargeofdevelopingthelogicalsequenceofthegameitself.Forinstance,whenagameinvolvesfindingapath,employingstrategies,orgivingrisetoenemytactics,anartificialintelligenceprogrammermaybecalledintomakeagamesmart–inotherwords,tomakethegamethinkonitsown.Ingeneral,thecomputerlanguageusedforartificialintelligenceprogrammingissimplerthanotherlanguages,anditcanbesharedwiththegame’splayers.

Thegraphicsprogrammerusesaseriesofcodesandalgorithmsinordertoprovidegraphicsintheworldofthegame.Inthemodernage,agraphicsprogrammerhastoworkinathree-dimensionalenvironment,andshouldthereforehaveknowledgeofcalculus,vectormath,andotheralgebraconceptsthatmaybeneededforspecializinginrenderingsuchimages.Thereareonlyveryfewgraphicsprogrammers,andtheymayusuallydemandhighwagesfortheirwork.

Asoundprogrammerwillprovidesoundsintermsofcharacters’dialogues,music,andevensoundsthatcanmakethegameseemmorereal,suchasthesoundofcrunchingleavesorgrassascharacterswalkonthem.Thegameplayprogrammerwilladdtotheexperienceofthegame,andwilldosobyfocusingonthegame’sfeelandstrategy.

Computergameprogrammingwillalsorequireateamofscripters,whoarealsousuallythedesignersofthegame.Thesescripterswritethecodeofthegameitself,usuallywithabasiccomputerlanguage.Alsoneededareuserinterfaceprogrammers,ortheUI:theUIprogrammerswillcreatealibraryofdifferentaspectsthatcanbeusedacrossawidevarietyofworldswithinthegame,orawidevarietyofgameswithinamanufacturer.TheUIprogramminglanguageinvolvesagooddealofmath,withtheaimofproducingspecialeffects.

Alsoimportantisaninputprogrammer,whowritescodesforhowdifferentkindsofhardware,suchasthekeyboard,joystick,ormouse,willaffectthegame.Thenetworkprogrammerwillfindwaysforthegametoworkonanetwork,wherepeoplecanplayagainsteachother.Aportingprogrammerensuresthatthegamecanworkondifferentplatformsandoperatingsystems.

Page 10: Are Functions Core Concepts in - index-of.co.ukindex-of.co.uk › Programming › How to design a computer...Are Functions Core Concepts in Computer Programming? Author:M Mubashar

Overseeingallthesetasksistheleadgameprogrammer.Theseareonlyafewaspectsofcomputergameprogramming.Asthefieldwidens,moreandmoreprogrammersofdifferentkindswillhavetobecalledinandidentifiedasimportant.

Page 11: Are Functions Core Concepts in - index-of.co.ukindex-of.co.uk › Programming › How to design a computer...Are Functions Core Concepts in Computer Programming? Author:M Mubashar

WhatYouShouldKnowAboutaComputerProgrammingCareer

Computerprogrammingisoneofthemostimportantandexcitingcareerstoday.Itisalsoafieldthatoffersplentyofjobopportunitiesforgraduates.It’soneofthebestfieldsofendeavorforpeoplewholovetechnologyandarewillingtotryoutnewthings.Ifyou’reconsideringpursuingacomputerprogrammingcareer,herearesomethingsthatyoushouldknow:

Whatiscomputerprogramming?Computerprogrammingisbasicallytheprocessofwritingcodestocreateacomputerprogram.Aprogramminglanguageisusedtowritethiscode,alsoknownasthesourcecode.Computerprogrammingisactuallyanumbrellatermthatencompassesalltypesofprogramminginvolvingtheuseofcomputers.Thedesignandmethodutilizedtowriteasourcecodewilldependonthetypeofcomputerlanguageusedforthejob.SomeofthemostcommoncomputerlanguagesincludeBASIC,COBOL,FORTRAN,C++,Java,VisualBasic,PythonandPHP.

Thejobofcomputerprogrammingalsoincludestestingthesourcecode,debuggingittocheckforflawsandweaknessesandmaintainingittoensureoptimumperformance.

CreatingthecodeThesoulofcomputerprogrammingisthecreationofthesourcecode,whichcaneitherbebrandneworsomethingcreatedtomodifyorimproveuponanalreadyexistingcode.Theobjectofthesourcecodeistobuildaprogramthatwillperformaparticularseriesoftasksbasedonaspecificsetofcommands.Thisiscalledcustomization.

Theendresultofwritingthesourcecodeisacomputerprogram.Insoftwareengineering,computerprogrammingisanimportantinitialphase.

Whatdoesacomputerprogrammerdo?Themainjobofacomputerprogrammeristowritethecodesthatserveasthefoundationofsoftwareprograms.Heisalsotaskedtotest,troubleshoot,debugandmaintaintheprogramtoensureitsqualityandreliability.Generally,thetasksthatacomputerprogrammermustperformareassignedbyanotherperson,usuallythesystemanalyst.Thecomputerprogrammer’sjobisthentowritetheprogram,testit,modifyitifnecessaryandensurethatitpassescompatibilityandqualitystandards.Iferrorsarefound,itisthecomputerprogrammer’sjobtoensurethattheyarecorrected.

Thejobofacomputerprogrammerusuallyrequireshoursuponhoursspentinfrontofacomputertodesignandwriteacomputerprogram.Dependingonthetypeofprogrambeingwritten,itspurposeandthecomplexityofthecommandsrequiredinorderforacomputertoexecutetheseriesofstepsinvolved,writingaprogramcantakeseveralmonthstoseveralyearstocomplete.

Thelengthoftimeitoftentakesforaprogramtobecompletedoftennecessitateshavingasingleprogrambrokendownintoasmallerseriesofsteps.Thesestepswillthenbeassignedastaskstoagroupofprogrammerswhowillworkonthemindependently.The

Page 12: Are Functions Core Concepts in - index-of.co.ukindex-of.co.uk › Programming › How to design a computer...Are Functions Core Concepts in Computer Programming? Author:M Mubashar

finalstepistoputtheendresultsandproduceonecoherentandusefulcomputerprogram.

Computerprogrammingisaverydynamicfieldandinvolvesplentyofimaginationanddiscipline.Althoughtherearesetstandardsforthetasksinvolved,theprofessionitselfdoesnotrequirecertificationtestsfromgovernmentagencies.Therearealsonostateandfederallicensestoobtain.

Howmuchdoesacomputerprogrammingjobpay?Thatwilldependontheexperienceandlevelofexpertiseoftheprogrammer.Mostentrylevelprogrammersearnaminimumofabout$33,000ayearwhilemid-levelprogrammersearnapproximately$50,000ayear.Forseniorlevelprogrammersandthosewhohaveseveralyearsofexperiencebehindthem,theirtypicaltake-homepayaveragesatabout$65,000ayear.Consultants,somemanagersandthosewhohaveadvancedwellintheircomputerprogrammingcareerareoftenpaidmore.

Page 13: Are Functions Core Concepts in - index-of.co.ukindex-of.co.uk › Programming › How to design a computer...Are Functions Core Concepts in Computer Programming? Author:M Mubashar

WhatYouNeedtoKnowAboutaComputerProgrammingCourse

Computerprogrammingmayseemlikeahighlycomplicateddisciplinebutatitsroots,everyprogramactuallybeginsasasimplesetofinstructions.Computerprogrammingisessentiallythedesignofasimpleprograminordertocreateamorecomplicatedprogram.Itiscurrentlyoneofthemostsought-aftercoursesandisalsoacareerthatpresentsplentyofopportunitiesinaveryexcitingfield.Ifyou’recuriousaboutwhattakingacomputerprogrammingcoursewillbelike,herearesomeimportantinformationyoucanuse.

ThecourseComputerprogrammingisoneofthedisciplinesundercomputerscience.Itrequiresstudyandpracticalapplicationoftheoriesandconcepts.Simplyput,computerprogrammingistheprocessofwritingandcreatingagroupofinstructionsthatacomputercanreadandexecute.

Computerprogrammingisnotasingle,one-size-fits-alldiscipline.Forone,thetaskofprogramming(orcoding)involvesseveralcomputerlanguages.Theselanguageshavedifferentusesandassuch,willoftenrequireadifferentsetofinstructions.JavaScript,forexample,maybeacomputerlanguagebutitisnotthesameasHTMLorCOBOLorVisualBasic.Therearealsocertainsub-disciplinesincomputerprogrammingthatleadtoaspecificfieldofspecialization.Studentsmustdeterminewhichfieldofcomputerprogrammingtheywanttofocuson.Iftheywanttoworkforcompaniesthatcreatevideogames,forexample,theywillhavetochoosecoursesthatteachgraphicsandanimation,amongothers.

Inthecourseofstudyincomputerprogramming,aprogrammermustbeabletolearnmultipleconceptsandtheoriesontopofthetechnicalstuff,suchascomputerlanguageconventions,elementsandimportantoperatorsusedtocreateasourcecodethatwilllaterproduceacomputerprogram.

Computerprogrammingisanessentialphaseinthedevelopmentofsoftwareandisanintegralpartofsoftwareengineering.

HowlearningisobtainedTherearetwomajorwayscomputerprogrammingcanbelearned–throughclassroomtypeinstructionoronline,aspartofadistancelearningprogram.Classroomtypeinstructionisstillthemostcommonwayofattendingclassesforstudentsbutonlineclassesarefastbecomingthemethodofchoice.

WhattoexpectfromthecourseAcomputerprogrammingcourseisusuallycomposedoflecturesandhands-onassignments.Theinstructoruseslecturestoteachtheoriesandconceptsinprogrammingandtoprovidestudentswithanintroductiontothediscipline.Generally,studentswillbelisteningtolectureswhileusingcomputers,awayforinstructorstoallowparticipantstoimmediatelyapplywhattheyhavelearned.

Otherthanaccesstoacomputer,studentsmayalsoberequiredtoobtaintextbookstobeusedasreferencesduringcoursework.Somelessons,suchasthoseusedinonlineclasses,mayalsobedownloadedfromawebsite.

Page 14: Are Functions Core Concepts in - index-of.co.ukindex-of.co.uk › Programming › How to design a computer...Are Functions Core Concepts in Computer Programming? Author:M Mubashar

WhoshouldtakethecourseComputerprogrammingisnotforeveryone.Justbecauseyoulovecomputersandhavesufficientcuriosityabouthowtheyworkdoesn’talwaysmakeyoutheidealcandidateforthiscourse.Computerprogrammingrequiresalotofpatience,attentiontodetail,creativity,logicandcommonsense.Italsorequirescarefulstudyandunderstandingofcertainsubjectssuchasmathematicalandengineeringconcepts.

WhattoexpectuponcompletionofthecourseOnceacoursehasbeencompleted,acomputerprogrammerisreadytobehiredforentry-leveljobsincompaniesthatdesignsoftware.Iftheprogrammerchoosesahigherlevelofstudy,hecanalsoincreasethechancesofbeinghiredforhigherpay,particularlyifhechoosesafieldofspecialization.Acomputerprogrammingcoursecanprovideagraduateaccesstodifferentfieldsaswell,includingbanking,finance,research&developmentanddatabaseadministration.

Page 15: Are Functions Core Concepts in - index-of.co.ukindex-of.co.uk › Programming › How to design a computer...Are Functions Core Concepts in Computer Programming? Author:M Mubashar

ComputerProgrammingCoursesinNewYorkCity

AlthoughNewYorkCityismorefamousforitsmuseums,parks,theatersandbusinesses,itisalsoagreatlocationforschoolsofferingcomputerprogrammingcourses.NewYorkhasalwaysbeenpioneeringinmanywaysanditoffersplentyofopportunitiesforhighlyin-demandcoursesrelatedtocomputerscience.HerearesomeresourcesthatcanhelpyoulookforcomputerprogrammingcoursesinNewYorkCity:

NewYorkUniversityNYUisarecognizedleaderinthefieldofeducationandisacknowledgedasoneofthetopuniversitiesintheU.S.Itisanexcellentinstitutionformanyfieldsofstudyinacademiabutitalsohasasolidcurriculumofferingcoursesincomputerprogramming.

Tofindoutaboutthetypeofcoursestheschooloffers,gototheirwebsite(www.cs.nyu.edu)andlookfortheircurrentcourselist.Thelinkwillbringyoutotheircomputersciencedepartmentpage.Thecourselistwilloutlinethecoursesofferedforaparticularsemestersoyouwillhaveanideaofwhichcoursetotake.

Computer-SchoolsComputer-Schools.usisawebsitethatlistsschoolsanywhereintheUnitedStates.Thesiteletsyoulookforthephysicallocationsofschoolsorifyouprefer,youcansearchforschoolsofferingonlinecourses.Thesitelistsagoodnumberofcomputerprogrammingschoolsyoucancheckout.Tolookforcourses,youcanclickonthelinksformoredetailedinformation.

Education-PortalEducation-Portal.comisanotherwebsitethatlistsschoolsinNewYorkofferingcoursesincomputerprogramming.Youcanclickonthelinktotheschoolstofindmoreinformationaboutspecificsubjectsandcoursesyoumightbeinterestedin.Thesitealsooffersinformationaboutschoolsofferingcomputerprogrammingcoursesthatleadtocertification,perfectifyouwanttobuildaseriouscareerinthisfield.NewYorkInstituteofTechnologyTheNYITinOldWestburyofferscoursesincomputerprogramming.Youcancheckouttheirsite(www.nyit.edu)orsendane-mailtoinquireaboutadmissionsrequirementsatadmissions@nyit.edu.

FutureKidsFutureKidsisanexcellentproviderofcoursesincomputerprogramming,especiallyforyoungerparticipants.SomeoftheirofferingsincludeC/C++,HTML,XHTML,VisualBasicandComputerGraphics,amongothers.Ifyouwantchildrentodevelopanearlyinterestinacareerinvolvingcomputers,thisisagoodplacetostart.

ColumbiaUniversityColumbiaUniversity’sDepartmentofComputerScienceisanexcellentsourceforinformationaboutcomputerprogrammingcourses.Italsoofferscoursesinrelatedfieldssuchassoftwareengineering,networkingandwebdevelopment.

BerkeleyCollegeBerkeleyhasaNewYorkCitycampuswhichofferssomeexcellentcoursesincomputerprogramming.Youcancheckouttheirsiteatwww.berkeleycollege.eduorsendthemane-

Page 16: Are Functions Core Concepts in - index-of.co.ukindex-of.co.uk › Programming › How to design a computer...Are Functions Core Concepts in Computer Programming? Author:M Mubashar

[email protected],softwareengineeringandnetworking.

NetComInformationTechnologyNetComInfohasawiderangeofchoicesforcomputerprogrammingcourses.ItiscurrentlyrecognizedasatoptrainingcenterinNewYork.Itoffersover250computer-relatedcoursesandabout40certificationprograms.ThecenterisapartnertoseveralITcompaniesandhaskeyrelationshipswithmanylargecorporations.ItisalsoanauthorizedprovideroftrainingbycompaniessuchasMicrosoft,IBM,Oracle,LinuxandNovell,amongothers.

NetComisoneofthebestplacestoobtaincomputerprogrammingcoursesinNewYorkCity.Ifthetypeandqualityofcomputerprogrammingcoursesfromthiscenterdoesnotattractyou,itsaddresswill–it’slocatedatthe7thflooroftheEmpireStateBuilding.

Page 17: Are Functions Core Concepts in - index-of.co.ukindex-of.co.uk › Programming › How to design a computer...Are Functions Core Concepts in Computer Programming? Author:M Mubashar

ComputerProgrammingFundamentalsYouShouldKnow

uick!Canyoutellmehowtoprepareabowlofcerealswithmilk?Toosimple,right?Youcanprobablygivemeaseriesofno-brainerinstructionsthatIcanperforminlessthanaminute.Nowtrytellingacomputertodojustthat.Whatbeganasasimpletaskhasnowbecomecomplicated.It’snotjustamatterofdumpingacupofcerealsinabowlandpouringmilkin.Withcomputers,it’ssomuchmorethanthat.Soundsexciting?Itshouldbe.Becausethat’swhatyou’llexpectonceyoubeginlearningcomputerprogrammingfundamentals.ThebasicsComputerprogrammingisawholenewworldofpossibilities.Believeitornot,programmingactuallybeganinthe1200s,whensimplemachinesweredesignedtoexecutesimplemechanicaltasks.Ithasgrownbothasanartandasasciencesincethen,providinguswiththetechnologiesthathavemademanyaspectsofourliveseasierandfaster.

Onceyoustartlearningcomputerprogramming,someofthebasicstuffyou’llencounterinclude:

-ThebasicunderstandingofthedisciplineYou’llneedagoodbackgroundinthefieldinorderforyoutounderstandhowitreallyworks.Withasolidfoundationbuiltonknowingthebasicsofcomputerprogramming,itwillbeeasiertocomprehenditsdetails,includingprocedures,stepsandotherinstructions.

-UnderstandingthetypesofprogrammingEssentially,therearetwobasictypesofprogramming,eachofwhichhasitsownusesandsetofadvantagesandlimitations.Proceduralprogramming,whileolder,isquiteusefulparticularlybecauseitisamuchsimplerwaytotellacomputerwhattodo.Itisalsotheheartandsoulofmanycomputerlanguages.Basically,it’saninput-outputoperation,whereauserorprogrammerinputsasetofinstructionsandacomputerreactstoitbyexecutingthoseinstructions.Learningproceduralprogramminghelpsnewprogrammersunderstandelementssuchassequence,selectionanditeration.

Theothertypeofprogrammingisobject-oriented,whichisrelativelynewer.Thistypeofprogrammingtreatsinstructionsasasetofobjects,somethingthatismoreconvenientinmanyoftheprogramsthatareinusetoday.Withobject-orientedprogramming,you’lllearnanobject’sproperties,eventhandlersandmethods.

You’lllearnbothtypesofprogrammingaspartofafundamentalorbasiccourse.Thesewillhelpyouunderstandhowtodesigncodesthatareeasyforacomputertounderstandandeffectiveenoughtoexecute.Usingthecerealandmilkanalogy,forexample,youwillbeabletowriteacodethatwilltellacomputerhowtopourtherightamountofcerealintoabowlandhowmuchmilktouse,inthatorder.Andifyou’retrulygood,youcaneventellthecomputerwhatspecifictypeofcerealandmilktouse.

-UnderstandingthenatureofthecodeAnotherimportantbasicknowledgeyoumustlearninprogrammingisunderstandingcodes.Whiletheirfunctionsaregenerallythesame–thatis,topoweracomputerprogram–codesdifferindesignandusedependingonthelanguage.Codesareattheheartofa

Page 18: Are Functions Core Concepts in - index-of.co.ukindex-of.co.uk › Programming › How to design a computer...Are Functions Core Concepts in Computer Programming? Author:M Mubashar

computerprogramandwillbeoneofthebasicsyouwilllearninprogramming.-Learningproblem-solving

Muchofyourtimeasafirst-timecomputerprogrammerwillbespentporingoverproblems–howtocreateasourcecodeforadesiredendresult,howtofixabug,howtosolveaglitch,howtoputthingstogetherorinsequencesotheywork.You’lllearnhowtolookataproblem,breakitdowntoitssolvablecomponentsandcomeupwithwaystosolveit.

-Thinkinglogically.Ifyou’renotafanofmathematicsandlogic,you’llbedismayedtoknowthatmanyofthecomputerprogrammingfundamentalsyou’llbelearningwillrequireyoutothinkinnumbers,figuresandsequences.However,thesebasicsareeasytolearn,providedyouhavethepatiencetofollowtherightsteps.Onceyou’vetrainedyourmindtothinklikethis,you’rewellonyourwaytoagreatcareerasacomputerprogrammer.

Page 19: Are Functions Core Concepts in - index-of.co.ukindex-of.co.uk › Programming › How to design a computer...Are Functions Core Concepts in Computer Programming? Author:M Mubashar

OntheWaytoLearningComputerProgrammingInNano

Today’sdigitaltechnologygivesbirthtoahostofprogramminglanguages.Andthereareseveralprogramminglanguagesbeingusedindifferentapplicationssuchastheweb,Windows,Apple,andUnix.Andrightnow,computerprogramminginNanoisoneofthenewestdevelopments.

ItwasbelievedthataNanomechanicalcomputercouldrunamilliontimesfasterthanamicroprocessor-basedcomputer.Thisisbecausethatoneoutofthemillioncomponentsofacomputerismadeofmechanicalspace.Therefore,ifaprogramminglanguageispatternedonthemechanicalspaceacomputerhas,itwillfollowthatthecomputerwillworkfaster.

Butthenagain,engineerswouldhavetocreateanentirelynewlineofcomputersystems.ComputersthataremoreenergyefficientandconsumerslesserspaceistheonesthatwouldworkwellwithaNanocomputerlanguage.

However,theNanocomputerlanguageisbelievedtoworkwellwiththepresentdaycomputerssystemsaswell.Theprimaryuseofthisprogramminglanguageisongraphics.WiththeNano-Xgraphicssystemyoucouldcreatemuchfanciergraphicalprograms.Tomakeitwork,youhavetospecificallycreatetheprogramwiththeWindows,Unix,orMacintoshinterfaceinmind.

TheNanocomputerlanguageprimarilycamefromthenanotechnology.Nanotechnologyrefersfromthefieldsofappliedsciencethatcontrolmatteronitsmolecularandatomicscale.Thetechnologycanbeusedinmaterialsscience,appliedphysics,andofcourse,computerprogramming.

Japanisoneofthepioneersofnanotechnologyandnanoprogramming.Infact,theyareveryactiveinholdingsymposiumsandconventionsonbothprofessionalnanotechnologiesandaspiringyoungscientists.Theyareconstantlylookingfornewideasandconceptssurroundingthenanotechnologyandtheimprovementsonthenanocomputerlanguage.

Rightnow,theinterestinlearningandimprovingcomputerprogramminginnanoisspreadingtoAsiancountrieslikeVietnam,SouthKorea,andinEurope,France.Thedemandfordifferentapplicationsinnanocomputerprogrammingisincreasing,causingincreasedusersandclientsbase.

Thenanoprogramisbasicallyveryeasytolearnandtoapply.Textscanbetypedimmediatelyintotheinterface.Itisalsoquitesimpletoinserttextintotheprogramwiththeuseofsomeeditingconfiguration.Thereisalsothenanoeditorsoftwarethatyoucanusewiththemainprogrambasesothatsaving,cutting,pasting,andsearchingbecomesfairlystraightforward.

Currently,therearealotofinstructionssoftwareandbasicinstructionalkitsforuseofthosewhowanttolearncomputerprogramminginnano.Sincenanoisbeingoneofthemorepopularlanguagestoday,thissoftwareisbeingappliedinalmostallnewerapplications.

Allprogrammingprofessionalsarechallengedtolearnthisnewtechnology.Withthebasic

Page 20: Are Functions Core Concepts in - index-of.co.ukindex-of.co.uk › Programming › How to design a computer...Are Functions Core Concepts in Computer Programming? Author:M Mubashar

knowledgeyouhaveforcomputerlanguages,learningthenanolanguagewon’tbemuchofatrouble.Thebasicprinciplesoftheprogramresembletheotherwellusedpopularprogramminglanguages.Themorecomplexusesandfunctionsofthenanoprogramminglanguageareuniquefromallothers.Butthatisalwaysapartoflearningawholenewprogramminglanguage.

Learnmoreaboutcomputerprogramminginnanobysearchingrelevantinstructionalwebsitesaswellasfromdifferentofflinesources.Thenanoprogramminglanguageisagoodlanguagetolearnasitisexpectedtoimproveovertime.

Page 21: Are Functions Core Concepts in - index-of.co.ukindex-of.co.uk › Programming › How to design a computer...Are Functions Core Concepts in Computer Programming? Author:M Mubashar

TheNeedForComputerProgrammingLanguageEvolution

Thedigitalworldconstantlychanges.Newtechnologiesareintroducedandnewdevelopmentsintheindustryarebeingmadeknowntothepublic.Therewillalwaysbechangesintechnology.Andtechnologywillconstantlyimprovetohelpcreateabetterworld.

Andoneoftheprimarymoversoftechnologyandthedigitalworldisacomputerprogramminglanguage.Thisisthelanguagespokenandunderstoodbythecomputer.Thecomputerlanguageismachinelanguage.Basically,whatthecomputercanunderstandandprocessarejustabunchofone’sandzero’s.Itisreallyupontheexpertiseoftheprogrammertocreatespecialsoftwarethatcouldbeunderstoodbythecomputerandthehumanuser.

Computerprogrammingsoftwarefollowsacertainlanguagethatcomputersfollow.ExamplesoftheselanguagesaretheAssemblylanguage,C++,FoxPro,VisualBasic,VisualFoxProandseveralothers.Thesetypesofsoftwarecanmediatebetweenthecomputerandtheprogrammer.Alltheprogrammerhastodoistoinputthecommandshewouldlikethecomputertodo.He’llwritethecommandsinthesyntaxthatthecomputerprogramminglanguageunderstands.Thecommandsarethenprocessedandconvertedintothemachinelanguagethecomputerprocessorunderstands.Thisishowthemanyapplicationsandprogramsdownloadablefromtheinternetarecreated.

Differentcomputerprogramminglanguagescanprovidedifferentlevelsoffunctionality.Somesoftwarecangivecrispgraphicalimages.Theseprogramminglanguagesareusuallyusedinmakinggames.Gamesarereallywhatmakecomputershalfpopular.Andthisisallbecauseofthecomputerprogramminglanguagecreatedformakinggamesthatpeoplefromallovertheworldlove.Gamesarecomplexindividualprogramsthatareinterlinkedtogetherbythemaingameapplication.

Asidefromcomputergames,programminglanguagesallowsforthedevelopmentoffunctionalsoftwaresuchaswordprocessingprograms,databaseprograms,webbasedapplications,andseveralothers.Thesoftwareismadepossiblewiththecreationoftheprogramminglanguagesthataremostfittingtothedesignandinterfaceoftheprogrambeingcreated.Therearemanytimesthatasingleapplicationcanbecreatedmultiplelanguageplatforms.

Butthenagain,alloftheseprogramswon’tbepossiblewithoutthecreationofanoperatingsystem.Theoperatingsystemisthesoftwarebywhichacomputersystemruns.PopularexamplesofsuchsoftwarearetheWindowsplatform,Linux,Unix,andMacOS.TherearealotofoldoperatingsystemsbeingusedbeforeandthemostpopularofwhichisDOS.Theoperatingsystemservesasagoodmedianforthecomputerandtheprocessor’slanguage.Itsmainjobistotranslateeverysingleprogramcreatedfortheoperatingsystemandallowthemachinetoprocessthemaccordingly,sothatpeoplecanrunandusetheprogram.

Theevolutionofcomputerprogramminglanguagesisrequiredinthisever-changingworld.Itismandatorythattheyhavetokeepupwiththedemandsofthecurrenttimes.Before,computersareusedagainstablack,monochromebackground.Rightnow,

Page 22: Are Functions Core Concepts in - index-of.co.ukindex-of.co.uk › Programming › How to design a computer...Are Functions Core Concepts in Computer Programming? Author:M Mubashar

computersusesimages,colors,andinteractiveicons.Thecontrastisverystrikingthatyoucanjustimaginewhatwouldhappenediftherewerenoevolutionthathappened.

Theintroductionofnewcomputerprogramminglanguagesshouldbeawelcomeadditiontothegrowinggroupofcomputerlanguages.Thenewfeaturesandabilitiesthesecanbeusedwidelyindifferentapplicationsareincurrentlyindemand.

Page 23: Are Functions Core Concepts in - index-of.co.ukindex-of.co.uk › Programming › How to design a computer...Are Functions Core Concepts in Computer Programming? Author:M Mubashar

YourGuidetoComputerProgrammingMagazines

Ifyouwanttobeupdatedwiththenewgadgetsandthenewtechnologiesdealingwithcomputerprogramming,youhavetosubscribetorespectableindustry-relatedmagazines.Thankstotheinternet,thesemagazinesarealsoavailableforpublicviewingovertheweb.Thismeansyoureallydon’tworryaboutmissingasubscriptionorso.Inothercases,youdon’tevenhavetopayforsubscriptionsanymore.Allyouhavetodoistologontoyourinternetandreadthenewentriesorthenewissuefromtheprogrammingmagazinesoffyourdesktoporlaptopcomputer.

Herearethedifferentcomputerprogrammingmagazinesyoucancheckoutonline:

1.ApplicationDevelopmentTrendsThismagazineprovidesalltheinformationyoumightneedaboutnewlyreleasedsoftwareandallthenewtrendsininformationtechnology.Theaudienceofthismagazineisusuallythetechnicalmanagementgroupsofbigcompaniesandenterprises.

2.C++SourceThisonlineprogrammingmagazineisgoingtobeindispensableforC++professionals.ItcontainsinformationabouttheC++language,itsphilosophy,andthedirectionitistakinginthischangingworld.Asidefromthat,italsooffersfeaturearticlestoitsreaders.TherearealsorelatedtopicsaboutcomputerprogrammingandC++tutorialsthatareperfectforthebeginners.ItalsohasanewssectionthatgivesupdatesaboutC++.

3.DeveloperNetworkJournalIfyouarea.NET,ASP,COM,andADOtechnologyaficionado,thisisthemagazineforyou.Everyissueisrightwitharticlesthatsoftwaredevelopersaregoingtofinduseful.ThisistheprimarymagazineoftheWindowsandMicrosoft-basedplatforms.

4.DeveloperDeveloperisanindependentmagazinethatisprimarilycreatedtocarryinformationaboutdifferenttopicsofinterestacomputerprogrammerneedstoknow.Itcontainsfeaturesaboutsoftwaredevelopment,programming,architecture,databasecreation,andotherthings.

5.DoctorDobb’sJournalDoctorDobb’sJournalorDDJistheforemostprogrammingonlinemagazinesthatfeaturesrelevantsoftwaretips,tricks,andtoolsforbothaspiringandprofessionalprogrammers.Itisalsorichinsourcecode,articles,bookreviews,productresources,andawholelotmore.

6.JavaWorldJavaWorldisyouroptimumsourceofallJava-relatedprogrammingresources.BothprofessionalandamateurJavadevelopercanuseit.Italwayshasfreshnews,API’s,tutorials,tools,featurearticles,andinterviewswiththeexpertsthatalldealswiththeJavatechnology.

7.SYS-CONMediaSYS-CONmediacurrentlyistheleaderininformationtechnologymediaintheworld.TheyspecializeinAJAXdevelopment,aswellas.NETandJAVA.Buttheyarealsothe

Page 24: Are Functions Core Concepts in - index-of.co.ukindex-of.co.uk › Programming › How to design a computer...Are Functions Core Concepts in Computer Programming? Author:M Mubashar

authoritywhenitcomestoXML,Coldfusion,WebLogic,andFlex.

8.MSDNMagazineIfyouwanttogetaheadwiththenewesttechnologiesthataffecttheMicrosoftnetworkingsystems,thentheMSDNmagazineiswhatyouneed.Theirissuesarealwaysrichwithsourcecodesandhelpfularticles.Theyalsohaveanarchiveofbackissues,shouldyoubeinterestedinthemtoo.

9.LeadingEdgeJavaThismagazinecouldqualifyasthepracticalJavahandbooksforJavadevelopers.Itcontainstutorials,news,tools,andcurrentusesoftheJavatechnology.

10.LuminaryLuminaryisafreenewsletterpublishedmonthly.Itcontainsfeaturesonsoftwaremanagement,consulting,anddevelopment.

Thesearethe10mostusefulprogrammingmagazinesyoucancheckoutovertheinternet.Ifyouwanttotakeaglimpseofhowwhat’snewandhotintheprogrammingworld,justcheckoutthesemagazinesandknowyourself.

Page 25: Are Functions Core Concepts in - index-of.co.ukindex-of.co.uk › Programming › How to design a computer...Are Functions Core Concepts in Computer Programming? Author:M Mubashar

LearningComputerProgrammingTerminology

Computerprogrammersareprofessionalswhoareindemandthesedays.Thisisbecauseofthefactthateverythingisonthestageofbeingconvertedintodigital.Nottoosoon,therewon’tbeanalogsystemsanymore.Allsystemswouldbecreatedaccordingtothedigitalgeneration.

Rightnow,therearedifferentschoolsandinstitutionsprovidingtrainingforcomputerprogramming.Youcanenrolltoeitherofflineoronlineschools,dependinguponyourtimeavailability.Forthosewhorecentlygetofffromhighschoolandwouldliketopursueacareerincomputerprogramming,theycaninquirefromthedifferentschools,colleges,anduniversitiesaroundthem.Theseinstitutionsaresurelyofferingprogrammingcourses.

However,forthosewhoarecurrentlyholdingdownajobandwouldjustliketolearncomputerprogrammingasahobby,theycanenrollinanonlineschoolthatfollowsadistanceeducationsetup.Theyarefreetocatchupontheirlessonsduringtheirfreetime,whenevertheyare,providedtheyhavealaptopwithaninternetaccess.

Herearethedifferentschoolswhereyoucantaketrainingcoursesoncomputerprogramming:

1.CollinsCollegeCollinsCollegeislocatedinArizona.ItispreviouslyknownastheAlCollinsGraphicDesignSchool.Rightnow,theschoolfollowsemphasizedprogramsforvisualcommunicationsthroughgraphicdesign,computeranimation,anddigitalvideo.Theyalsooffere-commerceprogramming.

2.BrownCollegeBrowCollege’smaininstitutionisinMinnesota.However,theyareacceptingenrolleesfromvariouslocations.Theyareimplementingqualityprogramsincomputerprogramming.Theschoolemployscompetentfacultymembersthatimplementthem.

3.InternationalAcademyofDesignandTechnologyThiscareer-orientedinstitutionisdedicatedinprovidingacademicexcellencetotheirstudents.Computerprogrammingisnotaveryeasycourse.Butthisschoolisoneofthefewthattriestofindawaytomakethelearningprocessmorefunandrewarding.

4.AmericanInterContinentalUniversityTheschooloffersdifferentdegreesrelatedtobusiness,industrial,andgovernmentcareerpaths.Andalloftheirgraduateshaveadequatecomputerprogrammingunitstobackthemup.TherearealsoMaster’sDegreeandAssociate’sDegreeprogramsbeingoffered,ontopoftheschool’sBachelor’sDegrees.

5.ITTTechnicalInstIfyouwanttrue-bluecomputerprogrammingtraining,youhavetogototheauthority.TheITTTechInstisaspecialeducationalinstitutionthatfocusesoninformationtechnologycourses.TheschoolsoffersbothBachelor’sandAssociate’sdegree.

6.TechSkillsIfyouwanthands-oncomputerprogrammingandinformationtechnologycourses,youshouldgotoTechSkills.Theyareofferingdifferentprogramsrelatedtocomputersand

Page 26: Are Functions Core Concepts in - index-of.co.ukindex-of.co.uk › Programming › How to design a computer...Are Functions Core Concepts in Computer Programming? Author:M Mubashar

technology.TheirprogramsincludetrainingandcertificationforOracle,Microsoft,A+,Cisco,andawholelotmore.7.UnitekUnitekisthepremierproviderofcertificatecoursesforbothCISCOandMicrosoft.Theyarealsoofferingtrainingcoursesforthesetwo.Theycanprovideassessmenttestingforanybodysituatedacrossthecountry.Theyhavepreparedaskillstestonlineforaspiringstudentswhowouldwanttojointheirbootcamp.

8.KaplanUniversityKaplanUniversityisanonlineschoolthatoffersclassesaroundtheclock.Thisisoneofthebestschoolsofferingprogrammingcoursesforbothteensandadults.Theircurriculumisfocusedontheindividualizedcareerpathoftheirstudents.

Thesearetheeightdifferentcomputerprogrammingtrainingcentersyoucancheckout.Lookfortheschoolthatisequippedtoimproveyourskillsandabilitiesthemost.Thisway,youcanmakeyourfuturelookalotbrighter.

Page 27: Are Functions Core Concepts in - index-of.co.ukindex-of.co.uk › Programming › How to design a computer...Are Functions Core Concepts in Computer Programming? Author:M Mubashar

HowToImplementCreditCardComputerProgramming

Therearedifferenttypesandapplicationsofcomputerprogramming.Computerprogrammingisveryessentialanywherethere’sacomputeroradigitaldevice.Programsaretheprimaryrequirementbeforeasystemordevicecouldrun.Andinthisdigitalage,theyarerequiredbyalmostallapplications,includingweb-basedones.

Creditcardcomputerprogrammingisoneofthemostvitalformsofprogrammingthesedays.Thisispreciselywhatmakesonlinebankingande-commercepossible.Withthesesetsofprograms,peoplecanfreelybuythingsovertheinternet.Andmerchantscanalsogettheirearningeasilyfromtheissuingbanksofthecreditcardsusedtopaythem.

Themainrequirementofcreditcardcomputerprogrammingissecurity.Theseprogramsshouldbecreatedwithmultiplelayersofsecuritysoastoprotecttheinterestsofboththeonlinesellerandthebuyer.Creditcardprogrammingrequiresaseriesofintricatecommandsandtestrunsjusttoavoidtheloopholesintheprogramming.

Adequatesecurityisalsonecessarysothatidentitytheftandotherillegalactsarenotcommittedovertheinternet.Themainreasonwhyidentitytheftisrampantovertheinternetisbecausetherearenotsufficientsecuritymeasuresthatbothonlinesellersandbuyersfollows.Itisreallythetaskofcreditcardcomputerprogrammerstomakeindestructiblesecurityprogramsfortheirclients.

Identitytheftistheactofstealingone’ssensitivefinancialinformationsuchascreditcardnumber,socialsecuritynumber,name,address,andage.Allofthesearerequiredbeforeanonlinetransactioncouldpushthrough.Butbecauseoftheimprovingabilitiesofhackersandfraudulentindividuals,theysomehowmanagetofindwaysonhowsqueezeouttheinformationfromunsuspectingvictims.Theydon’trunoutofcreativewaysofenticingpeopletofreelygiveouttheinformationtheyneed.

Awebsitethatusesafaultycreditcardcomputerprogrammingprotocolisexposedtotherisksassociatedwithrefunds,fines,andevenlegalcosts.Butmorethanthat,thewebsite’scustomerswillbeveryirritatedwiththeirexperiencearisingfromthetransactionwiththewebsite.Worse,theycouldevensuspectthatthewebsiteispartofabigscamoperatingintheunderworldoftheinternet.Thisiswherethingscouldgetnastywithlegalfeesarisingfromsuitsfiledbytheaffectedconsumers.

Therefore,itisveryimportantforsmallandmedium-scaleinternetbusinessownerstoavailofcreditcardcomputerprogrammingservicesonlyfromreputablesources.Foralltheyknow,theprogramthattheyareusingarecreatedwithabackdoorthatonlytheprogrammersknowabout.Ifyoucanrequestforacustomizedprogrammingcompletewithdocumentationandalegalcontract,itishighlyrecommendedthattheyavailofthat.

Butifthatseemsalittletooexpensive,theycandefinitelytryoneofthemanythirdpartypaymentprocessorsinoperationtoday.Thisisagoodalternativetobuyingorcreatingaspecialsoftwareforyoure-commercewebsite.ExamplesofathirdpartypaymentprocessorarePayPal,GoogleCheckout,FirePay,andothers.Thesecompaniesareofferingtheprocessingofpaymentsincash,checks,andcreditcards.However,thesecompanieschargeacertainamountorapercentageofthepaymentreceived.

Page 28: Are Functions Core Concepts in - index-of.co.ukindex-of.co.uk › Programming › How to design a computer...Are Functions Core Concepts in Computer Programming? Author:M Mubashar

Thisdealshouldbejustfine,becausetheynormallyassumeallresponsibilitywhenitcomestotheproperhandlingorcreditcardchargerequests.Andforthemtodoitright,theyensuretheirclientsthattheyhaveaverycomplexcreditcardcomputerprogrammingsysteminplace.

Page 29: Are Functions Core Concepts in - index-of.co.ukindex-of.co.uk › Programming › How to design a computer...Are Functions Core Concepts in Computer Programming? Author:M Mubashar

LookingAdeptlyatProgrammingFunctionExamples

Beforelookingatthedifferentexamplesofprogrammingfunctions,itisbesttounderstandthepurposeanddefinitionoffunction.Afunctionisthemeansbywhichsomeonewhousesaprogramcanexecuteacodeblockwhichhastwopurposes:tofinishacertaintaskandtoreturnvalues.Althoughfunctionsareexpectedtoreturnacertainvalue,itisnotalwaysthatvaluesarereturned.

Afunctionisalsoconsideredasaprocedureinsomeprogramminglanguages.Ontheotherhand,functionsarecommonlyknownasanytermthatisbeingusedinreferringtonamesofcodeblocks.TakenotethatitistheCprogramminglanguagewhichsolelyusesthekeywordfunction.Functionsacceptrestrictions,theyalsoreturnvalues,andtheyaremaintainedonaseparatelocationfromthecodeofprimaryprogram.TheClanguageusesmainfunctionasthepointofentrytocertainprograms.

Functionscanshowupinasingleortwolocations.Thisisdependentonwhetherthefunctionissinglelineormulti-line.Havingasinglelinefunctionmeansavalueisreturnedaftertheperformancesofwork(inasingleline)whilethemulti-linefunctionisbroadenedoverdifferentlines.

Perhaps,themostcommonexampleofaprogrammingfunctionisamathematicalfunction.Logandtanareexamplesofmathematicalfunctions.Theothertwoknownfunctionsarestringfunctionsandthedatefunctions.

Simplydefined,aprogrammingfunctionallowsyoutoassigncertainvalueswhereresultscanbecalculatedinamatterofsecondswhilesavingyourselffromthetaskofdoingthecomputationsmanually.

Onthedeclarationorcallingofafunctionwhichhastwoormoreparameters,theuseofcommaisneededtoseparatethedifferentparameters.Onefunctiondeclarationcouldresemblethis:

functionprint_two_strings($var1,$var2){echo$var1;echo“\n”;echo$var2;returnNULL;}

Forthesefunctionstobecalled,avaluemustbeassignedtotheparameters,hence:Functioncall:Printtwostrings(“hi”,“guys”);Theoutputshouldappearas:higuys

OneothergoodwaytohaveactiveparametersistheuseofPHP’sintegralfunctionssuchasfuncgetargs,funcgetarg,andfuncnumargsfunctions.Thesefunctionsareabletocalculatearithmeticmeansofanyvaluesthatareplacedontothemandanoutputisderived.Anexample:

Page 30: Are Functions Core Concepts in - index-of.co.ukindex-of.co.uk › Programming › How to design a computer...Are Functions Core Concepts in Computer Programming? Author:M Mubashar

mean(35,43,3);

Theoutputisthen:Mean:27

Aprogrammingfunctionisusuallybestwhenitreturnssomevalueorinformation.Functionsdocalculations,indeed,butitisalsousefulinindicatinganyerrorsthatareencounteredanyfunction.Toreturnaninformationfromfunctions,youcanusereturn()statementonthespecifiedfunction.

AnexampleofscriptforPHPisthefollowing:

<?phpfunctionadd_numbers($var1=0,$var2=0,$var3=0){

$var4=$var1+$var2+$var3;return$var4;}

$sum=add_numbers(2,4,6)echo“Theresultof2+4+6is{$sum}?>

Theresultis:Theresultof2+4+6is12.

Takenotethat{}statementendedthecourseofthefunction.Ifmultiplevariablesaretobereturned,agroupofvariablesshouldbereturned,notasinglevariable:Anexample:

functionmaths($input1,$input2){$total=($input1+$input2);$difference=($input1-$input2);$ret=array(“tot”=>$total,“diff”=>$difference);

return$ret;}

Therearealsowaysofaccessingfunctionswithouthavingtotypeafunctionnameor{}syntax.Thiscanbedoneintwoways:thecall_user_funcorthecall_user_func_array.Onecomplexexampleisthefollowing:$one=“One”;$two=“Two”;$three=“Three”;$callback_func=“my_function”;$result=call_user_func_array($callback_func,array($one,$two,$three));echo$result;

Theseequationsmayshowasabunchofgibberishlettersandnumbersbutthesesymbolsactuallyaccounttomakeacertaintaskeasier.Andthat,forus,isthemostimportantthing.

Page 31: Are Functions Core Concepts in - index-of.co.ukindex-of.co.uk › Programming › How to design a computer...Are Functions Core Concepts in Computer Programming? Author:M Mubashar

ComputerProgrammingFunctions:GettoKnowWhatTheyAre

Whenitcomestocomputerprogrammingvocabulary,therearesomanyterminologiesthatpeoplewhodonothaveenoughknow-howtendtobecomelostandconfused.Onetermcouldbetranslatedintosomanydifferentnamesindifferentlanguages.Forexample,thefollowingwordsarequitesimilar:Functions,Programs,Subroutines,Procedures,Subprograms,orSubqueries.Theonlyquestionnowiswhichofthesetermscouldstandontheirown.

Theoreticallyspeaking,computerprogrammingavoidstheduplicationofanycodeinmultiplespaces.Forexample,oneinstitutionutilizingtheprogramscouldhavesomelibrariesofdifferentthousandsorevenmoreprogramswithbillionsofbasiccodelines.Withsuchintricatecase,duplicationcouldstillbeavoided.Letussaythatanerrormessageoccursbecausethecollectionnowneedstohaveanadditional‘member’.

AgoodexampleistheadditionofanotherglobalcurrencycalledtheEuro.Ifeachandeveryprogramwillbetoldtoupdateitselfbecauseofthisnewaddition,itcouldbecomplex.Butwithsub-programsorfunctionsspecificallydesignedtohandlediversesituations,thentheonlyfunctionthatwouldtakecareofthechangewouldbetheoneassignedtohandlesuchascenario.

Inthesamewaythatwewritenewprograms,manyofthecomponentsthatitwillneedarealreadyinexistence(e.g.accessingacertainfiletodigupacertaindata,computinginventoriesonhand).Incasessuchasthis,agoodalternativetowritingdifferentsourcecodelinestoworkonthenewfunction(andeventuallyreplicationofthecodeontonumerousotherprograms),thesub-programisaccessedtoworkonthespecifiedfunction.

Inahandfulofprogramminglanguages,therearecertainparametersthatarebeingpassedfromaspecificprogramnametotheprogramthatisbeingcalledtodoatask.Asecondaryprogramusuallymakesthevaluesalteredandthenthecontrolisbroughtbacktothemainprogram.Theseactionscouldbelevelsdeeper.Thevariousprogramsthatarebeingusedtocalleachotherarewritteninsomanyvaryinglanguages.Thereasonsbehindthisare:tohaveareasonablecontrollablefunctionpiecesandhavingvariouslanguagesmeansbeingbetterabletosuitdifferentfunctiontypes.

Tofurtherdefinetheusesofprogrammingfunctions,afunctionmayappearintwodifferentlocationsorevenasinglelocation.Thisdependsonwhetheritismulti-lineorsingle-linefunction.Afunctionthatissinglelineisonethatgivesbackavalueafterperformingtasks(allofthisinasingleline).Themulti-linefunction,however,isstretchedonmanydifferentlines.

Asinglelinefunctioncouldshowinacodeblockallbecauseitonlyrespondswhencalledbyacertainname.Themulti-linefunctiondoesotherwise.Ifitisamulti-linefunctionthatisbeingdefinedinablockofcode,thenthestatementsthatfollowthedefinitionaredoneinanon-sequentialmanner.

Initssimplicity,functionsarecodeblocksthatcanbereusable.Thesecodeblocksoftenreturnsinglevalues(sometimestheydon’t’).Commonexamplesofthesecodeblocksare

Page 32: Are Functions Core Concepts in - index-of.co.ukindex-of.co.uk › Programming › How to design a computer...Are Functions Core Concepts in Computer Programming? Author:M Mubashar

Mathematicalfunctions(e.g.tanorlog),datefunctions(figuresbetweentwodates),orstringfunctions(lookingforincidentsof1stringlocatedwithinanotherstring).Functionsarealsokeptseparatelyfromtheprimaryprogramcode.Alotofprogramminglanguagehasspecificfunctionswhicharedelegatedasentrypointstoacertainprogram.

Knowingwhatfunctionsareincomputerprogrammingcouldtakesometimetononcomputersavvyindividuals.Butthebasicsareallhere.Lookingatthemanycomplexthingsthatfunctionsdo,yougettoappreciatethethingsthatthecomputerdoesforyoueachday,don’tyou?

Page 33: Are Functions Core Concepts in - index-of.co.ukindex-of.co.uk › Programming › How to design a computer...Are Functions Core Concepts in Computer Programming? Author:M Mubashar

TheFutureofComputerProgramming

Computerprogrammingisalsoknownassoftwareprogramorsometimesitissimplycalled‘program’.Whatevernameit’scalled,itspurposeistoprovideinstructionstoacomputermachine.Ifthereisonethingthatacomputerneedstobeabletofunction(asidefromelectricity,ofcourse!),itwouldbecomputerprograms.Theexecutoroftheinstructionsisthecentralprocessor.

Computerprogrammingiscategorizedintotwofunctionallineswhicharetheapplicationandsystemsoftware.Andwhenitcomestoworkingonthesematters,theexpertsaretheso-calledcomputerprogrammersorsoftwaredevelopers.Butwherethereissoftware,thereshouldalsoexistthehardware.Generallyspeaking,hardwaredevicesareanyphysicalthingsthatarebeingusedincomputermanipulation.Examplesarecircuitboards,keyboardsandprocessors.Thedevelopmentofhardwareplaysamajorroleontheadvancementofcomputerprogramming.

Thisisbecausemostcomputerprogramsareembeddedinhardware.ThismeansthatsomeprogramsthatarestoredinthecomputercanbeaccessedbyaninitialprogramthatisstoredinitsROMforbooting.Theprocessofbootingistobeabletorecognizeandalsoinitializeallsystemfeatures.

Aftertheinitializationprocess,theprimaryprogramofthecomputerwouldloadtheoperatingsystemwhichwouldsettheprogramcounterstoinitiateusualoperations.Totallyself-sufficient,ahardwaredevicecouldhavesomeembeddedfirmwareincontrollingitsoperation.

Nowadays,thereareanumberofhardwaredevelopmenttoolsinthemarket.Alongwithsomesoftwaredevelopmentkitsarethehardwaredevelopmenttoolsthataredesignedtoallowuserstohavecontrolondesignflowprocesses.Therearemanydifferenttypestochoosefrom.Therearedevelopmentboardsforhardwarethatareusedinassistingdesignersforsystemsandsoftwaretovalidatedesigns.Forexample,therearetoolsthatareusedinSoCprototypes,ortherearetoolsthatcombineseveraldevicefeaturessuchasFlashprogrammerorMemoryemulator.

Goingbacktothebasics,therearenumerouscomputerprogramsthatwouldrunconcurrentlyonjustonecomputer.Thisprocessiscalledmultitasking.Andmultitaskingcanrunoneithersoftwareorhardwaresystems.

Operatingsystemsthataremodernareabletorunseveralprogramsthroughthesocalledprocessscheduling—thisissoftwaresystemthatswitchesthecentralprocessingunitamongstprocesses.Bydoingthis,usersareabletointeractwitheverysingleprogramwhileitisbeingrun.Astohardware,modernmultiprocessorsorcomputersthatareequippedwithmulticoreprocessormightrunseveralprograms.

‘Heardofthetermopensourcehardware?Thereiscurrentlynorealdefinitionofthistermbutthisisgenerallyunderstoodasopensourcesoftwareusagealongsidehardware.Also,thisisthefreedischargeofinformationonthehardware(releaseonschematics,size,designandotherinformation).Thisisthelatestinopensourcehardwareinformationandlogicdesignsharingisaknownopensourcehardwareform.

Page 34: Are Functions Core Concepts in - index-of.co.ukindex-of.co.uk › Programming › How to design a computer...Are Functions Core Concepts in Computer Programming? Author:M Mubashar

Designersofopenhardwareoftenmeettodiscussdesignproblemsandtheircorrespondingsolutions;theyalsoassisteachotherinlookingforparts;theyalsomeettoconverseaboutrecentdevelopmentsintheirworks.Sinceitisbelievedthatthedevelopmentofsoftwareisquitelimited(andmightevenhavereacheditspeak),thefocusonprogressionisnowonhardwaredevelopment.Withthemanyhardwaredevelopmenttoolsinthemarketnowadays,theworldcouldlookforwardtomoreinnovationsinthenot-so-distantfuture…ormaybeeventomorrow.

Page 35: Are Functions Core Concepts in - index-of.co.ukindex-of.co.uk › Programming › How to design a computer...Are Functions Core Concepts in Computer Programming? Author:M Mubashar

ComputerProgrammingandItsRichHistory

Ifit’sthehistoryofprogrammingthathastoberetold,thenitissafetobeginanaccountwiththedifferenceengineofCharlesBabbagewaybackin1822.Evenfromthetimewhencomputersweresosimple,theystillneededtohaveinstructionssothattheywillbeabletoperformtasksthatareinputtedtothem.Thissetofinstructionsiswhatisknowntodayascomputerprogramming.

Duringthedifferenceengine’sera,thegearsneededtobechangedmanuallywhichwouldthenresultintothecalculationsbeingmade.AllofthatwaschangedwhensignalsofelectricityreplacedphysicalmotionwiththeUSGovernment’s1942machinenamedENIAC.Theconceptofacceptingprogrammingwasalsofollowedbythismachine.

Tomakeprogrammingfaster,twovitalconceptswhichdirectlyinfluencedprogramminglanguagesweredevelopedin1945byJohnVonNeumann,whowasthenwiththeInstituteforAdvancedStudy.Thefirstconceptwasknownastheshared-programmethod.Thisconceptdictatedthatthehardwarehadtobenoncomplexandneednotbehand-wiredforeveryprogram.Intricateinstructionswereusedtocontrolthistypeofhardwarewhichmadereprogrammingquicker.

Thesecondconceptcalledthe‘conditionalcontroltransfer’gavebirthtocodeblockswhichcanbeusedevenindifferentordersortheso-calledsubroutines.Thenextpartoftheconceptwaslogicalbranching.Withthis,theconceptofhavingcodeblocksthatcanbeusedandreusedwasborn.

By1949,theShortCodelanguagecameout.Itbecamethemotherofelectronicdevicecomputerlanguage.Withthislanguage,theprogrammerwasrequiredtouse0’sand1’sinsteadoftheusualstatements.1951markedtheappearanceofcompilernamedA-0byGraceHopper.Thisprogramtranslatedallthe0’sand1’sforthecomputer.Thisgavewaytomuchquickerprogramming.

FORTRAN(FORmulaTRANslatingSystem)wasintroducedin1957whichwasalsothefirstkeylanguage.ItwasdesignedforIBMforscientificcomputation.ThislanguageincludedtheGOTO,DOandIFstatements.FORTRAN’sfortewasnotbusinesscomputing,though.Itwasagoodprogramfornumberhandlingbutnotforbusinesscomputations.

COBOLwasthendevelopedin1959.Itwasdesignedasabusinessman’slanguage.TheCOBOL’sprogramwascomparabletoanessaywherethereare4-5sectionscomprisingamajorwhole.Thismadeiteasiertostudy.

TheLISPlanguage(developedforartificialintelligencestudy)alsoknownastheCambridgePolishwasdevelopedin1958byJohnMcCarthy.Thisprogramminglanguageishighlyabstractandspecificthatiswhyitisstillbeingusedtoday.TheLISPcanstorelistsandmodifythemonitsown.

Inthatsameyear,theAlgollanguagewasproduced.ThisbecamethemotherofthePascallanguage,CandC++,andalsoJava.AlgolalsohadthefirstpropergrammarcalledtheBackus-NaarformorBNF.Algol68,whichwasthenextversion,wasaharderversiontouse.Duetothisdifficulty,Pascalcameintoexistence.

Page 36: Are Functions Core Concepts in - index-of.co.ukindex-of.co.uk › Programming › How to design a computer...Are Functions Core Concepts in Computer Programming? Author:M Mubashar

NiklausWirthintroducedthePascallanguagein1968.Itwasanecessarymeansofteachingthen.Itwasacombinationofthefollowinglanguages:ALGOL,FORTRANandCOBOL.ItwasalsoPascalthatimprovedthepointerdataform.Itsdownfallwascausedbyitslackofvariablegroups.Modula-2thenappearedbutCwasalreadypopularamongmanyusers.

CbyDennisRitchie(1972,usedbyUnix)wascomparabletoPascalbutitsprecursorsweretheBandBCPL.ItisalsobeingusedinWindows,LinuxandMacOS.OOP(ObjectOrientedProgramming)wasdevelopedin1970’suntilthe80’s.ThisdevelopedintotheC++languagein1983.Thislanguagecanmanipulatemanytasksallatthesametime.ThisisalsothechosenlanguagecoursesinAPComputerScience.In1987,Perl(PracticalExtractionandReportingLanguage)wasdeveloped.

Javasoonfollowedin1994.Ithasyetmanygoalstoreachespeciallywithitsslowrunningprograms.Buttherearehighhopesthatalotisinstoreinthefutureforthislanguage.MicrosofthasalsodevelopedVBorVisualBasicwhichuseswidgetsandthesearenowwidelyused.

Thefutureholdsmanymoredevelopmentsforcomputerprogramming.Itmayhavestartedonacrudemethodbutlookingatthelanguagesinusetoday,thereweresomanydevelopmentsthatwecanonlywonderwhat‘impossibilities’couldbemadepossibleverysoon.

Page 37: Are Functions Core Concepts in - index-of.co.ukindex-of.co.uk › Programming › How to design a computer...Are Functions Core Concepts in Computer Programming? Author:M Mubashar

InformationonComputerProgramming

Manyoftoday’scompanies,businesses,andorganizationsdependlargelyoncomputersandcomputersoftware.Nearlyallourbusinessandorganizationalprocesses,fromaccountingtoauditing,editingtowriting,andcommunicationstoscheduleorganizing,allworkbestwiththehelpofcomputers.Therearemanydifferentprogramsthatareassociatedwithalltheseprocesses,andtheydealwithhelpingcomputerusersmakespreadsheets,tallyearnings,checkforgrammaticalorspellingerrorsinadocument,andorganizeaperson’sschedule.Thesecomputerprogramsaremadeby,andareconstantlyupdatedbycomputerprogrammers.

Theprocessofcomputerprogrammingisbynomeanseasy.Itstartswithdevelopingaprogram:here,computerprogrammerswilloftenworkwithmarketersorevensociologistsorsocialpsychologists.Together,thisteam,alongwithmanyothermembers,willdeterminewhatcomputerprogramsamarketmightneedinordertofunctionbetter,whetherintheworkplaceorathome.Theprogram’sfeaturesaredeveloped,withthepsychologistsormarketexpertsmakingsuggestions,andcomputerprogrammerslookingatthefeasibilityofthesesuggestions.

Oncetheprogram’sfeatureshavebeendetermined,it’stimeforthecomputerprogrammerstogotowork.Theywillthenstartwritingtheprogram.Thisisdonethroughtheprocessofcoding,whereintheprogrammertypesinhisorherspeciallanguage,withtheaimofgivingrisetoaprogramthatwillfunctioninthewaythatitisdesired.Therearemanydifferentcomputerprogramminglanguagesthatareavailable:allofthemhavetheirownspecialfeatures,anditisnotunlikelyforprogrammerstobeadeptinonlyoneortwolanguages.Thiscanmaketheirworkeasier,becauseacomputerprogramminglanguageneedstobelearnedinenoughdepthtowriteitoutandidentifyerrorslater.

Oncetheprogramhasbeenwrittenout,ithastobetested.Thiscanbedone,atthefirstlevel,bythecomputerprogrammer:theprogrammerwilltesttheprogramondifferentoperatingsystems,withdifferentmicroprocessorspeeds,andthen,eventually,withbetausers.Inthepast,softwarecompaniesdidnotimmediatelyreleasetheirsoftwareunlessitwascompletelyfreefromerrors.Today,however,manyerrorsmightnotbepinpointedearlyon,sobetaversionsarereleased,oftenwiththerequestthatusersreportanybugssothattheycanbeimmediatelyfixed.

Oncetestinghasrevealeddifferentkindsofprogramerrors,theprogrammercanthendebugtheprogramortroubleshoottheseerrors.Theerrorswilloftenarisefromcodingerrors,andthecomputerprogrammerwilloftengobacktothecodeandmakethenecessarycorrections.Iftherearenocodingerrorsandtheprogramisstillnotfunctioningproperly,thentheprogrammermayhavetomodifythecodeorrewritetheprogramaltogether.

Acomputerprogrammerisalsoinchargeofupdatingaprogramandmakingsurethatitfitsagrowingmarket’sneeds.Inthiscase,thecomputerprogrammermayhavetocheckbackwiththemarketingteamandthesocialpsychologistinordertofindoutiftherearenewthingsthatthemarketmightbeinterestedin.betteryet,thecomputerprogrammercanaskforsuggestionsfromthemarketitselfinorderfortheprogramtofunctionbetter.

Page 38: Are Functions Core Concepts in - index-of.co.ukindex-of.co.uk › Programming › How to design a computer...Are Functions Core Concepts in Computer Programming? Author:M Mubashar

Formoreinformationoncomputerprogramming,talktoacomputerscienceexpert,orreadoncomputerprogramsandtheprocessofcoding.

Page 39: Are Functions Core Concepts in - index-of.co.ukindex-of.co.uk › Programming › How to design a computer...Are Functions Core Concepts in Computer Programming? Author:M Mubashar

TheBenefitsofComputerProgramming

Manyofthetechnologiesweenjoytodayaretheresultofcomputerprogramming.TechnologiesthatallowustoutilizeandenjoytheInternet,desktopandlaptopcomputers,mobilephones,videogames,eventhosethatrunautomatedprocessesinhomes,offices,banksandairportsareavailablethankstothegeniusofcomputerprogramming.However,theusesofcomputerprogrammingarenotlimitedtothesealone.Itactuallyhasnumerousbenefits,suchas:

Itallowstheprogrammertohaveabetterunderstandingofcomputers.Computersarerunbyprograms.Withoutprograms,computersarenothingbutsteel,plasticandalloy,essentiallyuseless.Withabackgroundknowledgeinprogramming,itmakesiteasiertounderstandhowcomputerswork,whichhelpsusersviewtheequipmentasmorethanatool.

Abetterunderstandingofcomputersalsoallowsuserstodeterminethehowsandwhysofthesystem,whichhelpsthembecomemoreeffectiveinusingtheequipment.Knowinghowprogramsworkmakesiteasytounderstandtheirlimitations,suchaswhattheycanandcannotdo.Thishelpsusersmaintainrealisticexpectationsaboutcomputersandlearnhowtomaximizetheirequipment.

Programmersareabletocreatenewer,moreusefulprograms.Computerprogrammingisresponsibleforcreatingveryvaluableprograms.Operatingsystems,forexample,theheartandsoulofeverycomputer,aremadeupofthousands,evenmillionsofsmallerprograms.Ifyouhavetherightskillsincomputerprogramming,itwillbeeasytoliterallybuildaprogramfromscratchandcreateaveryusefultoolthatmaybeutilizedinmanydifferentfieldsorindustries.

Programmersareabletocorrectbugsinaprogram.Abackgroundincomputerprogrammingwillallowyoutolookataproblematicprogramanddomorethanjustsithelpless.Ifthereisaglitchorbugintheprogram,itwillbeeasyforatrainedindividualtolookatthesystem,detectandlocatetheproblemandmakethenecessarycorrections.Testingtheprogramwillthenbeeasieronceyouunderstandwhatthedefectiveissuewas.

Itallowsprogrammerstoimproveanexistingprogram.Modifyingaprogramistherealmofprogrammerswhodealwithspecialistapplications.Computerprogrammers,especiallythosewhohavethetrainingandexperience,cantakealookatanexistingprogramanddeterminewhetherornotithasthenecessarycomponentstobecomeahighlyoptimizedprogram.Ifitisnot,theycanmodifytheprogramandimproveit,creatinganewer,betterversion.Thisisusuallydoneiftheprogramisproblematicoriftherearebugsinthesystem.

Itprovidesprogrammersmorecreativewaystoentertain.Thereisahugemarketforgamesandotherformsofentertainmentthatcomputerprogrammingcansupport.Newvideogames,mobilegames,animations,graphicsandfiletypesaretheresultsofprogramming.

Computerprogrammingisanexcitingcareer.Forindividualslookingforagreatfutureininformationtechnology,computer

Page 40: Are Functions Core Concepts in - index-of.co.ukindex-of.co.uk › Programming › How to design a computer...Are Functions Core Concepts in Computer Programming? Author:M Mubashar

programmingisanexcellentcareerpathtofollow.AccordingtothefiguresestimatedbytheBureauofLaborStatistics,thefieldofcomputersciencewillcontinuetogrow.Theneedforprogrammers,forexample,ispredictedtoincreasebymorethan70%by2010,whichismorethana50%increaseinthenumbercurrentlyrequired.

ComputerprogrammingandthefutureOneofthemostexcitingbenefitsofcomputerprogrammingisthatitoffersusaglimpseofthefuture.Thepossibilitiesbeingofferedtoday,suchasCGIs,voiceautomatedtechnology,artificialintelligence,moresophisticatedprogramsandthelikearejustafewofthethingswecanexpect.Withcomputerprogramming,manyaspectsofourliveshavegotteneasier,quicker,saferandmuchmoreinteresting.

Page 41: Are Functions Core Concepts in - index-of.co.ukindex-of.co.uk › Programming › How to design a computer...Are Functions Core Concepts in Computer Programming? Author:M Mubashar

ComputerProgramming:WorkingInaTeam

Computerprogrammingrequiressomeveryintricatework.Thisisthetypeofworkthatthrivesondetailsandpeoplewhoworkinthisfieldunderstandthattheabsenceofeventheminuteelementscanspellahugedifferenceintheoverallresult.Ifaprogrammerfailstocorrectthisproblem,itcanleadtoerrorsdowntheline.Asaresult,bugswillappearinthesystemanderrorswillemergelateron.Programmingisalsotaxingwork,requiringhoursuponhoursofwriting,testinganddebugging.Thisiswhycomputerprogrammingthrivesonteamwork.Withoutteamwork,asinglecomputerprogramcantakedecadestocomplete.

Althoughoneprogrammerhasthenecessaryskillsandknowledgetoworkcompetentlyonaproblemorevencreateaprogram,heorshecanonlydosomuch.Creatingthesourcecodeforanoperatingsystem,forexample,willrequirethousandsofmanhoursfromasingleprogrammerandmostprobably,heorshewillonlybehalfwaythrough.Therejustisn’tenoughtimeforoneoreventwoprogrammerstoworkeffectivelytoproduceausableprogram.

TeamprofileSowhatconstitutesateamincomputerprogramming?Ateamisusuallyheadedbytheteamleader,suchasasystemsanalystorseniorprogrammer.Theseniorprogrammerisusuallyapersonwhohashadyearsoftrainingandexperiencebehindhim.Histaskistosupervisetheteam,leadinbrainstormingandproblemsolvingsessions,delegateassignments,checkthecorrectnessofthecoding,dispenseadviceandrecommendationsandleadindebuggingandsoftwaremaintenance.

Theteamleaderistheonewhoholdstheteamtogetherandensuresthereisawellcoordinatedeffortthatwillleadtothedesiredresults.Allteammembersreporttohimanddependingonthesizeoftheproject,theteamleadermayhaveanassistantoranotherleadertoworkwith.

Theteamisusuallycomposedofjuniororentrylevelprogrammers,particularlythosewhomayhavethequalificationsbutnotthenumberofyears’worthofexperienceyet.Dependingonwhattheteamleaderwants,ajuniorprogrammermaybetaskedtoworkonhisownonmuchsimplerassignmentsorhemaybeassignedaspartofagroup.Thisgroupmayconsistofotherentrylevelprogrammersormoreexperiencedprofessionals.

Themembersofateamarechosenbasedontheirexpertise.Atthebeginningofaproject,theteamleader,alongwithothermoreseniorprogrammers,willtrytobreakdowntheproblemintocomponents,whichwillconsistoftasks.Taskscanvaryaccordingtocomplexityandfunctionandwillbeassignedtoateamwhohastheskillstocompletethem.

Thenumberofprogrammersinateamcanbeassmallas3oritcannumberinthedozensorevenhundreds.Again,italldependsonthesizeoftheprojectandtheavailabilityofresources.

Teamworkisanecessarycomponentofcomputerprogramming.Ithelpspoolagroup’sresourcesandformacoordinatedeffortinordertoproduceaparticularprogramorsoftware.Insomecases,suchasinexceptionallyhugeprojects,someteamsmaywork

Page 42: Are Functions Core Concepts in - index-of.co.ukindex-of.co.uk › Programming › How to design a computer...Are Functions Core Concepts in Computer Programming? Author:M Mubashar

alternatelyorinshifts,whichmakesitnecessarythatateamiscapableofsustainingcoordinationamongthem.

Teamworkdrivescomputerprogramming.Avastmajorityofthecomputerprogramsandsoftwareweenjoytoday–fromtheoperatingsystemstothevideogamestothetechnologythatrunourphones–wereproducednotbyasingleprogrammerbutbyateam.Whateveritisthathasmadeusingcomputersandotherformsoftechnologythatmucheasierandmoreconvenientissomethingweowetoateamofwell-trainedandhighlyskilledcomputerprogrammers.