Öğrencilerin soru sorup yanıt alabileceği bir soru cevap sistemi sunulmaktadır. Ders duyuruları, öğrenci soruları ve cevapları için bir platformdur. Aşağıdan erişebilirsiniz.
2019-2020 Yılı Verilen Projeler ve Öğrencilerin Hazırladığı Proje Teslim Dosyaları:
Yapay Zeka ile Kanser Tespiti
Bu proje yapay zeka uygulamalarında kullanılan bir algoritma olan kNN (k Nearest Neighborhood, En Yakın k Komşu) algoritması gerçeklenecektir. Gerçeklenen algoritma ile, UC Irvine Üniversitesi’nin sağlamış olduğu Göğüs Kanseri verileri işlenecektir. Hasta olup olmadığı belli olmayan bir kişinin verileri sisteme beslenerek, hastalık tahmini yapılacaktır.
Bu projede görüntü işleme uygulamalarında sıklıkla kullanılan bazı filtreler gerçeklenecektir. Filtreler, görüntüyü yumuşatma, görüntüdeki gürültüleri azaltma, kenar bulma, görüntü keskinleştirme ve inceltme olarak sıralanabilir.
Tarihte ilk bilinen şifreleme yöntemi olan Sezar şifreleme yöntemi ile şifreleme ve çözme yapılacaktır. Bu şifrede, her harf o harften birkaç sonraki harf kullanılarak yazılır. Bir metin içeren dosya okunup, şifrelenerek kaydedilecektir. Şifrelenmiş dosyalar çözülerek kaydedilecektir.
RLE (Run Length Encoding) kayıpsız bir sıkıştırma yöntemidir. Birçok büyük sıkıştırma algoritmasının alt algoritmalarındandır (Örn. JPEG sıkıştırma). Veri içindeki tekrarları tespit eder ve tekrarları ortadan kaldırarak veri boyutunu azaltır. Bu projede verilecek test dosyası RLE algoritması ile sıkıştırılarak kaydedilecek. Sıkıştırılmış olan dosya tekrar çözülerek orijinal dosya geri elde edilecektir.
Pong Oyunu, 2 boyutlu grafiklere sahip bir tenis oyunudur. Tek kişilik bir oyundur. Bilgisayar’a karşı yarışılır. Görsel içeriğin hazırlanması için SDL (Simple DirectMedia Layer) kütüphanesi kullanılmaktadır. Verilen başlangıç tasarımının üzerine bilgisayar’ın otonom hareketlerini yapacak bir algoritma geliştirilecektir.
Adam asmaca oyunu, daha önceden belirlenmiş olan bir kelimenin tahmin edilmesine dayalı bir oyundur. Oyun başladığında belirlenmiş olan gizli kelimenin harflerinin kullanıcıdan tahmin edilmesi istenmektedir. Kelimenin harfi doğru tahmin edildiğinde ilgili harfler yerleri ile birlikte gösterilir. Yanlış tahmin edildikçe ekrana adım adım asılan bir adam çizdirilir.
Bu dersin amacı algoritma tasarımı, analizi ve optimizasyonu yapabilme becerisi kazandırmaktır. Ders kapsamında problem çözme, C dili ile çeşitli algoritma geliştirme yöntemleri aktarılmaktadır. Kontrol yapıları, döngüler, fonksiyonlar, diziler, işaretçiler kullanılarak bilgisayar programlarının tasarımları öğretilmektedir. Dosya işleme, yapılar ve kullanım alanları, yeniden kullanılabilir kod kavramı ve verimli kod geliştirme kavramları hakkında bilgi verilmektedir.
Ders Saatleri (Teorik + Lab)
Salı 09.00-13.00
Öğretim Elemanları ve Ofis Saatleri
Dr. Öğr. Üyesi Vecdi Emre Levent, Ofis 311 – Pazartesi 17.00-18.00, Salı 16.00-17.00
Dersin referans kaynakları aşağıda listelenmektedir.
Kernighan & Ritchie, The C Programming Language, Prentice Hall
Deitel & Deitel, C How to Program, Prentice Hall
Problem Solving & Programming Design In C, Fourth Edition, Jeri R. Hanly and Elliot B. Koffman
Introduction to Algorithms, Third Edition, T.H. Cormen, C.E. Leiserson, R.L. Rivest and C. Stein, MIT Press
Yazılımlar
C dili ile geliştirilecek olan uygulamalar, Visual Studio Community kullanılarak derlenecektir.
Dersler
Dersin haftalık 2 saat teorik, 2 saat laboratuvar bölümü bulunmaktadır. Öğretim üyesi tarafından verilen ders materyallerinin ders öncesi incelenip, ders sonrasında ise tekrar edilmesi beklenmektedir.
Öğrenim Çıktıları
Bir problemin birden çok çözüm yöntemini kıyasyabilme
Basit veri yapılarıyla algoritma kurma becerisi
Yeniden kullanılabilir ve optimize kod tasarımı
Özyinelemeli fonksiyonlar ile tasarım
C dili ile algoritma geliştirme kabiliyeti
Quizler
Dönem içerisinde iki adet quiz yapılacaktır. 30 dk süre verilecektir. Quiz tarihi bir hafta önceden duyurulacaktır.
Notlandırma
Derslere %80 oranında devam zorunludur.
Dönem notu; vize, lablar, ödevler, proje ve final sınavı ile belirlenecektir. Değerlendirme yüzdeleri aşağıdaki tabloda verilmiştir.
Faaliyetler
Oranlar
Vize
%15
Ödev/Quiz
%10
Lab
%15
Proje
%40
Final
%20
Bonus
5 Puan’a kadar
Ödev ve quizlerin teslim saati üzerinden her geçen saat için 5 puan kesilecektir.
Dönem sonu notunun karşılık geldiği ağırlık ve harf notu aşağıdaki tabloda verilmiştir.
Dönem Notu
Ağırlık
Harf Notu
90-100
4.00
AA
85-89
3.50
BA
80-84
3.00
BB
75-79
2.50
CB
65-74
2.00
CC
50-64
1.50
DC
45-49
1.00
DD
0 -44
0
FF
Beklenen Efor
Öğrencinin dönem içinde göstermesi beklenen efor tablosu aşağıda verilmiştir.
İçerik
Saat
Kaç Defa
Ara Toplam
Derse Hazırlık
2
14
28
Ders Tekrarı
2
14
28
Ödev
4
6
24
Proje
48
1
48
Sınıf Dersi
4
14
56
Ara Sınav ve Final
3
2
6
Öğrenciler dersten başarılı olmak için dönem boyunca ortalama 190 saat harcamaları beklenmektedir.
Verilecek her bir ödev için test girişi ve beklenen çıkışlar paylaşılacaktır. Ancak ödev kontrolü yapılırken sizinle paylaşılmamış başka test durumları da denenecektir. Çalışma zamanı, beklenenden çok uzun süren kodlar yanlış olarak değerlendirilebilir.
Teori
Kod, istenen algoritmanın tasarımı olmalıdır. En optimum çözüm beklenmemektedir. Ancak bellek ve çalışma zamanı beklenenden çok fazla olmamalıdır.
Yazılı Ödevler
Ödev kendi el yazınız ile yazılmalıdır. Ödev cevap kağıtının üzerinde, dersin adı, öğrenci adı ve soyadı, öğrenci numarası ve tarih bulunmalıdır.
Akademik Dürüstlük
Ödevin amacı, ders hakkında derinlemesine araştırma yapmayı öğrenmek ve pratik bilgiler kazanmayı sağlamaktır. Verilen ödevler hakkında, diğer öğrenciler ile birlikte çalışma teşvik edilmektedir. Çalışma grubu oluşturan öğrenciler, kendi başına çalışan öğrencilere göre sınavlarda daha başarılı olmaktadırlar.
Ancak bir ödevi çözmek için başkaları ile birlikte çalışsanız bile, her bir sorunun çözümünü yardım almadan kendiniz yapmalısınız. Çözümünüzü bir araştırma yolu ile elde ederseniz (örn. bir internet araması), çözümü kendi cümle ve/veya kodunuz ile ifade etmelisiniz. Çözümü sözlü olarak sorulduğunda, öğrencinin açıklayabilmesi beklenmektedir.
Verilen ödev bir kod ise, kendinizin yazması gerekmektedir. Hata ayıklamada başkalarından yardım alabilirsiniz. Kodda intihal tespiti için manuel ve otomatik mekanizmalar kullanılacaktır. İntihal, sınav içi kopya ve benzeri davranışlar disiplin yönetmeliğine göre cezalandırılır.
Important Note: Some links may be broken, if you send me an e-mail I can send you the file.
Course Description: Bu dersin amacı algoritma tasarımı, analizi ve optimizasyonu yapabilme becerisi kazandırmaktır. Ders kapsamında problem çözme, C dili ile çeşitli algoritma geliştirme yöntemleri aktarılmaktadır. Kontrol yapıları, döngüler, fonksiyonlar, diziler, işaretçiler kullanılarak bilgisayar programlarının tasarımları öğretilmektedir. Dosya işleme, yapılar ve kullanım alanları, yeniden kullanılabilir kod kavramı ve verimli kod geliştirme kavramları hakkında bilgi verilmektedir.
Von Neumann mimarisinde geçen 5 temel yapı nedir? Görevlerini açıklayınız.
Bellek ve işlem ünitesi arasındaki ilişkiyi açıklayınız. İşlem ünitesi çıktıları neden belleğe kaydedilmektedir?
PC(Program Counter) nedir? İşlemci mimarisindeki görevi nedir?
32 bitlik bir işlemcide, bir komutun formatı aşağıdaki gibidir.
Bu işlemcide 60 adet komut ve 32 saklayıcı varsa, IMM (immidiate) bitleri için kaç bit kalmaktadır. Kalan bit genişliği ile ikilik tümleyen formatta ifade edilebilecek sayı aralığı nedir?
32 bitlik bir işlemcinin aşağıda komut formatı verilmektedir.
Bu işlemcide 195 adet komut ve 120 saklayıcı var ise;
OPCODE için minimum bit genişliği nedir?
DR(Destination Register) için minimum bit genişliği nedir?
UNUSED bitleri için maksimum bit genişliği nedir? (Diğer tüm alanların minimum olduğu durum)
İşlemci komut yakalama (fetch) aşamasında yaptığı işlemleri açıklayınız.
Bir komutun işlenmesi için komut yakalama ile başlayıp, gerekli 6 aşama nedir? Bu aşamalarda ne yapılmaktadır?
Aşağıdaki komutlar için
ADD 100 101 // Bu komut 100 ve 101. adreslerdeki değerleri toplayıp 100. adrese yazmaktadır. İşlemcinin işlemlerini gerçekleştirdiği 6 adımlı işleme göre bu komut çalıştırılırken hangi aşamada ne yapılmaktadır?
Eğer bir komutun işlem süresi 2 nanosaniye ise ve tüm işlemler aynı zaman tutuyorsa, bu işlemci saniyede kaç operasyon çalıştırabilir?
Bir işlemcinin saat çevrim (clock cycle) periyodu 2 nanosaniye, bir komutu işlemesi 8 saat çevirimi sürüyorsa ve tüm işlemler aynı zaman tutuyorsa, bu işlemci ile saniyede kaç operasyon yapılır?
Bilgisayar Mimarisi: LC3 Komut Kümesi
İşlemci bir adresi 8 bitlik olan 4GB’lık bir RAM’e bağlıdır. MAR (Memory Adress Register) ve MDR (Memory Data Register) bit genişlikleri kaçtır?
256 lokasyonlu olan ve her bir lokasyonunda 16 bit veri taşınan bir RAM’de, adres biti genişliği nedir?
LC3 işlemcisinin adresleme modları nedir? Farklı modların birbirlerine göre avantajları nelerdir?
Aşağıdaki verilen LC3 komutları birbiri ile aynı işi mi yapıyorlar? Açıklayınız.
İkilik tümleyen formatta olan 0001 ve 11 sayısını toplayınız.
İkilik tümleyen gösterim formatının, işaret bitli gösterim formatına göre avantajı nedir? Neden dijital tasarım dünyasında bu gösterim tercih ediliyor?
A ve B isminde 8 bitlik değeri bilinmeyen iki sayı olsun. Bu iki sayı XOR işlemi yapıldığında,
A^B = 00110100 Ve (AND) işlemi yapıldığında, A&B = 11001001
sonuçları elde ediliyor. A + B sayısının toplam değeri nedir? İpucu: Bir bit Ve(AND)’lendiğinde sonuç 1 ise, her iki sayı kesinlikte 1’dir. Buradan yola çıkarak hem Ve (AND) hemde XOR’a bakarak sayıların ne olduklarını toplama yapabilecek kadar bulmanız mümkündür.
Fixed Point ve IEEE Floating Point formatı ve farklarını birkaç cümle ile açıklayınız.
400 kişilik bir sınıfta, herkese farklı bir numara vermek için en az kaç bite ihtiyaç bulunmaktadır?
Soru 8’de bulunan bit sayısı ile, bit sayısını arttırmaya gerek kalmadan kaç öğrenci daha sınıfa kabul edilebilir?
5 bit kullanarak, 7 ve -7 sayılarını ikilik tümleyen formatta ifade ediniz.
6 bit kullanarak ikilik tümleyen formatta -32 sayısını ifade ediniz.
101, 44, -128, 127 sayılarını ikilik tümleyen formatta 8 bit olarak ifade ediniz.
Sayıyı bir bit sağa kaydırmak, sayıyı 2’e bölmek, bir bit sola kaydırmak ise sayıyı iki ile çarpmak ile aynı anlama gelmektedir. Bu nasıl olmaktadır? Bir kaç cümle ile açıklayınız.
Aşağıdaki 4’bitlik ikilik tümleyen formatındaki sayıların toplama işlemlerinin hangileri taşma yapmaktadır?
1100 + 0011 1100 + 0100 0111 + 0001 0111 + 1001
İkilik tümleyen formatında toplama işlemi yaparken hangi durumlarda taşma olmaktadır? Açıklayınız.
Taşma yaratacak 9 bitlik işaretsiz ikilik tabanda iki sayı bulun.
Aşağıdaki mantık işlemlerini hesaplayınız.
01010111 OR 11010111 101 OR 110 NOT (1011) OR NOT(1100) NOT (1000 AND (1100 OR 0101)) NOT (NOT (1101) ) (0110 OR 0000) AND 1111
Aşağıdaki doğruluk tablosunu verilen ifadeye göre doldurunuz.
Dijital Mantık Yapıları: Transistörler ve Basit Mantık Kapıları​:
Transistör nedir? Bir kaç cümle ile açıklayınız.
Aşağıda örnek verilen bir transistörün “Base”, “Emitter”, “Collector” pinleri ne için kullanılmaktadır?
N ve P MOS transistörlerin farkları nedir?
CMOS Transistörlerin, N ve P MOS transistörlere göre 2 avantajını yazınız.
Aşağıda NAND kapısının şeması verilmiştir. A ve B isminde iki giriş alıp, Out isminde bir çıkış vermektedir. NAND fonksiyonu Out = !(A & B) şeklinde ifade edilebilir.
Aşağıda verilen şekilde ise, NAND kapısının girişine sadece tek bir giriş bağlanmıştır. A isimli giriş ile Out çıkışını doğruluk tablosunu çiziniz (A’nın 0 ve 1 olduğunda Out’un ne olduğunu gösteren tablo). Tabloya bakarak Out çıkışının A girişine göre nasıl değiştiğini yorumlayınız. NAND ile elde edilmiş olan yeni mantık kapısının ismini yazınız.
Aşağıdaki ifadeyi mantık kapıları ile çiziniz. Devreyi çizdikten sonra demorgan kuralı ile devreyi sadeleştirebildiğiniz kadar sadeleştirin. Sadeleşen devreyi çiziniz.
Dijital Mantık Yapıları: Kombinasyonel Devreler, Kayıt Elemanları ve Bellek Konsepti:
Aşağıdaki şekilde gizli bir mantık kapısı içeren kombinasyonel devre verilmiştir. Devrenin A girişine göre ürettiği değerler doğruluk tablosunda verilmiştir. Tablodaki out çıktısının değerlerine göre, mantık kapısı yazan kutunun içerisinde hangi mantık kapısı olabilir?
Çözücü (Decoder) Nedir? Nasıl çalışmaktadır?
5 girişli bir çözücünün (Decoder) kaç çıkışı bulunmaktadır?
Seçici (Multiplexer) Nedir? Nasıl çalışmaktadır?
16 girişli bir seçicinin (Multiplexer) kaç çıktısı bulunmaktadır? Kaç adet seçme (select) bit’i bulunmaktadır?
Aşağıdaki şekilde 2×1 multiplexer kullanılarak bir Ve (And) kapısı yapılmıştır. Yine 2×1 multiplexer kullanarak Veya (Or) kapısı yapınız.
Aşağıda verilen doğruluk tablosuna (truth table) göre mantık kapıları ile eşdeğer devreyi çiziniz.
Sadece 2×1 multiplexer’ler kullanarak 4×1 multiplexer yapınız.
Verilen doğruluk tablosunu, aşağıdaki devreye göre tamamlayınız.
Full Adder’lar kullanarak, 4 bitlik iki sayının toplamını yapabilecek bir devre çiziniz. Full Adder’ların iç yapısını çizmeyiniz.
Bir RAM’in 100 adresi ve her bir adreste 32 bitlik saklama alanı bulunuyorsa, toplam RAM’in boyutu nedir?
RAM (Random Access Memory) nedir? Bir kaç cümle ile açıklayınız.
Bir RAM’in 16 bitlik adres girişi var, ve toplam boyutu 4 MB (Mega Byte) ise bir adreste kaç bitlik veri saklanıyordur?
Bir RAM’in 16 bitlik adres girişi var, ve toplam boyutu 4 Mb (Mega bit) ise bir adreste kaç bitlik veri saklanıyordur?
Dijital Mantık Yapıları: Ardışık Devreler:
D tipi tutucu (latch) ve D tipi saklayıcı (Register) nedir? Arasındaki farklar nedir?
Saat kristali nedir?
Clock sinyali nedir? Ne için kullanılır?
Periyodu 100 ns olan bir clock’un frekansı nedir?
Ardışık devreler neden kullanılır? Neden kombinasyonel devreler ile bazı işlemler gerçekleştirilemiyor?
Aşağıda D tipi saklayıcı ve MUX barındıran bir devre bulunmaktadır. Yanında ise bu devrenin durum makinaları ile ifade edilmiş hali bulunmaktadır. Q0 durumu Q çıkışının 0 verdiği, Q1 durumu ise Q çıkışının 1 verdiği durumu temsil etmektedir. Q çıkışı 0 verir iken, w girişi ne gelmelidir ki Q yine 0 çıkmaya devam etsin? Bu durumu Q0’ın kendi üstüne ok ile döndüğü yerdeki w = yerine yazmalısınız. Bu mantık ile w= olan yerleri tamamlayınız.
Aşağıda verilen D tipi yükselen kenar tetiklenen saklayıcıya gelen cp (clock) ve x sinyaline göre Q çıkışından çıkması gereken sinyali çiziniz.
Aşağıdaki devrede 4 adet d tipi saklayıcı kullanılmıştır. Devre uzun bir süre d girişinden 0 verilerek çalıştırılmış ve başlangıçta q0, q1, q2 ve q3 0 olarak çıktı vermektedir. Devrenin girişi 1’e dönüştürüldüğü andan itibaren, aşağıdaki dalga formunu doldurunuz.