Zakoni Italisht dhe Korrespondenca njĂ« pyetje si "pĂ«rse na nevojitet matematika?" zakonisht pĂ«rgjigjen me diçka si "gimnastikĂ« pĂ«r mendjen". NĂ« mendimin tim, kjo shpjegim nuk Ă«shtĂ« e mjaftueshme. Kur njĂ« person bĂ«n ushtrime fizike, ai e di emrin e saktĂ« tĂ« grupeve tĂ« muskujve qĂ« janĂ« duke u zhvilluar. Por bisedat pĂ«r matematikĂ«n mbeten shumĂ« abstrakte. Cilat "muskuj tĂ« mendjes" zhvillohen me algjebrĂ«n e shkollĂ«s? Ajo Ă«shtĂ« krejt ndryshe nga matematika e vĂ«rtetĂ«, nĂ« tĂ« cilĂ«n bĂ«hen zbulime tĂ« mĂ«dha. ĂfarĂ« na jep aftĂ«sia pĂ«r tĂ« kĂ«rkuar derivatĂ«n e disa funksioneve tĂ« ndĂ«rlikuara?
Mësimi i programimit për studentë të dobët më ka çuar te një përgjigje më e saktë për pyetjen "përse?". Në këtë artikull, do të mundohem t'ua qartësoj këtë.

NĂ« shkollĂ«, shumĂ« kohĂ« i kushtohet transformimit dhe thjeshtimit tĂ« shprehjeve. PĂ«r shembull: 81Ă2+126xy+49y2 duhet tĂ« transformohet si (9x+7y)2.
Në këtë rast, pritet që nxënësi të kujtojë formulën e katrorit të shumës.

Në raste më të ndërlikuara, shprehja e marrë mund të përdoret për transformime të tjera. Për shembull:

transformohet fillimisht në

dhe pastaj, me saktësimin (a + 2b) != 0, rezulton kështu.

