Categories
Introduction to Computer Engineering

Feedback

Ders hakkında geri bildirimleriniz önemlidir.

Kayıtlı öğrencilerin her hafta geri bildirimleri için LMS sistemi üzerinden “Geri Bildirim Formu” açılacaktır. 

Her doldurulan geribildirim için 0.5 puan sene sonu notuna eklenecektir.

Anonim olarak geri bildirimde bulunmak için aşağıdaki linki kullanabilirsiniz.

https://docs.google.com/forms/d/e/1FAIpQLSd23R8gvWSKOiA5h3YC6Cdgq9iZ-En9I-5Y1wR9AwKhAXGaTA/viewform?vc=0&c=0&w=1

Categories
Introduction to Computer Engineering

Projects

2019-2020 Yılı FB-CPU V1.0 Tasarımı ve Öğrencilerin Hazırladığı Proje Teslim Dosyaları:

Proje kapsamında FB-CPU isminde bir işlemcinin tasarımı ve tasarlanan işlemci üzerinde makine dili ile yazılan çeşitli kod parçacıkları yazılacaktır. Proje sonunda basit bir işlemcideki RAM, Kontrol Ünitesi ve Saklayıcıların bir arada çalışıp, makine dilindeki kod parçacıklarını nasıl yürütebildiği gözlemlenecektir. 

Detaylı proje spesifikasyonları için;

http://levent.tc/files/courses/introductions_to_computer_engineering/project/BLM101_proje_spesifikasyonlari.pdf

  • Berk Tunç, Arda Alhan, Ogün Gürses, Arda Kalafat


Rapor: http://levent.tc/files/courses/introductions_to_computer_engineering/project/2019/BLM101_fbcpuv1.0_rapor_berk_arda_ogun_arda.pdf

Sunum: http://levent.tc/files/courses/introductions_to_computer_engineering/project/2019/BLM101_fbcpuv1.0_sunum_berk_arda_ogun_arda.pdf

CPU Tasarım Dosyası: http://levent.tc/files/courses/introductions_to_computer_engineering/project/2019/BLM101_fbcpuv1.0_tasarim_berk_arda_ogun_arda.circ

Github: https://github.com/brktnc/FB-CPU-TasarimiTT

Youtube: https://www.youtube.com/watch?v=nyh9Nurv1mQ

  • Ahmet Hazar Haspolat, Ekrem Büyükkaya, Mustafa Berk Taşkın, Ömer Sait Yorulmaz


Rapor: http://levent.tc/files/courses/introductions_to_computer_engineering/project/2019/BLM101_fbcpuv1.0_rapor_ahmet_ekrem_mustafa_omer.pdf

Sunum: http://levent.tc/files/courses/introductions_to_computer_engineering/project/2019/BLM101_fbcpuv1.0_sunum_ahmet_ekrem_mustafa_omer.pdf

CPU Tasarım Dosyası: http://levent.tc/files/courses/introductions_to_computer_engineering/project/2019/BLM101_fbcpuv1.0_tasarim_ahmet_ekrem_mustafa_omer.circ

Github: https://github.com/fbuni/BLM101

Youtube: https://www.youtube.com/watch?v=9JtBQp-6RMg

  • Mert Meriç Karadeniz, Mehmet Rauf Füzun, Hayat Zehra Demir, Ahmet Batuhan Yılmaz


Rapor: http://levent.tc/files/courses/introductions_to_computer_engineering/project/2019/BLM101_fbcpuv1.0_rapor_mert_mehmet_zehra_ahmet.pdf

Sunum: http://levent.tc/files/courses/introductions_to_computer_engineering/project/2019/BLM101_fbcpuv1.0_sunum_mert_mehmet_zehra_ahmet.pdf

CPU Tasarım Dosyası: http://levent.tc/files/courses/introductions_to_computer_engineering/project/2019/BLM101_fbcpuv1.0_tasarim_mert_mehmet_zehra_ahmet.circ

Github: https://github.com/Nygma23/fb-cpu

Youtube: https://www.youtube.com/watch?v=kN38D5FMzTY

  • İlhan Ersoy, Hasan Demir, Cüneyt Balcı, Mehmet Çolak


Rapor: http://levent.tc/files/courses/introductions_to_computer_engineering/project/2019/BLM101_fbcpuv1.0_rapor_hasan_ilhan_cuneyt_mehmet.pdf

Sunum: http://levent.tc/files/courses/introductions_to_computer_engineering/project/2019/BLM101_fbcpuv1.0_sunum_hasan_ilhan_cuneyt_mehmet.pdf

