T.C. Ýstanbul Ticaret Üniversitesi

Bilgisayar Mühendisliði Bölümü

Programlama dilleri ve Algoritmalara Giriþ (Introduction to programming and algorithms)

Dersi Veren: Þadi Evren ÞEKER (Yük. Müh.)

Dersin Web Sitesi: www.sadievrenseker.com/prog

Dersin Öðrenci Ýletiþim Sitesi : www.sesders.com

Email Adresi:prog [at] sesders.com

Dersin Amacý:

Bu dersin amacý, programlama mantýðýnýn ve algoritma kavramýnýn öðrencilere tanýtýlmasýdýr. Bu dersin sonunda öðrencilerin problemleri programcý gözüyle analiz edebilmeleri, probleme uygun çözüm tasarlayabilmeleri ve bu tasarýmlarýný bir programlama diliyle hayata geçirebilmeleri beklenir. Derste C dili öðretilecektir.

Olasý Ders Ýçeriði

·         Programlamaya giriþ ve temel kavramlar

·         Basit bir uygulama geliþtirilmesi ve derlenmesi ve basit bir programýn bileþenleri

·         C Dilinde bulunan temel operatörler

·         Akýþ Diyagramlarý ve Akýþ mantýðý (akýþ diyagramlarý) ve dallanma ve mantýksal operatörler

·         Döngüler ve Fasit Daire

·         Diziler ve Dizgiler

·         Fonksiyonlar ve Özyineli Fonksiyonlar

·         Göstericiler ve Fonksiyon Göstericileri (Pointers)

·         Dosya iþlemleri

·         Algoritma performansý ve arama ve sýralama algoritmalarý

·         Temel veri yapýlarý

Uygulama Gereksinimleri

Dersin tatbiki kýsmý için C dili üzerinde kod geliþtirilecektir. Kod geliþtirme ortamý olarak DEV C++ kullanýlacaktýr.

Bu ortamýn kurlumu ve kullanýmý konusunda derslerde bilgi verilecektir ancak öðrenciler farklý ortam ve dilleri ve geliþtirme ortamlarýný kullanabilirler. Bu farklý ortam ve dillerin ve ortamlarýn ödev veya proje gibi not karþýlýðý olan teslimler sýrasýnda kullanýlmasý için ise önceden izin alýnmasý gerekmektedir.