Për të arritur një rezultat të tillë, nxënësi duhet të njohë shprehjen fillestare dhe më pas të aplikohet tre formula:
- Shuma e katrorëve
- Dallimi i katrorëve
- Shkëputja e faktorëve të një fraksioni të zakonshëm
NĂ« shkollĂ«n e zakonshme, nĂ« algebrĂ«n njihnim kryesisht tĂ« tillĂ« transformime shprehjesh. NĂ« universitetin nĂ« matematikĂ«n mĂ« tĂ« lartĂ«, asgjĂ« nuk ishte ndryshe. Na mĂ«suan si tĂ« marrim derivatet (integralet etj.) dhe na dhanĂ« njĂ« mal me detyra. A ishte e dobishme? NĂ« mendimin tim â po. Si rezultat i kĂ«tyre ushtrimeve:
- U zhvillua aftësia e transformimit të shprehjeve.
- U zhvillua vëmendja për detajet.
- U formua njĂ« ideal â njĂ« shprehje e shkurtĂ«r, pĂ«r tĂ« cilĂ«n mund tĂ« synohet.
Në mendimin tim, egzistenca e një ideali të tillë, cilësie dhe aftësie është shumë e dobishme në punën e përditshme të zhvilluesit. Sepse, në thelb, thjeshtimi i një shprehjeje do të thotë të ndryshosh strukturën e saj me qëllim që ta bësh më të lehtë kuptimin, pa prekur kuptimin. A të kujton diçka kjo?
Kjo është praktikisht përkufizimi i refaktorizimit nga libri i Martin Fowler.
Në veprën e tij, autori i formulon ato në këtë mënyrë:
Rifaktorizimi (Refactoring) (emër): ndryshimi i strukturës së brendshme të softuerit, me qëllim që ta lehtësojë kuptimin e funksionimit të tij dhe ta thjeshtojë modifikimin, pa prekur sjelljen e dukshme.
Të bësh rifaktorizim (Refactor) (folje): të ndryshosh strukturën e softuerit, duke aplikuar një sërë rifaktorizimesh, pa ndikuar në sjelljen e tij.
Libri ofron "formula" që duhet të njihen në kodin burimor dhe rregullat për transformimin e tyre.
Si një shembull të thjeshtë, do të jap "këtu merrni një variable shpjeguese" nga libri:
if ( (platform.toUpperCase().indexOf(âMACâ) > -1 ) &&
(browser.toUpperCase().indexOf(âIEâ) > -1 )&&
wasInitialized() && resize > 0 ) {
// bëj diçka
}Pjesët e shprehjes duhet të regjistrohen në një variabël, emri i së cilës shpjegon qëllimin e saj.
final boolean isMacOS = platform.toUpperCase().indexOf(âMACâ) > -1;
final boolean isIEBrowser = browser.toUpperCase().indexOf(âIEâ) > -1;
final boolean isResized = resize > 0;
if(isMacOS && isIEBrowser && wasInitialized() && isResized) {
// bëj diçka
}
Imagjinoni një njeri që nuk mund të thjeshtojë shprehjet algebraike duke përdorur formulën për katrorin e shumës dhe ndryshimit të katrorëve.
ĂfarĂ« mendoni, a do tĂ« mundĂ«sonte ky njeri tĂ« rifaktorizojĂ« kodin?
A mund tĂ« shkruajĂ« ai nĂ« tĂ« vĂ«rtetĂ« kod tĂ« kuptueshĂ«m pĂ«r tĂ« tjerĂ«t, nĂ«se nuk ka formuar njĂ« ideal tĂ« kĂ«tij lloj konciziteti? NĂ« mendimin tim â jo.
Megjithatë, në shkollë mësojnë të gjithë, ndërsa programues bëhen një pakicë. A është e dobishme aftësia për të shndërruar shprehjet për njerëzit e zakonshëm? Mendoj se po. Vetëm se aftësia aplikohet në një formë më abstrakte: duhet të vlerësosh situatën dhe të zgjedhësh veprimin e mëpasshëm në mënyrë që të afrohesh drejt qëllimit. Në pedagogji, ky fenomen quhet .
Shembujt më të spikatur shfaqen gjatë riparimeve të shtëpisë me mjete të thjeshta, në një mënyrë «kolhoze». Si rezultat, shfaqen ato «trukë» dhe hile, një nga të cilat është ilustruar në PKDV. Autori i ideve kishte një copë druri, një tel dhe katër vida. Duke përmendur modelin e bazës për llambën, ai e përbri nga këto një bazë të bërë vetë.
Pavarësisht nga udhëtimi me transportin automobilistik, shoferi vazhdimisht merret me njohjen e modeleve në botën përreth dhe realizimin e manovrave përkatëse për të arritur në destinacion.
Kur je i vdekur, nuk e di, vetëm të tjerët e kanë të vështirë. E njëjta gjë ndodh kur nuk e ke zotëruar matematikën...
ĂfarĂ« ndodh nĂ«se njĂ« person nuk arrin tĂ« zotĂ«rojĂ« transformimin e shprehjeve? HerĂ« pas here, unĂ« mbaj mĂ«sime tĂ« individĂ«ve qĂ« kanĂ« pasur vĂ«shtirĂ«si nĂ« matematikĂ« nĂ« shkollĂ«. NĂ« pĂ«rgjithĂ«si, ata ngecin plotĂ«sisht nĂ« temĂ«n mbi ciklet. Mjaft saqĂ« duhet tĂ« merremi me "algebrĂ«n", por nĂ« gjuhĂ«n e programimit.
Kjo ndodh sepse, kur shkruhen ciklet, teknika kryesore është pikërisht të transformosh një grup shprehjesh të njëjta.
Supozoni se rezultati i punës së programit duhet të duket kështu:
Hyrje
Kreu 1
Kreu 2
Kreu 3
Kreu 4
Kapitulli 5
Kreu 6
Kreu 7
Përfundimi
Një program trivial për të arritur këtë rezultat duket kështu:
static void Main(string[] args)
{
Console.WriteLine("Hyrje");
Console.WriteLine("Kreu 1");
Console.WriteLine("Kreu 2");
Console.WriteLine("Kreu 3");
Console.WriteLine("Kreu 4");
Console.WriteLine("Kreu 5");
Console.WriteLine("Kreu 6");
Console.WriteLine("Kreu 7");
Console.WriteLine("Përfundim");
}Por kjo zgjidhje është shumë larg ideales së shkurtër. Së pari, duhet të gjenden grupet e përsëritura të veprimeve dhe pastaj të transformohen. Si rezultat, do të kemi një zgjidhje të tillë:
static void Main(string[] args)
{
Console.WriteLine("Hyrje");
for (int i = 1; i <= 7; i++)
{
Console.WriteLine("Kapitulli " + i);
}
Console.WriteLine("Përfundimi");
}Nëse një person nuk e ka mësuar matematikën në kohën e duhur, atëherë nuk do të jetë në gjendje të kryejë transformime të tilla. Ai thjesht nuk do të ketë aftësinë e duhur. Prandaj, tema e cikleve është një nga pengesat e para në mësimin e zhvilluesit.
Probleme tĂ« ngjashme ndodhin edhe nĂ« fusha tĂ« tjera. NĂ«se njĂ« person nuk Ă«shtĂ« nĂ« gjendje tĂ« pĂ«rdorĂ« mjetet e duhura, ai nuk do tĂ« jetĂ« nĂ« gjendje tĂ« tregojĂ« mençuri tĂ« zakonshme. Disa mund tĂ« thonĂ« se duar tĂ« tij janĂ« nga njĂ« vend i gabuar. NĂ« rrugĂ«, kjo shfaqet nĂ« papĂ«rvojĂ«n pĂ«r tĂ« vlerĂ«suar saktĂ« situatĂ«n dhe pĂ«r tĂ« zgjedhur manovrĂ«n. Ăka ndonjĂ«herĂ« mund tĂ« çojĂ« nĂ« pasoja tragjike.
Konkluzione:
- Matematika shkollore dhe universitare na nevojitet që të dimë si ta bëjmë botën më të mirë me mjetet që kemi.
- NĂ«se jeni duke mĂ«suar dhe keni probleme me ciklet, provoni tĂ« ktheheni te burimet e para â algebra e shkollĂ«s. Merrni njĂ« libĂ«r ushtrimesh pĂ«r klasĂ«n e 9-tĂ« dhe zgjidhni shembuj nga ai.
Burimi: habr.com