CPU Tasarım Dosyası: http://levent.tc/files/courses/introductions_to_computer_engineering/project/2019/BLM101_fbcpuv1.0_tasarim_hasan_ilhan_cuneyt_mehmet.circ

Github: https://github.com/ilhan-ersoy/FBU-CPU-TASARIM-

Youtube: https://www.youtube.com/watch?v=d-rsz4AfrNw

  • İrem Kalkanlı, Deniz Uzun, Özlem Çalı, Aysen İpek Çakır


Rapor: http://levent.tc/files/courses/introductions_to_computer_engineering/project/2019/BLM101_fbcpuv1.0_rapor_irem_deniz_ozlem_aysen.pdf

Sunum: http://levent.tc/files/courses/introductions_to_computer_engineering/project/2019/BLM101_fbcpuv1.0_sunum_irem_deniz_ozlem_aysen.pdf

CPU Tasarım Dosyası: http://levent.tc/files/courses/introductions_to_computer_engineering/project/2019/BLM101_fbcpuv1.0_tasarim_irem_deniz_ozlem_aysen.circ

Github: https://github.com/iremkalkanli/BLM-101-Projesi-FBU-CPU

Youtube: https://www.youtube.com/watch?v=V003GQMbjgk

  • Alp Yılmaz, Hüseyin Berk Işıldak, Erdem Şentürk, Serhat Erdoğan


Rapor: http://levent.tc/files/courses/introductions_to_computer_engineering/project/2019/BLM101_fbcpuv1.0_rapor_alp_huseyin_erdem_serhat.pdf

Sunum: http://levent.tc/files/courses/introductions_to_computer_engineering/project/2019/BLM101_fbcpuv1.0_sunum_alp_huseyin_erdem_serhat.pdf

CPU Tasarım Dosyası: http://levent.tc/files/courses/introductions_to_computer_engineering/project/2019/BLM101_fbcpuv1.0_tasarim_alp_huseyin_erdem_serhat.circ

Github: https://github.com/erdem106/BLM-101-FBCPU-Erdem-Alp-Serhat-Berk

Youtube: https://www.youtube.com/watch?v=yDo6V1HGTjM

Categories
Introduction to Computer Engineering

Homeworks

ÖdevKonuTarihSon Teslim TarihiTeslim YöntemiİndirmeÇözüm
1Numara Sistemleri15.10.201921.10.2019, Ders Saatleri İçerisindeYazılı Olarak Ders Sınıfında Teslim
2Kombinasyonel Devreler4.11.201911.11.2019, Ders Saatleri İçerisindeYazılı Olarak Ders Sınıfında Teslim
3Ardışık Devreler11.11.201918.11.2019, Ders Saatleri İçerisindeYazılı Olarak Ders Sınıfında Teslim
4FB-CPU16.12.201923.12.2019, Ders Saatleri İçerisindeYazılı Olarak Ders Sınıfında Teslim
5LC3 – Assembly23.12.201930.12.2019, Ders Saatleri İçerisindeYazılı Olarak Ders Sınıfında Teslim
6Giriş/Çıkışlar30.12.20196.1.2020, Ders Saatleri İçerisindeYazılı Olarak Ders Sınıfında Teslim
Categories
Introduction to Computer Engineering

Syllabus

HaftaKonuTarih
1Giriş7.10.2019
2Bitler, Data Türleri, Operasyonlar ve Numara Sistemleri14.10.2019
3Dijital Mantık Yapıları: Transistörler ve Basit Mantık Kapıları21.10.2019
4Resmi Tatil28.10.2019
5Dijital Mantık Yapıları: Kombinasyonel Devreler, Kayıt Elemanları ve Bellek Konsepti4.11.2019
6Dijital Mantık Yapıları: Ardışık Devreler11.11.2019
7Vize18.11.2019
8Bilgisayar Mimarisi: Von Neuman Modeli25.11.2019
9Bilgisayar Mimarisi: LC3 Komut Kümesi I2.12.2019
10Bilgisayar Mimarisi: LC3 Komut Kümesi II9.12.2019
11FB-CPU16.12.2019
12LC3 Assembly Dili23.12.2019
13Giriş/Çıkış’lar30.12.2019
14Kesmeler ve Yığınlar6.1.2020
15Final ve Proje SunumlarıSınav Haftası
   
Categories
Introduction to Computer Engineering

Detailed Course Description

Ders Açıklaması

