Bu ders, mühendislik öğrencileri için hazırlanmış bir dönemlik Kimya dersidir. Dersin amacı, öğrencilere genel kimyanın temellerini vermektir. Ders, maddenin sınıflandırılması ve maddenin kimyasal özellikleri,
metrik sistem, atomun yapısı, kimyasal bağlar, molekül geometrisi ve
moleküler yörünge, kimyasal eşitlikler ve nicel bağıntılar, periyodik
tablo, gazlar, sıvılar, katılar, sıvılarda moleküller arası kuvvetler.
CS 100 Bilgisayara Giriş ve Enformasyon Tekn. (Syllabus)
Bu ders, bilgisayarlara ve bilgi işleme giriş olarak tasarlanmıştır. Geniş bir kapsamı olmasına rağmen aşırı teknik detaylara girmemektedir. Günümüz ticari ve kişisel uygulamalara dönüktür. Dersin amacı, Bilgisayar Bilimleri fakültesi dışındaki tüm fakülteler öğrencilerine, çalışmalarında ve ileride iş hayatlarında gerekecek temel bilgilerin verilmesidir.
Ders, bilgisayar veya yazılım mühendisi olmayı hedefleyen bir öğrenciye bilgisayar bilimlerindeki temel bilgileri vermektedir. İlk olarak, sosyal hayat ile sayısallaştırılmış teknoloji arasındaki ilişki sunulacaktır. Bilgisayar bilimleri ile ilgilenen kişilerin edinmesi gereken ortak gereksinimler tanımlanacaktır. Yazılım ve donanım kavramları tanıtıldıktan sonra, bilgisayar ve yazılım mühendisliği dallarındaki temel terminoloji işlenecektir. Bilgisayar bilimlerinin dalları olarak, sistem mühendisliği ve ağ yönetimi, simülasyon tasarımı, bilgi sistemlerine yer verilecektir.
CS 103 Bilgisayar Biliminde Ayrık Yapılar (Syllabus)
Bu ders bilgisayar biliminin en yaygın yapıları üzerinde sağlam temeller kurmayı amaçlar, ispatlama tekniklerini gösterir, hesaplama teorisine giriş dersi için gerekli hazırlığı sağlar, ve olasılık teorisinin temel kavramlarına giriş yapar. Ders kapsamında Boolean cebri, mantık, küme teorisi, bağıntılar ve fonksiyonlar, grafik teorisi, kombinasyonlar, ve olasılığa giriş yer almaktadır.
CS 105 Bilgisayar Biliminde Ayrık Yapılar (Syllabus)
Bu ders bilgisayar biliminin en yaygın yapıları üzerinde sağlam
temeller kurmayı amaçlar, ispatlama tekniklerini gösterir, hesaplama
teorisine giriş dersi için gerekli hazırlığı sağlar, ve olasılık
teorisinin temel kavramlarına giriş yapar. Ders kapsamında Boolean
cebri, mantık, küme teorisi, bağıntılar ve fonksiyonlar, grafik
teorisi, kombinasyonlar, ve olasılığa giriş yer almaktadır.
CS 113 Bilgisayara Giriş ve Enformasyon Tekn. I (Syllabus)
Bu ders, bilgisayarlara ve bilgi isleme giris olarak tasarlanmistir. Genis bir kapsami olmasina ragmen asiri teknik detaylara girmemektedir. Gunumuz ticari ve kisisel uygulamalarina donuktur. Dersin amaci, Matematik bolumu ogrencilerine, calismalarinda ve ileride is hayatlarinda gerekecek temel bilgilerin verilmesidir.
CS 114 Bilgisayara Giriş ve Enformasyon Tekn.II (Syllabus)
Bu ders, Matematik bolumu ogrencileri icin, CS 113 dersinin devami niteliginde olup,veri tabani uygulamalarinin daha detayli olarak ogretilmesi, matematik uygulamalari icin kullanilabilecek guncel programlarin tanitimi ve bunlardan MATLAB kullanimi ve MATLAB ile programlama hakkinda temel bilgilerin aktarilmasi amaciyla tasarlanmistir.
Bu ders yapısal ve buyurgan programlama dillerinin temellerini
aktarmaktadır. Dersin uygulamalarında C programlama dili
kullanılacaktır. Ders kapsamında veri tipi kavramı, temel veri tipleri,
ifadeler, standart fonksiyonlar, okuma/yazma ifadeleri, atama deyimi,
durum ifadeleri, kontrol ifadeleri, “ if-then-else” yapıları,
“while-do”, “repeat-until”, “for-to-do” döngü yapıları; prosedür ve
fonksiyonlar, modüler programlama, global ve lokal değişkenler,
işaretçiler, dinamik değişkenler ve diziler yer almaktadır.Ders, yapısal programlama tasarımını öğretmeyi amaçlamaktadır, ilk olarak, basit program kodları incelenecektir. Daha sonra, temel veri yapıları tanıtılacaktır. Dersin en önemli bölümünü oluşturan konu, verilen bir problemin yapısını anlamak ve çözüm için bir algoritma ortaya koymaktır. Yapısal olarak tasarlanan programların koda dökülmesinde C programlama dili ders aracı olarak kullanılacaktır. Dönemin her haftası verilen laboratuvar ödevleri için, öğrenciler kendi uygulamalarını yazacaklardır.
Bu ders CS 115 dersinin devamı şeklindedir. Özyineleme ve veri yapıları
kavramları tanıtılacaktır. Veri yapılarını anlamak için başlangıç
olarak, bileşik yapılar, dizgiler, kümeler, dosya tipleri, bağlı
listeler, yığınlar, kuyruklar detaylı incelenecektir. Ayrıca,
kütüphaneler ve bağlama, hata düzeltme, kural dışı durumlar, işaretçi
yapıları, dilimler ve yığın, artık veri toplama, kod gerçekleme
konuları işlenecektir. Bu ders kapsamında ayrıca önemli bir programlama
dönem projesinin başarıyla tamamlanması beklenmektedir. Önkoşul: CS 115.Bu dersin amacı, nesneye dayalı yaklaşım kullanılarak, programlama prensiplerinin detaylı bir şekilde incelenmesidir. Soyut veri yapılarının kullanımı ve sınıf kavramının anlaşılmasından sonra, nesneye dayalı tasarım ve programlama C++ dili kullanılarak sürecektir. C++ için gerekli temel elemanlar derinlemesine işlenecektir. Teorik bilgilerin desteklenmesi amacıyla, her hafta düzenli olarak laboratuvar uygulaması yapılacak ve programlama yeteneğinin geliştirilebilmesi için bir dönem projesi istenecektir.
Bu derste veri yapılarının temelleri ve algoritmalar ögrencilere tanıtılacaktır. Etkin veri yapıları ve algoritmalar oluşturabilmek için yeni tasarımların zorlukları irdelenecek ve sonuçları zaman maliyeti olarak değerlendirilecektir.
Bu derste uygulama destekli giriş düzeyde bilgisayar programlamanın temelleri ele alınmaktadır. Programlama ve yazılım geliştirmenin temel kuram ve yöntemleri C dili sintaks ve semantiği ile adım adım işlenerek etkin laboratuar çalışmaları ve büyük çaplı pratik projelerle ile pekiştirilmektedir. Derste kullanılan programlama dili C dir.
Bu dersin amacı, hesaplama model ve hesaplanabilirlik kuramları ile hesaplama yöntem ve mantığındaki karmaşık yapıların analiz ve çözümlerini sağlamaktır. Bu bağlamda, rassal algoritmalar (yöntemler), değişik yaklaşım metotları ve olasılık yöntemleri kullanılarak hesaplamada karmaşıklık ve fonksiyonel kompedanlık analiz ve çözüm yöntemleri tartışılarak değişik alanlarda uygulanacaktır.
Bu dersin amacı, nesneye yönelik yaklaşımın kullanıldığı programlama
prensiplerinin, C++ dili kullanılarak, detaylı bir şekilde
incelenmesidir. Ders kapsamında program tasarımı ve algoritma
geliştirme stratejilerinin yanı sıra, sınıf kavramı, soyut veri
yapıları, metotlar, aşırı yükleme, istisna yakalama, ve I/O yer
almaktadır. Nesne tasarımı, kalıtım ve çok biçimlilik gibi temel
programlama teknikleri de tartışılacaktır. Önkoşul: CS 116.
CS 301 Otomata Teorisi ve Formal Diller (Syllabus)
Bu dersin amacı otomata teorisi ve formal dillerde temel kavram, tanım ve kuramları sunmaktır. Bu bağlamda, deterministik ve deterministik olmayan sınırlı otomata yapılarının karşılaştırılması, matematiksel gereçler ve yöntemler uygulayarak otomatada saptanabilirliğin (deterministik) analizi, ve Mealy and Moore makinaları tartışılmaktadır.
Giriş düzeyinde, işletim sistemleri prensip ve çalışma şekilleri tanıtıldıktan sonra, ortak sistem kaynaklarını kullanan proses (süreç) ve aynı anda işleyen proseslerde önceliklerin ve kritik durumların irdelenmesi, süreçler arası iletişim ve senkronizasyon, bellek kotanını ve semafor kotanının da kritik durum analizi ve yöntem (algoritma) geliştirme konuları ele alınmaktadır. Ders kapsamında tüm deney ve laboratuar çalışmaları ve iki adet dönem projesi UNIX/Linux ortamında yapılmaktadır.
Programlama dilleri dersi, öğrenciler için programlama dil konseptlerinin detaylı şekilde tartışılmasını sağlar.
CS 307 Nesneye Yönelik Programlama Kavramları (Syllabus)
Bu ders, yaygın olarak kullanılan Java programlama dili
aracılığıyla nesneye yönelik programlamaya kavramsal ve pratik bir giriş
sağlar. Nesneye yönelik programlama ile ilgili temel kavramlar (örneğin; nesne,
sınıf, protokol, hiyerarşi, kalıtım, sarmalama, çok biçimlilik, kodun yeniden
kullanımı, arayüzler, işbirliği, vb.) tanıtılacak ve Java programlama dili
kullanılarak gösterilecektir. Bu ders, öğrenciye Java dili ile daha ileri
seviyede çalışılması ve nesneye yönelik yazılım geliştirilmesi için sağlam bir
temel sağlayacaktır. Önkoşul: CS 201.
CS 340 Yazılım Geliştirmede İlerlemeler (Syllabus)
Yazılım geliştirmede ilerlemeler olarak .NET programlama dili öğretilecektir. En temelden başlayıp, en karmaşık program yazma tekniklerine kadar öğrencilere detaylı algoritmalar öğretilecektir.
CS 350 UNIX Komut Dillerinde Programlama (Syllabus)
Bu ders UNIX işletim sistemini aracılığıyla kullanıcılara ve
programcılara sunulan araçları tanıtmaktadır. Betik programlama dillerinde
shell ve Perl tanıtılacak, bunların yanı sıra sistem yönetimi araçlarından ağ
ve güvenlik ile ilgili araçlar incelenecektir. Ayrıca, UNIX sistem programlama
ele alınacaktır. Dersin önkoşulları olarak, işletim sistemleri kavramlarının
farkındalığının yanında C, C++ veya JAVA bilgisi ve programlama becerisine de
ihtiyaç duyulacaktır.
CS 420 Bilgisayar Bilimlerinde Stokastik Modelleme (Syllabus)
Bu ders, bilgisayar sistemleri ve kapasite planlamasının tasarım ve performans tahminlerinde önemli olan analitik modelleme tekniklerini vermektedir. Bu analitik teknikler, Little teoremini, asimptotik sınır analizlerini, temel kuyruk tekniklerini ve ortalama değer analizlerine girişi kapsamaktadır. Bu teknikler, modern iletişim ağları, iş zaman-programlama politikaları, yazılım performansı ve paralel bilgisayar mimarisi gibi birçok bilgisayar sistemini tasarlamada yardımcı olarak kullanılmaktadır.
Bu derste, web teknolojileri, gelişen web standartları, protokoller, Markup ve Scripting dilleri işlenecektir. İstemci ve sunucu teknolojileri, ve scripting dilleri uygulayarak, HTML, PHP, ASP, Java, MySQL ve benzeri araçlar kullanılarak internet programlama uygulamaları geliştirilecektir.
CS 451 Bilgisayar Bilimlerinde Uygulamalı Workshop I (Syllabus)
Seminerlerde, bilgisayar teknolojilerinin kullanımı ile ilgili sosyal, profesyonel ve etik konu ve sorunlar işlenecektir. Konu başlıklarından bazıları, yazılımda etik kurallar, bilgisayar güvenlik ve güvenilirliği, anayasal konular, telif hakları, bilgisayar suçları, sosyal etkiler, gelişen teknolojiler ve felsefik konulardır. Amaç, önceki derslerde öğrenilenlerin gerçek hayat örnekleri kullanılarak, analiz ve tartışmalarla entegre edilebilmesidir.
CS 452 Bilgisayar Bilimlerinde Uygulamalı Workshop II (Syllabus)
Seminerlerde, bilgisayar teknolojilerinin kullanımı ile ilgili sosyal, profesyonel ve etik konu ve sorunlar işlenecektir. Konu başlıklarından bazıları, yazılımda etik kurallar, bilgisayar güvenlik ve güvenilirliği, anayasal konular, telif hakları, bilgisayar suçları, sosyal etkiler, gelişen teknolojiler, ve felsefik konulardır. Amaç, önceki derslerde öğrenilenlerin gerçek hayat örnekleri kullanılarak, analiz ve tartışmalarla entegre edilebilmesidir.
Bu derste nesneye dayalı programlama dillerinde kullanılan UML modelleme dili tanıtılacaktır. Öğrencilere,UML ile ilgili tasarım nasıl yapılacağı, yapılmış tasarımlarda UML diagramlarının nasıl okunacağı öğretilecektir. Verilecek projeler C++ kullanılarak yapılacaktır.
Bu dersin amacı öğrencilere nesneye dayalı program nasıl yapılır öğretmektir. Öğrenciler derste nesneye dayalı programlamanın temellerini öğrenip, öğrendiklerini de Visual C++ kullanarak pratik yapma şansına sahip olacaklardır.
Bu dersin amacı, öğrencilere bilgisayar ve bilgisayar tabanlı sistemler ile kullanıcılarının iletişim ve iletişim arayüzlerinin tasarımı için gereken temel kuram, prensip ve uygulama yöntemlerini vermektir. Değişik modeller aracılığıya kullanıcı ve sistem iletişiminin tasarımı ve uygulaması laboratuar çalışmalarıyla sağlanmaktadır. Kullanıcının, kullanıcı algılamasının (kültürel ve düşünsel) ve sistem fonksiyonlarının analizi ve modellenmesi ve bunların verimli olarak uygulamaya konması ağırlık arzetmektedir.
Sistem analiz ve tasarımı nesneye dayalı olarak anlatılacak. Bu ders esnasında UML diagramları kullanılacak. Öğretilecek çeşitli teknikler UML ile öğrencilere açıklanacaktır.
SE 302 Yazılım Mühendisliğinin İlkeleri (Syllabus)
Bu derste, öğrencilere yazılımın yaşam döngüsü ve yazılım
geliştirilmesinde aşamalar gibi başlıklar aracılığıyla yazılım mühendisliğine
giriş yapılır. Ders kapsamında, yazılım geliştirilmesinde aşamalar: proje
planlaması, uygulanabilirlik çalışması, projenin tanımı, analizi, tasarımı,
gerçekleştirimi, testi, kalite güvencesi, dökümantasyonu, sürdürülmesi; proje
yönetim konuları olarak planlama, organizasyon, kontrol konuları yer almaktadır.
Bu aşamaların herbirini desteklemek amacıyla yazılım ortamları ve araçlarına
odaklanılacaktır.
SE 303 Yazılım Mühendisliğinin İlkeleri (Syllabus)
Bu derste öğrenciler nesneye dayalı analiz yapmayı öğrenecekler. Nesneye dayalı dizayn yapmanın tek bir yol olmadığını ögrencilere gösterilecek. Nesneye dayalı analiz haricinde yapmaları gereken diğer tekniklerden bahsedilecek. Bu dersin sonunda öğrenciler hangi yöntemin en iyi yöntem oldugunu çeşitli projeler yaparak sınayacaklar.
Dersin amacı yazılım projelerinde planlama ve kontrolü öğrencilere öğretmektir. Risk değerlendirmesinin nicel olarak hesaplanması, beklenmedik durumlar için risk kontrollerinin planlanması gibi konular çeşitli programlama dilleri ve teknikleri ile açıklanacaktır. Yapılacak projelerle de konular pekiştirilecektir.
Dersin amacı, sistem isterleri için kullanılacak ana başlıkları,
teknikleri ve pratik uygulamaları ve bunların gereksinim belirtiminde
belgelendirilmesini öğretmeyi amaçlamaktadır. Ders kapsamında kullanıcı
görüşmeleri, prototip üretimi gibi gereksinim keşfi işlemleri, yazılım
gereksinimlerinin organize edilmesi ve açıklanması için yaklaşımlar yer
almaktadır. Ayrıca derste, gereksinim çalışmalarının önemi vurgulanarak
gereksinimlerin yazılım sistem tasarımına dönüştürülmesi işlenmektedir.
Bu ders, şematik ve grafiksel yaklaşımlar, belirtim değerlendirme
teknikleri, belirtim ve tasarım araçları ve sistem testleri geliştirmek
için alternatif tasarım yaklaşımlarını da sunmaktadır.
Bu derste temel mimari kavramları öğretilecektir. Ders kapsamında
gözlemci örüntüleri, dekoratör örüntüleri, fabrika örüntüleri, tek
örnek örüntüleri yer almaktadır. Öğrenciler farklı tasarım örüntüleri
ile çalışmaya yönlendirilecek ve konunun teorik yönlerini de
öğrenecektir. Derste, öğrencilerden, çeşitli grup projeleri ile bu
kavramları pratik olarak kullanmaları beklenmektedir.
Bu dersin amacı yazılım proje yönetiminin temellerini öğrencilere
aktarmaktır. Ders kapsamında, proje çalışanlarını yönetmek, süreçleri
gerçeklemek, araçları kullanmak, ölçümlerden yararlanmak ve plan yazmak
yer almaktadır. Yazılım proje yönetiminin kapsamındaki bu ana
yapıtaşları öğretilecek ve öğrencilerin sınıf projelerinde bu
yöntemleri yazılım projelerinde kullanmaları sağlanacaktır.
Yapay zeka devrelerinin temelleri öğrencilere tanıtılacaktır. Bu derste tanıtılan devreler daha sonra gerçek hayattaki problemlere uygulanacaktır. Proje olarak öğretilen devreler ile güncel hayattaki donanım ve yazılım alternatifleri kıyaslanacaktır. Problemlerin çözümüne ulaşırken uzman sistem araçlarından nasıl yararlanıldığı gösterilecektir.
Yapay sinir ağı devrelerinin temelleri öğrencilere tanıtılacaktır. Bu derste tanıtılan devreler daha sonra gerçek hayattaki problemlere uygulanacaktır. Proje olarak öğretilen devreler C++ programlama dili kullanarak gerçeklenecektir.
SE 440 Simulasyon ve Paralel Hesaplamaya Giriş (Syllabus)
Dağıtık ve paralel bilgi işlem ortamında mevcut geniş alan hesaplama teknolojilerini içeren yapılar ve teknolojiler dersin ana temasını oluşturmaktadır. Dağıtık ve paylaşımlı bellek sistemleri ve cluster yapılar için paralel yazılım geliştirme algoritmaları ve dilleri özellikle modern web ortamında uygulanabilecek şekilde ele alınmaktadır.
SE 450 Dağıtık Bilişim Sistemleri ve Kurumsal Kaynak Planlaması (Syllabus)
Bu ders dağıtık bilişim sistemleri ve kurumsal kaynak planlaması sistemlerini ve uygulama alanlarını incelemektedir. Dersin içeriğinde, dağıtık bilişim sistemlerinin modellenmesi, analizi, uygulanışı ve gelişimi esnasında kullanılan metodlar, kavramlar ve araçlar; iş akışı, yönetim işlemleri ve veri modellemesinde kullanılan teknoloji; ERP iskelet yapısı, mimarisi ve uygulama metodolojisi yer almaktadır.
SE 497 Senior Proje I (Yazılım Mühendisliği) (Syllabus)
İki dönem sürecek olan bitirme projesinin, bu ilk kısmında, her öğrenci veya öğrenci grubu tasarımından oluşumuna ve test aşamasına kadar seçilen bir proje üzerinde çalışmaya başlayacaktır. Gruplar, projelerinin danışmanları ile düzenli olarak biraraya gelerek, teknik konular ve proje yönetimi hakkında görüşecektir.
SE 498 Senior Proje II (Yazılım Mühendisliği) (Syllabus)
Bitirme projesinin ikinci dönemini kapsayan bu süreç içinde, gruplar, yine proje danışmanları ile düzenli olarak görüşerek teknik detaylar hakkında bilgi verecektir. Proje tamamlandıktan sonra, gruplardan, çalışmaları hakkında yazılı bir rapor ve sözlü bir sunum beklenmektedir.
Mühendisçe bir yazılım geliştirmek için gerekli olan yöntem ve sistematiğin öğretilmesi için tasarlanmış bir derstir. Ders içeriği yazılım mühendisliği kavramı, iyi yazılım; Yazılım özelikleri: gereksinimlerinin tanımlanması, modelleme, gereksinim özelikleri, öntasarım. Yazılım tasarımı: Tasarım süreci, tasarım stratejisi, tasarım kalitesi. Yazılımın sağlaması ve geçerliliği. Sınama aşaması. Bakım ve destek sorunları. Yazılım projesinin yönetimi konularını kapsar.
Derste işlenecek konular arasında temel ilkeler, yapay zeka araçlarına giriş, bilgi gösterimi yöntemleri ve teknikleri, sorun çözme yöntemleri yer alır. Ayrıca Uzman sistemlerde temel kavramlar: Neden sonuç makinası, bilgi tabanı, bilgi edinimi, bilgi temsili ve kontrolu, otomatik akıl yürütme, belirsizlik temsili, pratik sorun çözme. Uzman sistemlerin uygulanması ve teorisinin gelişimi: bilinen uzman sistem örnekleri, uzman sistem tasarımı için yazılım araçları ve mimarileri konuları işlenecek ve problemlerin çözümüne ulaşırken uzman sistem araçlarından nasıl yararlanıldığı gösterilecektir.
Bu dersin temel konuları bilgisayar ve bilgisayar tabanlı sistemler ile kullanıcılarının iletişim ve iletişim arayüzlerinin tasarımı için gereken temel kuram, prensip ve uygulama yöntemleridir. Değişik modeller aracılığıyla kullanıcı ve sistem iletişiminin tasarımı ve uygulaması laboratuar çalışmalarıyla sağlanır. Kullanıcının, kullanıcı algılamasının (kültürel ve düşünsel) ve sistem fonksiyonlarının analizi ve modellenmesi ve bunların verimli olarak uygulamaya konması ağırlıklı olarak işlenir.