ceng111

4
EEBM7UK, Ankara, 1998 %l/*l6$<$5%l/l0l9(0h+(1’l6/löl1(*l5lø’(56l )21.6l<21(/%l5<$./$ø,0 Halit Göktürk ÜÇOLUK 06531 Ankara ABSTRACT Institutions adopt different approaches to teaching introductory courses in Computer Science and Engineering. There is an ongoing debate regarding the best way of introducing students, both majors and non-majors, to the fundamentals of the discipline. Middle East Technical University Department of Computer Engineering has recently redesigned its introductory course for the majors. The new approach aims at both developing computing literacy and improving skills for abstract procedural thinking. For the latter the functional programming paradigm provides a convenient vehicle. The experience gained from the 1996-97 Fall semester offering, although limited, is found encouraging. önerilen modelle uyumludur. nxn k tane at kullanarak backtracking soyutlama düzeylerinde analiz etme, alternatif çözümler üretme, bu çözümleri bilgisayar üzerinde istenmektedir. bir programlama dilinde kodlama dersine teknolojiler konusunda bilgilendiren bir “genel kültür” soyutlama, veri tipi soyutlama, özyinelemeli veri 3. Niçin Fonksiyonel Programlama?

Upload: celal-yn

Post on 26-Sep-2015

3 views

Category:

Documents


1 download

TRANSCRIPT

  • EEBM7UK, Ankara, 1998

    %/*6$@GH

    VWDQGDUW ELU PIUHGDW PRGHOL ROXWXUPD oDEDODUQQ

    \HQL ELU UQ >@GH \HU DOPDNWDGU hQLYHUVLWH\H \HQL

    EDOD\DQ |UHQFLOHULQ %%0 DODQQGD DOGNODU LON NUHGLOL

    GHUVLQ NDSVDPQQ QH ROPDV YH QDVO ELU \DNODPOD

    YHULOPHVL JHUHNWLL DNDGHPLN oHYUHOHUGH \RXQ RODUDN

    WDUWOPDNWDGU %X ELOGLUL\H NRQX RODQ JLUL GHUVL >@GH

    nerilen modelle uyumludur.

    %X ELOGLULGH GLOH JHWLULOHQ J|UOHUL VRPXWODWUPDN

    DPDF\OD |UHQFLOHULPL]LQ HY |GHYL RODUDN o|]GNOHUL

    ELU SUREOHPGHQ \DUDUODQDFD] 3UREOHP nxnOLN ER ELUVDWUDQo WDKWDVQ HQ oRN k tane at kullanarakNDSODPDNWU 7DKWD ]HULQH NRQXODQ ELU DWQ EXOXQGXX

    YH WHKGLW HWWLL NDUHOHU NDSODQP VD\OPDNWDGU $WODUQ

    ELUELULQL WHKGLW HGLS HWPHPHVL |QHPOL GHLOGLU %X

    SUREOHP LoLQ 6FKHPH GLOLQGH \D]OP ELU SURJUDP

    HNLO GH VXQXOPDNWDGU 6XQXODQ NRG ELU |UHQFLQLQ

    |GHYLQGHQ ED] ELoLPVHO GHLLNOLNOHU \DSODUDN

    X\DUODQPWU .XOODQODQ \|QWHP backtracking HVDVQDGD\DQPDNWDGU %DDUV]ONOD VRQXoODQDQ DGP JHUL

    DOQPDNWD YH EDND ELU DOWHUQDWLI GHQHQPHNWHGLU

    *LUL 'HUVL 1HOHUL $PDoODPDO" .DSVDP 1H

    2OPDO"

    gUHQFL\H ND]DQGUPDN LVWHGLLPL] \HWHQHNOHU NVDFD

    YHULOHQ ELU SUREOHP EHOLUWLPLQL DQODPD SUREOHPL GHLLN

    soyutlama dzeylerinde analiz etme, alternatifzmler retme, bu zmleri bilgisayar zerindeVQDPD YH EX VQDPDQQ VRQXoODUQ GHHUOHQGLUPH

    \HWHQHNOHULGLU 'DKDV |UHQFL EX oDOPD LoLQGH

    \DUDWFON \|QQ NXOODQPDO ]LKLQVHO \HWHQHNOHULQL

    ]RUODPDO \DSW LWHQ ]HYN DOPDO YH HLWLP KD\DWQQ

    EXQGDQ VRQUDNL DDPDODU LoLQ PHUDN YH KHYHVL

    X\DQPDOGU

    gUHQFL NDUODW ELU SUREOHPL oRN VD\GD NoN

    DGPODU DWDUDN GHLO D] VD\GD E\N DGPODU DWDUDN

    o|]PH\H oDOPDOGU gUQHLQ WDKWDQQ EHOLUOL ELU

    NDSODQPD NRQILJUDV\RQXQGDQ \HQL ELU DWQ

    NRQXOPDV\OD EDND ELU NRQILJUDV\RQD JHoLL WHN ELU

    LOHP DGP RODUDN GQHELOPHOL YH EX ILNUL GRUXGDQ

    LIDGH HGHELOPHOLGLU 2 KDOGH |UHQFL\H YHUHFHLPL]

    DUDo RQXQ E\N DGPODU DQODPO DOWSUREOHPOHULQ

    o|]POHUL RODUDN D\U D\U LIDGH HWPHVLQL YH EXQODU

    \DSD\ HQJHOOHUH PDUX] NDOPDGDQ DNF ELU HNLOGH

    ELUOHWLUPHVLQL NROD\ODWUPDOGU .VDFD |UHQFLQLQ

    VHQWH] \DSPD \HWHQHLQL DUWWUDQ ELU DUDo

    istenmektedir.

    *LUL GHUVLQLQ ELU SURJUDPODPD GHUVLQH EXQXQ GD

    bir programlama dilinde kodlama dersineLQGLUJHQPHVLQH NDU\] gUHQFLOHULPL]H JQON

    KD\DWODUQGD NDUODDFDNODU WHNQRORML\L LOHULGH

    DODFDNODU GHUVOHUH VNoD J|QGHUPH \DSDUDN GD ROVD

    WDQWPDN GXUXPXQGD\] 'HUVLQ ELU NVP EX QHGHQOH

    |UHQFL\L EL]]DW NXOODQG YH\D VNoD EDKVLQL GX\GXX

    teknolojiler konusunda bilgilendiren bir genel kltrGHUVL KDOLQGH LOHQPHOLGLU

    gUHQFLOHUH ND]DQGUPD\ DPDoODGP] WHPHO

    NDYUDPODU XQODUGU DOJRULWPD ELU DOJRULWPDQQ ]DPDQ

    YHULPOLOLL |]\LQHOHPH\OH IRQNVL\RQ WDQP

    IRQNVL\RQODU ]HULQGH LOHP \DSPD \RUGDPVDO

    soyutlama, veri tipi soyutlama, zyinelemeli veri\DSODU %X NDYUDPODU YHULUNHQ IRQNVL\RQHO

    SURJUDPODPD SUDWLLQGHQ \DUDUODQOPDO YH |UHQFLOHULQ

    EX NDYUDPODU KLVVHWPHOHUL YH NXOODQPDODU

    VDODQPDOGU

  • EEBM7UK, Ankara, 1998

    3URJUDPODPD GLOL SUREOHPLQ GQ\DV LOH ELOJLVD\DUQ

    GQ\DVQ ELUELULQH EDOD\DQ ELU RUWDP VXQDU 'LO

    LOHPFLVL EX EDODQWQQ JHUHNWLUGLL oHYLUL YHYH\D

    \RUXPODPD LOHYOHULQL \HULQH JHWLULU 'LOLQ SUREOHP

    GQ\DVQD \DNQ ROPDV ELU \DQGDQ o|]P

    \|QWHPLPL]L LIDGH HWPHPL]L YH EXQX GLHU LQVDQODUD GD

    LOHWPHPL]L NROD\ODWUUNHQ |WH \DQGDQ ELOJLVD\DU

    ND\QDNODUQ HQ YHULPOL HNLOGH NXOODQPDP]

    ]RUODWUU 'LOLQ ELOJLVD\DUQ GQ\DVQD \DNQ ROPDV

    LVH WHUVLQH ELU HWNL \DUDWU %X WDUWPD NDSVDPQGD

    \HOSD]HQLQ DOW XFXQGD ELUOHWLULFL GLOOHULQL VW XFXQGD

    LVH NVW SURJUDPODPD GLOOHULQL GQHELOLUL] %LOJLVD\DU

    ND\QDNODUQ YHULPOL HNLOGH NXOODQPDN ELUoRN

    endstriyel uygulama iin kritik neme sahiptir vePKHQGLVOLN HLWLPLQLQ EXQX J|]DUG HWPHVL

    GQOHPH] $QFDN EDODQJo G]H\LQGH YHULPOLOLN

    NDYUDPQQ DVLPWRWLN DQODP\OD VQUO WXWXOPDV

    \HWHUOLGLU ON GLOLQ \HOSD]HQLQ DOW XFXQD \DNQ LPSHUDWLI

    ELU GLO ROPDV %DVLF 3DVFDO )RUWUDQ & YE |UHQFLQLQ

    VR\XW GQPH JFQ NVWOD\F ELU HWNL \DSPDNWDGU

    oQN |UHQFL SUREOHPLQ o|]PQ GN VR\XWODPD

    G]H\LQGHNL LOHPOHU FLQVLQGHQ LIDGH HWPH\H

    ]RUODQPDNWDGU

  • EEBM7UK, Ankara, 1998

    |UHQFLOHU GLOLQ \D]P NXUDOODUQ ]DKPHWVL]FH

    |UHQPHNWHGLUOHU ON GHUV VDDWLQLQ VRQXQGD EDVLW

    PDWHPDWLNVHO KHVDSODPDODU \DSDU GXUXPD

    JHOPHNWHGLUOHU 'DKD VRQUD GLOLQ ELU |]HOOLL WDQWOUNHQ

    EXQD LOLNLQ V|]GL]LP \DSV |UHQFLOHUL

    DUWPDPDNWDGU oQN VHQWDNV GLOL WDVDUOD\DQODUQ

    HVWHWLN DQOD\QD EDO WHUFLKOHUOH GHLO PLQLPDOLVW

    LONH\H J|UH EHOLUOHQPHNWHGLU 9HUL WLSOHULQLQ VDGHOLL YH

    GLQDPLN RODUDN GHQHWOHQPHVL GLO LOHPFLVLQLQ K]

    JHUHN GLO LOHPFLVLQLQ UHWLL NRGXQ K]OO JHUHNVH GLO

    LOHPFLVLQLQ NHQGL LLQL GDKD K]O YH NROD\ \DSPDV

    DQODPQGD ND\JVQGDQ ND\QDNODQDQ D\UPODUOD

    |UHQFLQLQ NDIDVQQ PHJXO HGLOPHPHVLQL

    VDODPDNWDGU gUQHLQ |UHQFLQLQ WDPVD\ UHHO VD\

    D\UPQ |UHQPHVL GHLNHQOHULQL EXQD J|UH

    WDQPODPDV YH EX IDUN KHU DQ NDIDVQGD FDQO

    WXWPDV VD\VDO KDVVDVL\HW V|] NRQXVX ROPDGNoD

    gerekmemektedir. te yandan prefix notasyonuLOHoOHULQ |QFHOLN YH ELUOHPH |]HOOLNOHULQL KDWUGD WXWPD

    VRUXQXQX RUWDGDQ NDOGUPDNWDGU .VDFD ]RUXQOX ELU

    nedeni olmayan, sadece konvansiyon olarak|UHQLOPHVL JHUHNHQ NXUDOODU HQ D]D LQGLUJHQPLWLU

    %|\OHFH |UHQFL WP GLNNDWLQL o|]P \|QWHPLQLQ

    PDWHPDWLNVHO |]QH \RUGDPVDO ELU EDN DoV\OD

    yneltebilmektedir.

    (WNLOHLPOL RUWDP 'LOLQ JHUoHNOHWLULPLQGH VNoD

    L]OHQHQ \RO \RUXPODPDGU (length aciklar) (* 9 k)) 'basarisiz)

    ((null? hamleler) 'basarisiz) (else (let ((alt-cozum (yerlestir (- k 1) (kalan aciklar (car hamleler)) (cdr hamleler)))) (if (equal? alt-cozum 'basarisiz) (yerlestir k aciklar (cdr hamleler)) (cons (car hamleler) alt-cozum))))))

    ; 'konum' konumuna bir atin konulmasindan; sonra acik 'kalan' kareler:(define (kalan aciklar konum) (let ((kapali (kapat konum))) (filter (lambda (a) (not (member a kapali))) aciklar)))

    ; 'konum' karesindeki atin kapattigi; kareler:(define (kapat konum) (let ((sutun (car konum)) (satir (cdr konum))) (list konum (cons (- sutun 1) (- satir 2)) (cons (- sutun 1) (+ satir 2)) (cons (+ sutun 1) (- satir 2)) (cons (+ sutun 1) (+ satir 2)) (cons (- sutun 2) (- satir 1)) (cons (- sutun 2) (+ satir 1)) (cons (+ sutun 2) (- satir 1)) (cons (+ sutun 2) (+ satir 1)))))

    ;;; Destekleyici Fonksiyonlar; l1 ve l2 kmelerinin kartezyen carpimi:(define (carp l1 l2) (if (empty? l1) '() (append (map (lambda (s) (cons (car l1) s)) l2) (carp (cdr l1) l2))))

    ; [p,q] tamsayi araligini uret:(define (aralik p q) (if (> p q) '() (cons p (aralik (+ p 1) q))))

    ; n1xn2 boyutlarinda bos bir tahta yarat:(define (bos-tahta n1 n2) (carp (aralik 1 n1) (aralik 1 n2)))

    (./ gUQHN ELU 6FKHPH SURJUDP

  • EEBM7UK, Ankara, 1998

    %LU SURJUDPODPD GLOLQL HLWLP DPDoO NXOODQUNHQ

    \HQL EDOD\DQ |UHQFL\H ED] VW G]H\ YHUL WLSOHUL

    |UQHLQ GRDO GLOOHUOH LOJLOL RODUDN NHOLPH FPOH JLEL

    YHUL WLSOHUL VXQXOPDV |UHQFLQLQ GLOLQ DQODOPDV

    QLVSHWHQ ]RU D\UQWODUQD ERXOPDGDQ LOJLQo

    SUREOHPOHUOH XUDPDVQ VDODPDNWDGU 'HUVLQ LOHUL

    DDPDODUQGD EX YHUL WLSOHULQLQ \LQH GLOLQ NHQGL

    RODQDNODU\OD QDVO JHUoHNOHWLULOGLLQL J|VWHUPHN KHP

    |UHQFLQLQ WHNQLN ELOJLVLQL SHNLWLUPHNWH KHP GH

    |UHQFL\H X\JXODPD DODQQD X\JXQ |]HO QRWDV\RQ

    \DUDWPD NDYUDPQ KLVVHWWLUPHNWHGLU 6WDQGDUG GLOL

    ELOHQ RNX\XFXODUQ LQFHOHPHVLQL NROD\ODWUPDN

    DPDF\OD HNLO GHNL SURJUDPGD |UHQFLOHUH

    VDODQDQ NXOODQP GDKD NROD\ IRQNVL\RQODU \HULQH

    EXQODUQ VWDQGDUG NDUONODUQD \HU YHULOPLWLU

    5. ODT Deneyimi2UWD 'RX 7HNQLN hQLYHUVLWHVL %LOJLVD\DU 0KHQGLVOLL

    %|OP |UHWLP \OQQ ELULQFL G|QHPLQGHQ

    EDOD\DUDN &(1* NRGOX %LOJLVD\DU 0KHQGLVOLL

    .DYUDPODUQD *LUL GHUVLQLQ \HQL \DNODP YH LoHULNOH

    YHULOPHVLQL EHQLPVHGL %X ELOGLULQLQ \D]DUODU o

    DUDWUPD J|UHYOLVLQLQ \DUGP\OD GHUVL \UWWOHU

    ELULQFL VQI |UHQFLVL LNL JUXS KDOLQGH KDIWDGD o VDDW

    GHUVH JLUGLOHU EH JUXS KDOLQGH KDIWDGD LNL VDDW L

    LVWDV\RQX ODERUDWXYDUQGD oDOWODU %X ODERUDWXYDUQ

    LPNDQODU 6XQ L LVWDV\RQX YH ELU GRV\D

    VXQXPFXVXQGDQ ROXPDNWDGU /DERUDWXYDU VDDWOHUL

    GQGD |UHQFLOHU E|OPQ YH QLYHUVLWHQLQ GLHU

    RODQDNODUQGDQ |]HOOLNOH 3& ODERUDWXYDUODUQGDQ

    \DUDUODQGODU

    '|QHPLQ LON G|UW KDIWDVQGD ELOJLVD\DU PLPDULVL

    LOHWLP VLVWHPL YH GLHU VLVWHP \D]OPODU DQD

    KDWODU\OD GHUVOHUGH DQODWOG /DERUDWXYDU VDDWOHULQGH

    |UHQFLOHUH ELOJLVD\DUQ WHPHO SDUoDODU WDQWOG 8QL[

    LOHWLP VLVWHPL ; SHQFHUHOHPH RUWDP YH EXQGDQ

    VRQUD VNoD NXOODQDFDNODU SURJUDPODU

    vi editr, tin,elm YE KDEHUOHPH \D]OPODU JLEL WHPHO NXOODQPG]H\LQGH |UHWLOGL

    '|QHPLQ NDODQ RQ KDIWDV ER\XQFD IRQNVL\RQHO

    SDUDGLJPD\D GD\DO RODUDN WHPHO SURJUDPODPD HLWLPL

    \DSOG %X DDPDGD GHUV NLWDE RODUDN >@ \DUGPF

    ND\QDN RODUDN >@ NXOODQOG gUHQFLOHU GHUVOHUGH

    NDYUDPODUOD WDQWODU ODERUDWXYDUGD EX NDYUDPODU

    JHUHNWLUHQ SUREOHPOHUL ELOJLVD\DU EDQGD ELUH\VHO

    oDODUDN DVLVWDQODUQ J|]HWLPL DOWQGD o|]GOHU

    3UREOHPOHUGH VD\VDO YH VHPEROLN KHVDSODPD\D HLW

    DUON YHULOGL

    gUHQFLOHULQ NDUQH QRWODU o HY |GHYL ODERUDWXYDU

    |GHYOHUL LNL DUD VQDY YH ELU ILQDO VQDYQQ ELOHNHVL

    RODUDN RUWD\D oNW 2UWDJHoHU DQODPQD JHOHQ && YH

    ]HULQGH QRW DODQODU RUDQQGD\NHQ GHUVL

    WHNUDUODPDN ]RUXQGD NDODQODUQ RUDQ GD NDOG

    gUHWLP HOHPDQODU YH |UHQFLOHU DUDODUQGD

    NHVLQWLVL] LOHWLLP LoLQ E|OPQ RUWDN GRV\D VLVWHPLQGH

    NXUXOX ELU KDEHUOHPH JUXEXQGDQ HOHNWURQLN SRVWD

    RODQDQGDQ YH world wide webGHQ \DUDUODQGODU

    (Ders ile ilgili www VD\IDVQDhttp://www.ceng.metu.edu.tr 85/LQGHQ XODODELOLU

    %|OPGH D\Q G|QHP YHULOHQ &(1* NRGOX

    \|QOHQGLUPH GHUVL D\Q |UHQFL JUXEXQD ELOJL

    WHNQRORMLOHUL ELOJLVD\DU PKHQGLVOLL GLVLSOLQL YH

    PHVOHL QLYHUVLWH YH E|OP KDNNQGD WDQWF ELOJLOHU

    YHUPHVLQLQ \DQVUD ELOJLVD\DU RNXU\D]DUO ,QWHUQHW

    NXOODQP JLEL EHFHULOHU GH ND]DQGUDUDN &(1*

    dersini btnledi.

    Bir dnemlik deneyim kesin sonulardan sz etmekLoLQ HOEHWWH NL NVDGU OHUL VQIODUGDNL |UHQFLOHULQ

    |]POHPHNWH ]RUODQG NDYUDPODU \HQL EDOD\DQ

    |UHQFLOHULQ E\N ELU GRDOONOD EHQLPVH\LS

    NXOODQGNODUQ J|UGN $NDGHPLN EDDUODUQQ

    |WHVLQGH |UHQFLOHULPL]GH G|QHP ER\XQFD

    J|UGP] HYN YH KH\HFDQ GRUX \ROGD

    ROGXXPX]D GDLU EL]GH ELU NXNX EUDNPDPWU

    7((..h5

    'HUVLQ LOHQLLQGH |QHPOL NDWNODU RODQ DUDWUPD

    J|UHYOLOHUL ONHU $OWQWD 6HOoXN HQNXO YH +DVDQ

    8OXVR\D WHHNNU HGHUL]

    REFERANSLAR

    1. Hartmanis, J. (editor) Computing the future.Summary report of the Committee to Assess theScope and Direction of Computer Science andTechnology of the National Research Council,Communications of the ACM 35, 11 (November1992), 30-40.

    2. Walker, H.M. and Schneider, G.M. A revisedcurriculum for a liberal arts degree in computerscience, Communications of the ACM 39, 12(December 1996), 85-95.

    3. Clinger, W. and Rees, J. (editors) Revised4 Reporton the Algorithmic Language Scheme. November1991. Available from URL: http://www-swiss.ai.mit.edu/scheme-home.html.

    4. Harvey, B. and Wright, M. Simply Scheme:Introducing Computer Science. MIT Press,Cambridge, Massachusetts, 1994. ISBN 0-262-08226-8.

    5. Friedman, D.P. and Felleisen, M. The LittleSchemer. MIT Press, Cambridge, Massachusets,1996 (4th edition). ISBN 0-262-56099-2.