Tnròng Dgi hoc Vinh Tap chi khoa hoc Tgp 45, Sé lA (2016), tr 59 68 RÈN LUYÈN KY NÀNG LÀ? TMNH THÒNG QUA DAY HOC THirC HÀNH HOC PHÀN CAU TRUC D C LIÉU VA GIÀI THUÀT Phan Le Na Khoa Cóng nghe thóng tin[.]
Tnròng Dgi hoc Vinh Tap chi khoa hoc Tgp 45, Sé lA (2016), tr RÈN LUYÈN KY NÀNG L À ? T M N H THÒNG QUA DAY HOC THirC HÀNH HOC PHÀN CAU TRUC D C LIÉU VA GIÀI THUÀT Phan Le Na Khoa Cóng nghe thóng tin, Truàng Dgi hoc Vinh Ngày nhàn 26/10/2015, ngày nhiìn dàng 31/3/2016 Tom tàt Ky nàng làp trình mot yèu càu co bàn càn thiét cùa sinh vién (SV) ngành Còng nghè thòng tin (CNTT) Viéc rèn luyén ky nàng làp trình mot nbiém vu quan ttgng cùa SV, dac biét vói nhùng ngi mn ttị thành làp trình vién tuong lai Cau trac dù liéu va giài thugt hgc phàn bàt bugc va quan ttgng bị ttg kj tht làp trình cho SV ngành CNTT Bài vièt de xuàt mot s5 giài phàp giùp nàng cao ky nàng làp trình cho SV thóng qua viéc day hgc thvcc hànb phàn de qui thugc hgc phàn Càu triic dù liéu va giài thugt MOT SĨ VÀN DE KHI DAY LÀ? TRÌNH Cóng nghé thóng tin mot ngành d^c thù vói nhiéu hgc phàn co thuc hành, dac biét nhùng mòn hgc làp ttình Nhùng hgc phàn dịi hịi phài trai qua qua trình hgc, tfch lùy kién thùc ttong thịi gian nhàt djnh Hién nay, chuong trình tao càc ngành CNTT bao gòm: Su pham Tin hgc, Khoa hgc mày tfnh, CNTT, Còng nghé phàn mém Càc ngành dèu co mot so hgc phàn giùp SV làm quen vói làp trình nhu Ngịn ngù làp trình C, Càu truc dù liéu va giài thuàt, Ky thuàt làp trình Day càc hgc phàn giùp SV trang bi càc kién thùc làp trình ca bàn, cà 1^ thuyét thuc hành Làp trình giup SV nàm bàt dugc hgc tòt hon, ùng dung càc kién thùc da hgc vào thirc té Tuy nhién, thuc té cho thày nhiéu SV gap khó khan hgc làp trình L|lp trình mot ky nàng khó, dịi hịi SV phài co tu tịt vè tht tồn De nàm vùng làp trình, SV càn phài làm nhiéu t|p de tfch lùy kinh ngbiém Trén lóp, giàng vién (GV) chi co thè tmyèn dat nhùng kién thùc co bàn, huóng dàn nhùng vàn de còt lòi nhàt SV phài t\i hgc, tir ngbién cùu, làm nhièu t^p, tham khào tài lièu de hgc càc kién thùc mò ròng Mot so SV thuc hành khòng nhièu, kién thùc tiéng Anh khòng tịt, vièt chuong trình khịng thè tu sua lịi Càu trae dù lièu va giài thuàt hgc phàn bàt buóc cùa SV chuyén ngành CNTT Day mgt ttong nhùng hgc phàn quan ttgng cùa chuong trình tao ngành CNTT va ciìng rat càn thiét cho nhièu ngành khàc nhu Dién tu vién thòng, Buu chfnh vién thòng De dat dugc hiéu qua cao vè ky nàng làp trình, phàn thuc hành rat quan trgng SV càn phài co tài liéu tham khào de tu hgc, tu thuc hành mot càch pbù hgp nhàt Nèu tbgc hành co hng dàn tbì ky nàng làp trình sé dugc nàng lèn MOT SO GIAI PHA? NANG CAO KY NANG LÀP TRINH CUA SINH VIEN 2.1 K^ nàng làp trình càn thiet cho sinh vién Ky nàng làp ttình mot ky nàng tị hgp tu càc ky nàng làp trình càc tồn, gị lói (debug), tìm hiéu help, ky nàng dgc chuong trình Nhùng k j nàng dị dugc rèn cho SV ttong qua trình day hgc càc hgc phàn lién quan dén làp trình Truóc hét, GV càn quan Email: phanlenadhv@gmail.coni Ili P.UNa/ Rèn lun k^ nàng làp trình thịng qua dgy hgc thuc hành hpc phàn Càu truc dù li?u va giài thugt tàm tói ky nàng làp trình càc tồn cùa SV Khi gap mgt toàn ttong th^rc té, SV càn bièt xàc dinh yéu càu cùa toàn, phàn tfch tồn, thiét ké chuong trình, thiét ké càc giài tht chi tiét va cài dàt chuong trình hồn chinb Tàt cà nhimg dièu dò dugc GV ttang bi cho SV thóng qua viéc day hgc càc vf du cu thè, sau dò SV sé thirc hién theo, Trong qua trình l|ip trình va làm viéc vói càc ngịn ngù làp trình, mot ttong nhùng ky nàng càn thiét va quan ttgng ky thuàt dò va gò lòi Su dung thành thao Debug Tool giup SV co dugc càc ùng dung tịt Ben cEinh dị, khóng phài tàt cà càc kièn thùc quan dèu dugc GV cung càp cho SV Vi vày, ky nàng tìm hiéu Help làm viéc vói càc ngịn ngù làp trình càn dugc trang bi Day phuong phàp giùp SV bièt tu tìm càc giài phàp làp trình tu chùc nàng Help cùa càc phàn mém làp trình Ci ky nàng dgc chuong trình Viéc dugc ttang bi, rèn luyén ky nàng giùp SV de dàng bcm xem lai càc chuong trình minh viét nhu tham khào chuong ttình cùa ngi khàc nhàm nàm bàt y tuòng va càch thùc giài quyét tồn cùa bg thóng qua dgc hièu chuong trình 2.2 Nàng cao k^ nàng làp trình Trong qua trình giàng day càc hgc phàn cùa CNTT, dàc biét càc hgc phàn lién quan dèn làp ttình, GV phài co phuong phàp day hgc pbù hgp nbàm dat higu qua cao Vi vày viéc àp dung càc phuong phàp de t?o hùng thù, u thfch mịn hgc lap trình, làm cho SV co thè nàm dugc nói dung hgc tai lóp, nàm dugc kièn thùc mot càch logie va co he thóng diéu càn thiét SV càn dugc huóng dàn de hièu dugc tàm quan ttgng cùa ky nang làp trình dói vói ngành CNTT SV phài nò lue tu hgc, làm tàp dugc giao ttén lóp, thgc hién càc tàp càc tài lièu tham khào khàc de tich lùy kién thùc, dóng thịi tao nièm say me ttong hgc tàp Dịi vói giò thuc hành, de dat hiéu qua cao, SV càn tfch cuc làm trc tàp ó nhà, giị thuc hành tai phịng mày diing de ịn lun hoac nhó GV giùp dị ttong vi^c sua lói chuong trình bay giài quyét càc vàn de khó Hièn nay, co nhiéu ngn tàp thuc hành bao gịm cà code SV co thè su dung nguòn tm Uéu de tham khào, giài qut càc vng màc ttong qua trình lap trình Tuy nhièn, khịng nèn chép code ma khóng hiéu nói dung, càch thùc boat dóng cùa tùng doan code dị Khi giàng day, ngồi nbihig tàp ttong giào ttình, GV co thè dua mot so t|p co y nghìa thuc té, cbàng han nhu l^p trình game, càc chù de tàp lón, giói thiéu càc duòng link co tài liéu ben quan vè càu truc dù li^u va giài thuàt Viéc tir tbuc hién chucmg trình thịng qua càc tàp co y nghìa giùp SV tìio nièm vui ttong hgc tàp, hiéu dugc ^ nghìa mịn hgc, tao dgng lue vuon lèn Khi mịi hgc l?.p trình, bay xem thài kyràmgvf dii SV càn hiéu dugc tìmg doan ma co y nghìa gì, co chùc nàng SV phài xem dogji code that ky de vièt code chinh xàc va rò ràng Khi vièt code, SV phài tuàn thù quy tàc va cu phàp mot càch chat che de càc SV khàc co thè dgc hiéu mot càch de dàng SV phài co thói quen khịng chi dgc vf du ma phài chay thù chuong trình de bièt dugc két qua GV nèn huóng din SV tàp viét ma riéng; SV bay t\f nghT cbo minh mot thu§t tồn rièng Trc tién, bay viét mot doan ma dò de thè hién y cùa minh, sau dị dùng ngịn ngù làp ttình de viét 1^ Cóng viéc tịn nhiéu thịi gian, nbung qua dò, SV sé thu dugc nhièu kinh nghièm, kbà nang tu làp ttình ngày phàt ttién Kbung chuong trình tao càn dugc thiét kè hgp IJ hon; nèn dua hgc pbàn Ngịn ngù làp trình C vào hgc ky de SV co dù thòi gian som làm quen va tfch lùy kinh Truàng Dgi hpc Vinh Tap chi khoa hoc, Tàp 45, So lA (2016), tr 59-68 nghièm làp trình Càu trùc dù lièu va giài thudt dugc chia làm hgc phàn; Càu trùc dù liéu va giài thugt dugc hgc ò hgc ky 2, Càc giài thuàt nàng cao dugc hgc ó hgc ky Ngồi ra, khung chuong trình tao co khà nhiéu hgc phàn lièn quan dén ky tht làp trình nbu Lgp trình hng dịi tuong Dị hoa mày tinh, Làp trình web, Làp trình truc quan, Làp trình Java, Lgp trình Java nàng cao Day nhùng mòn hgc giùp cho SV tbfch thù su dung sau Mot giài phàp khóng thè thiéu day manh càc ho^t dịng ngoai khóa lièn quan dén làp ttình nhu tị chùc thi olympic làp bình C, thiét ké web, Java code, tbi thiét ké logo; tnmg bay càc phàn ma SV thuc hién tu két qua thuc tàp chuyén ngành; tò chùc hgi ngh| SV nghièn cùu khoa hgc hàng nàm; xày d\mg càu lac bị nhóm làp trình C, làp trình Java co sg hng dàn cùa GV tté hoac SV giịi nàm ci 2.3 Xày dung phuong phàp thirc hành hgc phàn Càu truc dù liéu va giài thuàt Pbuong phàp day hgc thuc hành phuong phàp giàng day ttèn co so quan sàt GV làm màu, SV thuc hién tàp thuc hành duói sv huóng din cùa GV, tir hình thành càc ky nàng càn thiét cho boat dịng nghè nghiép tuong lai Ngoài ra, phuong phàp diiy hgc thuc hành giùp SV co tri thùc chuyén ngành, xày dung phàm chat, tàc phong làm viéc chuyén nghiép va phàt trièn nàng lue tu Co giai doan day thuc hành bao gòm: giai doan chuàn bi, giai doan thuc hién va giai dogn két thùc GV càn thgc hién tién trình day hgc thirc hành tbeo phuong phàp buóc Pbuong phàp tuàn thù tbeo nguyèn tàc GV làm màu, huóng dàn SV làm theo, sau dị tìèn hànb lun tap cbo SV Phuong phàp buóc mot pbuong phàp quan ttgng ttong day thuc hành, dac biét tbich hgp de giàng d^y càc ky nàng làp trình co bàn Qua càc tàp thuc hành, SV nàm vùng kièn tbùc ly thuyét dà dugc hgc trèn lóp SV tu kiém tta kién thùc ly thuyét tbòng qua càc tbuc hành va phàn ttà lịi càu bịi ttàc nghièm Tién trình day hgc thuc hành nàng cao ky nàng l^p trình hoc pbàn Càu trùc dù lièu va giài thuàt theo pbuong phàp buóc nhu sau: - Giai doan chuàn bi: GV chuàn bi thuc hànb, chuàn bi phòng mày, pbàn còng vi tri thitc hành, kiém tta mày tfnh - Giai doan thirc hièn: Bir&c - Ma dàu day Giói thiéu tóm tàt nói dung, xàc dinh nhiém vu yèu càu cùa thgc hànb, nèu mot so càu hòi kiém tta kièn thùc pbgc VII cho thuc hành Bit&c - GV thuyét trình va thitc hành màu Thinh tbồng GV dat càc càu bịi de thùc day SV suy nghì, thu hùt sg chù y vào nhùng diém ttgng tàm cùa GV nhàn m ^ nhùng dièm chfnh, lim y nhùng lói hay xày Bir&c - SV thuc hành va thuyét trình SV thuc hành va néu 1^, giài tbfch dugc càc bc, càc doan chuong bình cùa tbuc hành Bc tàng thèm ky nàng thut ttình cho SV GV kiém tta, dièu chinh càc thao tàc, de xuàt càc càu hòi de SV ttà lòi Bu^&c - Luyén tàp SV luyén tàp ky nàng, luyén tàp làm càc t$p dugc giao GV quan sàt, kiém tta ttg giùp Sau SV da nàm vùng càch thùc thuc hành, GV co thè cho SV tién hành tbuc hànb theo nhóm, giài dàp nhùng thàc màc ma SV dua rattrongqua ttình thuc hành - Giai dogn két thuc: Kbi két thùc thuc hành, GV phàn tich kèt qua thuc hién dugc so vói muc dich yéu càu; giài dàp càc thàc màc va Imi y nhùng sai sót, lịi thng gap ma SV màc phài; co kién thùc tbịng qua nói dung thuc hànb Sau dị GV co thè kiém tra, dành già va cóng bó két qua cho SV P L Na /Rèn luyén ky nàng làp trình thóng qua dgy hpc thuc hành hpc phàn Càu trtic dù liéu va giài thugt 2.4 Xày dumg hai day thurc hành phàn d^ qui hoc phàn Càu trùc dir liéu va giài thuàt Giai ^an chuàn bi GV chuàn bi tìiuc hành phàn d? qui phàt cho SV ttiióc hgc phàn tbirc hành Càu trac dù liéu va giài thuàt (khóng kèm theo càc càu hòi), chuàn hi càu hòi va phièu ttà lịi ttàc nghièm, phàn cóng vi tri tbgc hành, chn bi kich bàn day thuc hành toàn bài; ky thuàt vién chn bi phịng mày, kiém tta mày tì'nh Giai dogn thuc hién Bif&c h Mie dàu day Muc dich: Giói thiéu phuong phàp làp trình theo ky tbu^t de qui, càch boat dgng, thiét ké giài thuàt de qui va cài dat càc hàm de qui; Dóng thịi huóng dàn SV thgc bién tàp thuc hành trén ngịn ngù làp ttình C Ky nàng: Biét lua chgn pbuong phàp lim trù thich hgp va giài thuàt cho tiing toàn Phàn giùp SV co va phàt trièn ky nàng làp trình dà dugc hgc u cau: Su dung giài tht de qui dịi vói tiJmg tàp, SV néu dugc tèn hàm, danh sàch tham bién (tham tri), trình bay càc bc, càc thành phàn cùa giài thuàt de qui, su dung lòi ggi hàm de qui ttong chuong trình chinb; nam dugc uu, nhugc diém cùa giài thuàt de quy Giài thuàt de qui: Khài nièm de qui: Mot hàm dugc ggi de qui nèu ttong thàn ciia hàm dò co lénh ggi lai chfnh nò mgt càch tuòng minh hay tiém àn Vi dui So tu nhién a so tu nhién b X SÓ fu- nhién néu x-ìlàsịtu nhièn Vi du Hàm tfnh n ! a 0! = b Néun>0,tbìn! = n*(n-1)! Càu hói Hày cbo mot vf du minh boa kbài niém de qui Khài niém giài thuàt de qui: Nèu lòi giài cùa mot tồn T dugc thuc hién bang lịi giài cùa mot tồn T', co dang giịng nhu T tbì dị mot lịi giài de qui Giài thu^t tuong ùng vói lịi giài de qui dugc ggi giài thuàt de qui Hàm de qui: HSmi de qui hay thù bic de qui bao gòm hai phàn: Phàn neo (hay phan co dinh), ùng vói trng hgp suy bièn, ttong tàc dóng cùa hàm dugc dàc tà cho mot hay nhièu tham so Phàn de qui (hay phàn qui ngp, phàn bàe), ttong dò tàc dòng càn dugc thuc hién cho già tri hién thịi cùa càc tham so dugc dinh nghìa bang càc tàc dgng hay già ni dugc dinh ngbTa tmóc day Càu hói Hày néu càc thành phàn cùa hàm de qui tinh n! Trong càc ngịn ngù lap trình càp cao, nèu càc thù tue chùa lòi ggi dén chfnh nị tbì dugc ggi de qui tryrc tiép, néu lịi ggi dèn chinh nị phài thóng qua mot hay mot SÓ tbù tue khàc thi dugc ggi de qui giàn tiép Thiét ké giài thuàt de qui: Xét mot so toàn sau: Vi du Viét hàm dang de qui tfnh n! Tap chikhoa hpc, Tgp 45 So lA (2016) tr 59-6 { néu n = n*(n- l)!néun>0 uiai muai oe qui auge viet duói dang hàm, nhu sau: doublé Giaithua(int n) { if(n = = 0)remm 1; else return (n* Giaithua(n-l)); } W(ÌM'# Cho day Fibonacci: 1, 1,2,3,5,8, 13,21, Hàm Fib tao day co thè dinh nghìa dang de qui: Fib(n)=P néun Giài thuàt de qui dugc viét duói dang hàm int Fib(intn) {if(n