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

    Ödevler

  • 1.Hafta Ödevi
  • 2.Hafta Ödevi
  • 3.Hafta Ödevi
  • 4.Hafta Ödevi
  • 5. Hafta Ödevi
  • Ö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)

    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