Derste yazýlan kodlar

  • 1. Hafta, klavyeden okuma, ekrana yazdýrma, deðiþken ve basit operatör örnekleri
  • 1. Hafta, basit dallanma, koþul ve blok yapýlarý
  • 1. Hafta, basit konular ile ilgili örnekler
  • 1. Hafta, döngü örnekleri
  • Sayý oyunu
  • Asal sayý bulan kod
  • Diziyi ters çeviren kod
  • Derste yazýlan örnek kodlardan bir derleme (12 kasým dersinden)
  • Derste yazýlan fonksiyon konusuna örnek kodlar
  • Recursive (Özyineli) fonksiyon örnekleri
  • String (Dizgi) örnekleri
  • Dosya (file) örnekleri
  • Dosya (file) ile ilgili 2. hafta örnekleri
  • pointer örnekleri
  • Atýf ile çaðýrma (Call by Reference) örnekleri

    Ödevler

  • 1.Hafta Ödevi
  • 2.Hafta Ödevi
  • 3.Hafta Ödevi
  • 4.Hafta Ödevi
  • 5. Hafta Ödevi
  • 6. Hafta Ödevi (8 ocaða kadar uzatýlmýþtýr)
  • 7. Hafta Ödevi(8 ocaða kadar uzatýlmýþtýr)
  • ÖRNEK SORULAR (ÖDEV DEÐÝLDÝR) isteðiniz üzerine antreman yapabileceðiniz sorular koyuyorum
    Çarþamba grubu yukarýdaki 3. ve 4. ödevleri 18 Kasým 2008 tarihine kadar yollayacaktýr. 19 kasým dersinde quiz ve geçmiþ ödevlerin çözümü yapýlacaktýr.

    Vize sýnavýnýn sorular ve çözümü
    Vize Quizinin Sorularý ve Çözümü (Çarþamba Grubu)
    Vize Quizinin Sorularý ve Çözümü (Perþembe Grubu)
    Final Quizinin Sorularý ve Çözümü (Her iki grup için de (1. soru dýþýndaki sorular ortaktýr))
    Projeleriniz Duyurulmuþtur

    Dersin Projesi

  • Projelerinizin teklif mektubunu en geç 19 Aralýk 2008 (Cuma günü) gece yarýsýna kadar yollayabilirsiniz.
  • Teklif mektubunuzda projenizi tanýtýnýz, projede izlemeyi düþündüðünüz adýmlarý yazýnýz. Karþýlaþmayý tahmin ettiðiniz problemleri ve tasarladýðýnýz çözümleri yazýnýz. Ve hepsinden önemlisi derste iþlenen hangi konuyu nasýl kullanacaðýnýzý açýkça belirtiniz.
  • Teklif mektubunuzu yollamanýz baþlayabileceðiniz anlamýna gelmez, size belirli bir incelemeden sonra uygun olup olmamasý ile ilgili cevap gelecektir. Ancak uygun bulundu mesajýndan sonra projenize baþlayabilirsiniz.
  • Teklif mektubu onaylanmayanlar verilen tarihe (19 aralýk) kadar farklý proje önerilerinde bulunabilirler.
  • 19 Aralýk tarihine kadar projesi belirlenmeyen veya hiç teklifte bulunmayanlara sistem tarafýndan otomatik olarak havuzdan proje atanacaktýr.
  • Gerek proje teklifi ile gerekse otomatik atama ile proje alanlarýn 19 Aralýktan sonra proje deðiþtirmeleri kesinlikle mümkün deðildir.
  • 16 Ocak 2009 tarihi gece yarýsýna kadar projenizin dökümanýný (aþaðýda açýklanacaktýr) ve kodunu yollayýnýz. Bu tarihten sonra yollanan rapor ve kodlar deðerlendirmeye alýnmayacaktýr. Mümkünse bu tarihe kadar býrakmayýp daha önce yollayýnýz.
  • Final tarihleri içerisinde uygun olan zamanlarda sunum için randevü sistemi, tarih yaklaþýnca sesders.com adresinde açýlacaktýr, bu adresten size uygun bir tarih seçip randevü alýnýz. Bu randevüda projenizin demosunu yapacaksýnýz.
  • Projenizin rapor ve kod yollanmasý iþlemi sesders.com adresinden yapýlacaktýr. Teklif mektuplarýnýzý dersin email adresine yollamanýz gerekmektedir.
  • Her projeyi tek kiþi alabilir, grup projelerine izin verilmemektedir.
  • Bir proje, bir kiþi tarafýdan seçildiyse ikinci bir kiþi bu projeyi alamaz, burada ilk gelen alýr algoritmasý kullanýlacaktýr.
  • Örnek Proje dökümanlarý için týklayýnýz. Bu dökümanlar derste de söylediðim gibi tamamen fikir vermesi içindir bunlarýn dýþýnda eklemeniz gereken þeyler varsa ekleyebilirsiniz. ayrýca analiz ve tasarým için daha önceden vermiþ olduðum ders notlarýna bakabilirsiniz:
  • analiz notlarý
  • tasarým notlarý

    Ders saati ve yeri

    Çarþamba günleri saat 14-15.00  arasý 244 numaralý derslik

    Çarþamba günleri 15-17.00 arasý 142 numaralý derslik

    Perþembe günleri 13-15.00 arasý  224-225 numaralý laboratuarlar

    Perþembe günleri 15-17.00 arasý 142 numaralý laboratuarlar

    Dersin deðerlendirmesi:

    ·         Ödevler %10

    ·         Quizler&Classwork %10

    ·         Arasýnav %20

    ·         Dönem Projesi %20

    ·         Final %40

    Uyulmasý gereken önemli kurallar:

    1.       Öðrencilerin dersin web sitesini takip etme zorunluluðu vardýr. Ders ile ilgili duyurular, ders notlarý ve gerekli olan materyaller bu site üzerinden saðlanacaktýr.

    2.      Öðrencilerin ödev, proje ve sunum teslimi ve bu teslimler sýrasýnda gereken saatlerin belirlenmesi gibi dersin iþletilmesine iliþkin iþlemler, dersin öðrenci iletiþim sitesi üzerinden yapýlacaktýr. Her öðrenci derse geldiði ilk günden itibaren bu site üzerinden bir kullanýcý oluþturmak ve ders boyunca yapacaðý teslimleri bu site üzerinden yapmak zorundadýr.

    3.      Teslim edilen çalýþmalar veya öðrencinin baþarý notu ile sonuçlanacak herhangi bir çalýþmada dersi alan diðer öðrenciler veya internet üzerindeki herhangi bir kaynak veya basýlý herhangi bir kaynak ile akademik kurallar çerçevesinde uygun atýf verilmediði taktirde teslim edilen bu çalýþma kopya kapsamýnda deðerlendirmeye alýnacak ve ilgili disiplin maddesi iþletilecektir.

     


  • Duyurular:



    1. Nokta: Ödevler verildiði tarihte gece yarýsýna kadar yollanabilir. Bu durumda Çarþamba grubundaki öðrencilerin gece yarýsýna kadar vakti bulunmaktadýr. (Gelen maillerden bu konunun yanlýþ anlaþýldýðýný görüyorum). Zaten tarih dolunca sistem otomatik olarak kapanacaktýr. Dolayýsýyla siz dosyayý yollayabildiðiniz sürece vaktiniz var demektir.
    2. Nokta: Geç kaydolan öðrenciler bulunmaktadýr ve bu öðrencilerin aktivasyonunu yaptým. (bugün sabah 3.00 am ve bu mailin atýldýðý saat 14.52 itibariyle onaylanmamýþ öðrenci bulunmamaktadýr).
    3. Nokta: Email ile attýðýnýz ödevler, ilgili kopya kontrolü, arþivleme ve notlamanýn bir kýsmýný otomatik olarak yapan programýma gelmediði için kabul edilmemektedir. Lütfen ödevlerinizi sesders.com sistemi üzerinden yollayýnýz. Email ile hiçbir þekilde ödev teslimi kabul edilmeyecektir (zaten buna da gerek yoktur)
    4. Nokta: Sorularýnýzý ve mesajlarýnýzý sesders.com sistemindeki mesaj|soru gönder düðmesi altýndaki soru formundan yollayabilirsiniz ayrýca email atmanýza gerek yoktur. (yine saat 14.52 itibariyle cevaplanmamýþ soru bulunmamaktadýr)
    5. Nokta: Ödevde çok sorulan 1. Soruda birden fazla döngüye gerek yoktur. Öðrendiðiniz konular kesinlikle verilmiþ olan ödevi için yeterlidir. Ders olsaydý sizlere bu konuda bir iki örnek anlatacaktým ancak mail ile bir örnek kod yolluyorum:
    
    for(int i = 0;i<10;i++){
    
    	printf(“%d %d %d”,i,i*2,i*i);
    
    }
    
    

    Bakýn yukarýdaki döngüde tek deðiþken (i) ve tek döngü kullanýlmýþtýr. Bu kod basitçe ekrana aþaðýdaki sonucu basar:
    0 0 0
    1 2 1
    2 4 4
    3 6 9
    4 8 16
    5 10 25
    6 12 36
    7 14 49
    8 16 64
    9 18 81

    Görüldüðü üzere birden fazla sayýyý tek döngü ve tek deðiþken ile ekrana bastýrmak mümkündür. Yapmanýz gereken sadece her kolon için ilgili formülü yazabilmektir.
    Sanýrým bu açýklamalar yardýmcý olacaktýr.

    Herkese baþarýlar