Bu ders ile bilgisayar sistemleri dünyasına giriş yapılmaktadır. Bilgisayarların nasıl tasarlandıkları, nasıl uygulandıkları, en düşük seviyelerde nasıl programlandıkları ve tüm sistemin nasıl bir araya geldiği gösterilmektedir. Yüksek seviyeli diller (C, C++, vb..) ile programlarınızı yazdığınızda, yazdığınız kodun düşük düzeyli işlemlere nasıl dönüştüğü ve koşturulduğu hakkında bilgi edinilecektir. Ders; Sayı sistemleri ve boole cebiri, mantık kapıları, birleşik devrelerin tasarımı ve basitleştirilmesi, kod çözücüler, çoklayıcılar, toplayıcılar, sıralı mantık ve saklayıcılar,  assembly diline giriş konularından oluşmaktadır.

Ders Saatleri (Teorik + Lab)

Pazartesi 13.00-17.00

Öğretim Elemanları ve Ofis Saatleri

Dr. Öğr. Üyesi Vecdi Emre Levent, Ofis 311 – Pazartesi 17.00-18.00, Salı 16.00-17.00

Arş. Gör. Uğur Özbalkan, Ofis 311 –  Salı 16.00-17.00, Cuma 16.00-17.00

Ön Gereksinimler

Yok

Yardımcı Kaynaklar

Dersin referans kaynakları aşağıda listelenmektedir.

  • Invitation to Computer Science, G.Michael Schneider, Judith Gersting,  Cengage Learning (2015)
  • Logic and Computer Design Fundamentals,M. Mano and C. R. Kime, Prentice Hall (2008).
  • Introduction to Computing Systems From bits and gates to C and beyond, Yale Patt, Sanjay Patel-McGraw-Hill (2005).
  • The Elements of Computing Systems: Building a Modern Computer from First Principles, Noam Nisan, Shimon Schocken, MIT Press (2005)

Aşağıdaki Youtube oynatma listelerinide takip edebilirsiniz.

Bit, Byte, Veri Türleri

Kombinasyonel Devreler

Ardışık Devreler:

Vonn Neumann Mimarisi

LC-3 ve Assembly

Kesmeler

Yazılımlar

Yok

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ı

  • Bilgisayar sistemlerinde soyutlamanın rolünü ve önemini anlamak
  • Basit kombinasyonel mantık devresi tasarımında, standart dijital bileşenleri kullanabilmek
  • Dijital mantık kullanarak sonlu durum makinesini (FSM) bir saat senkron sıralı devre olarak tasarlayıp uygulayabilmek
  • Assembly dilini kullanarak basit bir FSM tasarlayabilmek
  • Assembly ile uygulama geliştirebilmek

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.

FaaliyetlerOranlar
Vize%15
Ödev/Quiz%10
Lab%15
Proje%40
Final%20
Bonus5 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 NotuAğırlıkHarf Notu
90-1004.00AA
85-893.50BA
80-843.00BB
75-792.50CB
65-742.00CC
50-641.50DC
45-491.00DD
0 -440FF

Beklenen Efor

Öğrencinin dönem içinde göstermesi beklenen efor tablosu aşağıda verilmiştir.

İçerikSaatKaç DefaAra Toplam
Derse Hazırlık21428
Ders Tekrarı21428
Ödev4624
Proje48148
Sınıf Dersi41456
Ara Sınav ve Final24248


Öğrenciler dersten başarılı olmak için dönem boyunca ortalama 232 saat harcamaları beklenmektedir.

Kodlama Ödevleri

Kodlama ödevlerinin notlandırılması, kodun doğruluğu, kalite ve algoritmik gerçeklemedeki detayları incelenerek yapılacaktır.

Doğruluk

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.

Categories
Object Oriented Design

Lecture Notes

HaftaKonuİndirme
1Giriş
2Python Temelleri I
3Python Temelleri II
4Veri Koleksiyonları
5Objeler ve Sınıflar
6Kalıtım
7Çok Biçimlilik
8Vize Sınav Haftası
9Decorator
10Tasarım Kalıpları I
11Tasarım Kalıpları II
12Resmi Tatil
13Refactoring ve Yazılım Testi
14Eş zamanlılık
15Final ve Proje SunumlarıSınav Haftası
Categories
Object Oriented Design

Syllabus

HaftaKonuTarih
1Giriş 16.10.2020
2Python Temelleri I  23.10.2020
3Python Temelleri II 30.10.2020
4Veri Koleksiyonları 06.11.2020
5Objeler ve Sınıflar 13.11.2020
6Kalıtım 20.11.2020
7Çok Biçimlilik 27.11.2020
8Vize Sınav Haftası
9Decorator 11.12.2020
10Tasarım Kalıpları I 18.12.2020
11Tasarım Kalıpları II 25.12.2020
12Resmi Tatil 01.01.2021
13Refactoring ve Yazılım Testi 08.01.2021
14Eş zamanlılık 15.01.2021
15Final ve Proje SunumlarıSınav Haftası
Categories
Object Oriented Design

Detailed Course Description

Ders Açıklaması

Bu dersin amacı, ileri seviye nesneye yönelimli programlama konseptlerini Python dili aracılığı ile aktarılmasıdır. Konular arasında sınıflar, kalıtım, çok biçimlilik, istisna idaresi, decorator, veri yapıları, tasarım kalıpları, test ve eş zamanlılık bulunur.

Ders Saatleri (Teorik + Lab)

Cuma 14.00-18.00

Öğretim Elemanları ve Ofis Saatleri

Dr. Öğr. Üyesi Vecdi Emre Levent, Ofis 311 – Salı 16.00-17.00

Arş. Gör. Uğur Özbalkan, Ofis 311 –  Salı 16.00-17.00

Ön Gereksinimler

Yok

Yardımcı Kaynaklar

Dersin referans kaynakları aşağıda listelenmektedir.

  • Python 3 Object-Oriented Programming, Dusty Phillips
  • Mastering Object Oriented Python, Steven Lott

Yazılımlar

Python dili ile geliştirilecek olan uygulamalar, Visual Studio Community kullanılarak yürütülecektir.

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ı

  • Nesneye yönelik tasarım kavramlarını (kalıtım, polimorfizm ve bilgi gizleme) anlamak
  • Python dili ile yazılmış uygulama ve sınıf kütüphanesi içeren projeler geliştirebilmek
  • İleri seviye yazılım kalıpları konseptleri kullanılması
  • Performans yönelik yazılım geliştirme süreçlerinin anlaşılması

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.

FaaliyetlerOranlar
Vize%20
Ödev/Quiz%10
Lab%15
Proje%25
Final%30
Bonus5 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 NotuAğırlıkHarf Notu
90-1004.00AA
85-893.50BA
80-843.00BB
75-792.50CB
65-742.00CC
50-641.50DC
45-491.00DD
0 -440FF

Beklenen Efor

Öğrencinin dönem içinde göstermesi beklenen efor tablosu aşağıda verilmiştir.

İçerikSaatKaç DefaAra Toplam
Derse Hazırlık21428
Ders Tekrarı21428
Ödev4624
Proje48148
Sınıf Dersi41456
Ara Sınav ve Final326


Öğrenciler dersten başarılı olmak için dönem boyunca ortalama 190 saat harcamaları beklenmektedir.

Kodlama Ödevleri

Kodlama ödevlerinin notlandırılması, kodun doğruluğu, kalite ve algoritmik gerçeklemedeki detayları incelenerek yapılacaktır.

Doğruluk

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.

Categories
Digital Design

Lecture Notes

HaftaNotlarİndirme
1Giriş
2Sayı Sistemleri ve Boolean Cebri
3Kombinasyonel Lojik
4Ardışık Lojik
5Doğrulama Yaklaşımları
6Durum Makinaları
7Veriyolu Elemanları
8VizeSınav Haftası
9Bellekler
10FB-CPU RTL Tasarım
11Optimizasyonlar ve Ödünleşmeler
12Resmi Tatil
13SOC Konseptleri, Xilinx IPI Tasarım ve Arayüzler
14Çoklu Clock Alanlı Tasarım
15Final ve Proje SunumlarıSınav Haftası
Categories
Digital Design

Syllabus

HaftaKonuTarih
1Giriş 16.10.2020
2Sayı Sistemleri ve Boolean Cebri 23.10.2020
3Kombinasyonel Lojik 30.10.2020
4Ardışık Lojik 06.11.2020
5Doğrulama Yaklaşımları 13.11.2020
6Durum Makinaları 20.11.2020
7Veriyolu Elemanları 27.11.2020
8Vize Sınav Haftası
9Bellekler 11.12.2020
10FB-CPU RTL Tasarım 18.12.2020
11Optimizasyonlar ve Ödünleşmeler 25.12.2020
12Resmi Tatil 01.01.2021
13SOC Konseptleri, Xilinx IPI Tasarım ve Arayüzler 08.01.2021
14Çoklu Clock Alanlı Tasarım 15.01.2021
15Final ve Proje SunumlarıSınav Haftası