Yazılım Geliştirmede En Son Teknolojilerle 'Uygulamalı' Becerileri Öğrenin
Hazır mısın Kariyerinizi ilerletmek mi?
Programımız, OOP (Java) kullanarak yazılım sistemleri ve yazılım geliştirme ve bazı veri bilimi dersleri ile birlikte web uygulamaları konusunda uzmanlaşmıştır. Temel çalışma alanları şunlardır: gelişmiş yazılım geliştirme, web uygulaması programlama ve mimarisi, bazı veri bilimi kursları ve birkaç önemli uygulama alanı.
Tüm kurslar kariyerinizi ilerletmenize yardımcı olmak için tasarlanmıştır ve her kurs pratik ödevler içerir. Görünüm Mezuniyet şartları.
Modern Programlama Uygulamaları (Java programlama) (CS 401)
Bu ders, nesneye yönelik programlamanın temel ilkelerini sunar. Öğrenciler yeniden kullanılabilir ve daha iyi bakımlı yazılım yazmayı öğrenecek ve bu bilgiyi laboratuar ödevleri ve projeleriyle bütünleştireceklerdir. Konular şunları içerir: nesneye yönelik programlama temel ilkeleri ve modelleri, UML sınıf diyagramları ve yazılımın yeniden kullanılabilirliğini ve bakımını artıran tasarım ilkeleri. (4 birimleri)
Gelişmiş Yazılım Geliştirme (CS 525)
Bu ders, yazılım sistemlerinin iyi tasarımı için güncel yöntem ve uygulamaları ele almaktadır. Konular şunlardır: bu çok seviyeli soyutlamaları uygulamak için yazılım tasarım desenleri, çerçeveler, mimariler ve tasarım sistemleri. (2-4 kredisi) Önkoşul: CS 401 veya bölüm fakültesi onayı.
Algoritmalar (CS 435)
Bu ders, algoritmaların etkinliğini analiz etmek için yöntemler sunar (en kötü durum ve ortalama durum analizi dahil) ve çeşitli bilinen, yüksek verimli algoritmalar sunar. Algoritmaların analiz, tasarım ve uygulamalarına eşit önem verilir. Konular arasında arama ve sıralama, veri yapıları üzerindeki işlemlerin etkinliği (listeler, karma tablolar, dengeli ikili arama ağaçları, öncelik sıraları dahil), grafik algoritmaları, birleştirici algoritmalar, yinelenme ilişkileri, Dinamik Programlama, NP-tamamlayıcı problemler ve zamanla bazı özel konular bulunmaktadır izin verir. (Özel konular arasında hesaplama geometrisi, kriptosistemler için algoritmalar, yaklaşım, Büyük Veri ve paralel hesaplama yer almaktadır.)
Kurumsal Mimari (CS 544)
Bu ders, daha büyük ölçekli kurumsal uygulamalar geliştirirken kullanılan ilkeleri ve uygulamaları öğretmeye odaklanır. Nesne İlişkisel Haritalama (ORM), Bağımlılık Enjeksiyonu (DI), Yönelimli Programlama (AOP) ve Web Servisleri (RESTfull) ile diğer uygulamalarla entegrasyon da dahil olmak üzere, sık kullanılan farklı mimari katmanları ve bu katmanlarla ilgili farklı teknolojileri inceleyeceğiz. ve SOAP), Mesajlaşma ve uzaktan yöntem çağrısı. Çalışan ilişkisel veritabanları ve SQL hakkında bilgi sahibi olmalı. Eğer güçlü bir kurs veya iyi bir SQL çalışma bilginiz yoksa, EA'ya kaydolmadan önce CS422 DBMS'ye kaydolmalısınız. (4 birimleri)
Yazılım Mühendisliği (CS 425)
Yazılım Mühendisliği, öğrencilere yazılım geliştirme metodolojisi ile yazılım geliştirme alanındaki en iyi uygulamaları tanıtan bir derstir. Öğrenciler Nesne Yönelimli paradigması ile önceki derslerde bazı deneyimler yaşamış ve bazı temel UML diyagramlarını yazılım nesneleri arasındaki ilişkileri modellemek amacıyla kullanmışlardır. Yazılım Mühendisliğinde, öğrenci bu araçları bir araya getirerek sağlam, kolay bakım gerektiren bir yazılım üretmek için beceriler geliştirir. Bir yazılım geliştirme metodolojisi, OO kavramlarının ve UML diyagramlarının kaliteli yazılım oluşturma amacını gerçekleştirmek için ne zaman ve nasıl kullanılması gerektiğini açıklar. Ders, ders biçiminde tartışılan prensiplerin gösterilebileceği ve uygulanabileceği küçük bir proje etrafında yoğunlaşmaktadır. Bu dersin sonunda, öğrencinin RUP (Rational Unified Process) geliştirme metodolojisinin yüksek standartlarına uygun olarak inşa edilmiş bir uygulaması olacaktır.
Web Uygulama Mimarisi ve Çerçeveleri (CS 545)
Bu ders kurumsal uygulamalarda web uygulamalarına odaklanmaktadır. Bir kurumsal uygulama, bir kurum veya devlet gibi büyük bir organizasyonda çalışmak üzere tasarlanmış büyük bir yazılım sistemidir. Kurumsal uygulamalar karmaşık, ölçeklenebilir, bileşen tabanlı, dağıtılmış ve görev açısından kritik öneme sahiptir. Bu ders CS545, kurumsal bir web uygulamasının ön veya sunum katmanına odaklanır. CS544 Enterprise Architecture, iş mantığı, işlemler ve sebat dahil olmak üzere arka uç veya iş katmanına odaklanan bir eşlik dersidir. CS472, Web Uygulaması Programlama, HTML, CSS, JavaScript, sunucu uygulamaları ve JSP'yi kapsayan bir önkoşuldur.
Tabii, platformlar ve çerçeveler arasında genel olan prensipleri ve kalıpları öğretir. Elbette iki baskın Java web çerçevesi, Java Server Faces (JSF) ve SpringMVC ile birlikte çalışacak ve çalışacağız. JSF, bileşen tabanlı bir çerçevedir ve Java Enterprise Edition teknoloji yığını için resmi sunum çerçevesi özelliğidir. SpringMVC, Core Spring çerçevesinin bir parçasıdır ve son yıllarda en çok kullanılan Java web çerçevesi olmuştur. (4 birimleri) Önkoşul: CS 472 veya bölüm fakültesi onayı.
Web Uygulaması Programlama (CS 472)
Bu ders, etkileşimli ve dinamik web uygulamalarını programlamaya sistematik bir giriş sağlar. Tabii önceden web uygulaması programlama deneyimi az olan veya hiç olmayan bireylere yöneliktir. Bu teklif, sunucu tarafı işleme için Java sunucularını ve JSP'yi kullanır. Elbette HTML ve CSS tanıtılacaktır. JavaScript, kursun odak noktasıdır ve jQuery, Ajax ve JavaScript ad alanları ve modülleri içeren işlevsel bir programlama dili olarak ele alınmıştır. CS545 Web Uygulama Mimarisi için bir önkoşuldur. AngularJS veya NodeJS'i kapsamaz, ancak burada yer alan JavaScript sizi bu teknolojileri öğrenmeye hazırlar. (4 birimleri) Önkoşul: CS 220 veya CS 401 veya bölüm fakültesinin onayı.
Bilgisayar Uzmanları İçin Bilimin Bilimi ve Teknolojisi (506 İÇİN)
İlk kursunuz, en iyi performans gösteren bilgisayar bilimi uzmanı olmanın temelini oluşturmak için özel olarak tasarlanmıştır. Elbette Gerçek Potansiyelinizi gerçekleştirmenize yol açan Transandantal Meditasyon uygulamasına dayanır. Üstün zihinsel işlevsellik artırıcı yaratıcılık ve “kutudan çıkma” düşüncesiyle karmaşık sorunları çözme yeteneği de dahil olmak üzere TM'nin faydalarını öğreneceksiniz. Kurs, en uygun dinlenme ve aktivite karışımını geliştirerek aktivitedeki en yüksek performansı destekleyen prensiplere odaklanacaktır. Hayatta başarıyı destekleyen ideal bir günlük rutin geliştirecek ve deneyimleyeceksiniz. (2 birimleri)
Teknik Müdürler İçin Liderlik (FOR 506B)
Bu dersin amacı öğrencilere gelecekteki liderlik rollerine hazırlık olarak iletişim becerileri dahil olmak üzere liderlik hakkında bilgi ve beceri kazandırmaktır.
Bu dersin sonunda öğrenciler, aşağıdakiler de dahil olmak üzere, etkili liderlikle ilgili kilit soruların cevaplarını anlayacaklardır:
'Doğal doğan' liderler var mı?
Etkili bir şekilde liderlik etmek için karizmaya sahip olmak zorunda mısınız?
Lider olmak için hangi varlık gereklidir?
Yönetmekle liderlik yapmak arasındaki fark nedir?
Bu dönemde liderlik etmesi gereken birçok 'zeka' nelerdir?
'Yönetim yanlış uygulama' nedir ve kendi kendini sabote etmeye nasıl yol açar?
Bu geri bildirimin öncü süreç için çok önemli olduğunu bilmek, verme ve alma korkusunu nasıl yenebiliriz?
İşyerinde bulunan sorunların% 80'in kaynağı nedir?
Kurumun bireysel ve takım liderliği becerilerini geliştirmesinde yardımcı olacak bilimsel araştırmalar var mı?
Konuk konuşmacılar arasında tanınmış girişimciler, bilgisayar bilimcileri, hayırseverler, Akademisyenler ve toplumdaki diğer önde gelen liderler yer alacak.
(2 birimleri)
Ek MSCS Kursları
Gelişmiş Programlama Dilleri (CS 505)
Bu ders, programlama dili tasarımında biçimsel yöntemler ve soyutlama mekanizmaları üzerinde durularak ileri düzey konuları ele almaktadır. Konular, veri ve kontrol soyutlama, sözdizimi ve anlambilimin biçimsel özellikleri, program doğruluğunun kanıtları, deterministik olmayan programlama, gelişmiş kontrol yapıları ve belirli dillerin çalışmasını içerir. (4 birimleri) Önkoşul: CS 401 veya bölüm fakültesi onayı.
Büyük Veri (Veri Bilimi) (CS 522)
Modern bilgi işleme, geleneksel veri tabanı sistemleri tarafından idare edilemeyen geniş veri havuzları ile tanımlanmaktadır. Bu ders endüstri liderleri tarafından geliştirilen ve bu sorunu en verimli şekilde çözmek için kullanılan en son teknolojileri kapsar. Kapsanan belirli konular arasında MapReduce algoritmaları, MapReduce algoritması tasarım desenleri, HDFS, Hadoop küme mimarisi, YARN, hesaplama göreli frekansları, ikincil sıralama, web tarama, ters indeksler ve indeks sıkıştırma, Spark algoritmaları ve Scala sayılabilir. (4 birimleri) Önkoşul: CS 435 Algoritmaları.
Büyük Veri Analizi (Veri Bilimi) (CS 488)
Büyük Veri, yeni doğal kaynaktır: veriler her 12-18 ayda iki katına çıkmaktadır. Bu yeni Büyük Veri Analitiği kursu, yeni bilgiler üretmek için çok çeşitli veri setlerinin madenciliğinin temel kavramlarını ve araçlarını kapsar. Wordcloud, Pagerank, Veri Görselleştirme, Karar Ağaçları, Regresyon, Kümeleme, Yapay Sinir Ağları ve daha fazlasını oluşturmak için R dili kullanımında ustalaşacaksınız. Bazı büyük milyonlarca rekor veri setiyle birlikte çalışacaksınız ve ayrıca Twitter'daki yayınlarım. Hadoop / MapReduce ve Streaming Data kavramlarını öğrenecek ve Spark, Flink, Kafka, Storm, Samza, NoSQL gibi diğer Apache Büyük Veri Projelerini bireysel araştırma makaleleri ile keşfedeceksiniz. Türünün en iyisi olan veri analitik zorluklarını çözerek ödül parası kazanmak için Kaggle.com'dan açık projelerde gruplar halinde çalışacaksınız. Ayrıca, endüstri lideri IBM SPSS Modeler ve açık kaynaklı veri madenciliği platformlarını kullanmayı da öğreneceksiniz. Bu kursta kullanılan #1 en çok satanlar kitabı dersi veren kişi tarafından yazılmıştır. Tabii ayrıca MIT, Coursera, Google ve başka yerlerden çok çeşitli video eğitim materyallerini kullanacaktır. (4 birimleri) Önkoşul: Bölüm öğretim elemanının onayı
Büyük Veri Teknolojileri (Veri Bilimi) (CS 523)
Sadece birkaç kısa yıl içinde, büyük veri teknolojileri yutturmaca dünyasından yeni dijital çağın temel bileşenlerinden birine geçti. Bu teknolojiler, Bilgiyi Bilgiye dönüştürmek için çok faydalıdır.
Dersin amacı, çeşitli büyük veri sorunlarını çözmenize yardımcı olmak için cephaneliğinize gerçekten önemli bazı araçlar eklemektir. “Büyük Veri Nedir?” Gibi sorulara cevap vererek başlayacağız. Neden önemli veya faydalı? Bu büyük veriyi nasıl saklıyorsunuz? ”Ardından, büyük veri teknolojisi yığınından verileri analiz etmemize yardımcı olacak farklı araçlar ve programlama modellerini inceleyeceğiz. Konular arasında MapReduce, Pig, Hive, Sqoop, Flume, HBase (NoSQL DB), Zookeeper ve Apache Spark ekosistem projeleri gibi Hadoop ekosistemindeki bazı projeler bulunmaktadır. Ayrıca AWS ve EMR'ye bir giriş de içereceğiz. Çoğunlukla Cloudera'nın tek bir düğümlü Hadoop dağıtımıyla çalışacaksınız. (4 birimleri) (Önkoşul yok)
Bilgisayar Ağları (CS 450)
Bu dersin amacı, ağların nasıl çalıştığını ve ağ uygulamalarını geliştirdiğini keşfederek bilgisayar ağları kavramlarını, mimarlık ilkelerini ve terminolojisini öğrenmektir. Bu ders, internet mimarisini ve protokollerini ağ ilkelerinin uygulanmasının birincil örneği olarak kullanarak ağları anlama konusundaki yukarıdan aşağıya yaklaşımı takip eder. Uygulama katmanından başlıyoruz ve taşıma katmanını, ağ katmanını, bağlantı katmanını ve bilgisayar ağlarının fiziksel katmanını sürdürüyoruz. Öğrenciler, çeşitli ağ uygulamaları geliştirir ve İnternet'te kullanılan baskın ağ protokollerini izlemek ve anlamak için tasarlanan birkaç laboratuvarı tamamlar. (4 birimleri) Önkoşul: CS 401 veya bölüm fakültesi onayı.
Bilgisayar Güvenliği (CS 466)
Bu kurs, bilgisayar güvenliğinin üç yönüne derinlemesine gider: gizlilik, bütünlük ve kullanılabilirlik. Gizlilik ve bütünlük güvenlik politikaları için çeşitli modeller incelenmiştir. Şifrelemenin gizlilik ve bütünlüğü sağlamadaki rolü incelenmiştir. Diğer başlıklar arasında kimlik doğrulama, denetim, sızma testi, ortak güvenlik açıkları ve izinsiz giriş algılama bulunur. Elbette gerçekçi bir güvenli sistem vaka çalışması ile sona eriyor. Öğrencilerden güvenlik literatüründen makaleleri okumaları ve derslerde verilen materyallere uygulamaları istenecektir. (4 kredisi) Önkoşul: CS 401 veya bölüm öğretim üyelerinin onayı.
Veri Tabanı Yönetim Sistemleri (CS 422)
Veri tabanı sistemleri bilgileri düzenler ve alır, kullanıcının istenen bilgilere kolay ve verimli bir şekilde erişmesini sağlar. Konular şunlardır: ilişkisel veri modeli; SQL; ER modellemesi; ilişkisel cebir; veri normalizasyonu; işlemler; veritabanındaki nesneler; veri güvenliği ve bütünlüğü; veri depolama, OLAP ve veri madenciliği; dağıtılmış veritabanları; ve belirli bir ticari veritabanı sisteminin incelenmesi. (4 birimleri) Önkoşul: CS 401 veya bölüm fakültesi onayı.
Makine Öğrenimi (Veri Bilimi) (CS 582)
Bilgisayarlara veriden öğrenme yeteneği veren çalışma alanı olan Makine Öğrenimi, neredeyse her bilimsel disiplinin merkezinde yer almaktadır ve verilerden genelleme çalışması (yani, tahmin), makine öğreniminin ana konusudur. Bu ders, makine öğrenmesine lisans düzeyine giriş ve makine öğrenmesinde yeni ve ileri yöntemlerin derinlemesine ele alınmasının yanı sıra temel teorilerini de verir. Pratik alaka düzeyine sahip yaklaşımları vurgular ve Veri Madenciliği (Büyük Veri / Veri Biliminde, Veri Analitiğinde), Doğal Dil İşleme, Bilgisayarla Görme, Robotik, Biyoinformatik ve Metin ve Web veri işleme gibi son zamanlarda makine öğrenmesi uygulamalarını tartışır. Makine Öğrenimi Finansal Hizmetler, Petrol ve Gaz, Sağlık, Pazarlama ve Reklamcılık, Devlet, İnternet ve Nesnelerin İnterneti gibi çeşitli sektörlerde kullanılmaktadır.
Bu ders çeşitli öğrenme paradigmalarını, algoritmalarını, teorik sonuçlarını ve uygulamalarını kapsar. Yapay zeka, bilgi teorisi, istatistik ve kontrol teorisindeki temel kavramları makine öğrenmesiyle alakalı olduğu sürece kullanır. Konular şunlardır: denetimli öğrenme (üretken / ayırt edici öğrenme, parametrik / parametrik olmayan öğrenme, sinir ağları, destek vektör makineleri, karar ağacı, Bayesian öğrenme ve optimizasyon); denetimsiz öğrenme (kümeleme, boyutsallığın azaltılması, çekirdek yöntemleri); öğrenme teorisi (önyargı / varyans değişmeleri; VC teorisi; büyük marjlar); takviye öğrenme ve uyarlamalı kontrol. Diğer konular HMM (Gizli Markov Modeli), Evrimsel Hesaplama, Derin Öğrenme (Sinir Ağları ile) ve temel makine öğrenme problemleri için performansı titizlikle analiz edilebilecek algoritmalar tasarlamadır.
Dersin önemli bir kısmı grup projesidir. Paralel, dağıtılmış ve ölçeklenebilir bir makine öğrenmesi için kullanılan başlıca açık kaynak araçları, öğrencileri projeleri yaparken yardımcı olmak için kısaca ele alınacaktır. (4 birimleri) Önkoşul: Yok.
Mobil Cihaz Programlama (CS 473)
Mobil cihaz programlamanın önemi son yıllarda yazılım geliştirmede yeni bir alan olarak ortaya çıkmıştır. Bu ders öğrencileri IPhone, IPad veya Android telefon gibi mobil cihazlarda çalışan uygulamalar geliştirmeye hazırlar. Bu hızla gelişen bir pazar. Ders, mobil uygulamaları kurmaya, geliştirmeye, test etmeye ve dağıtmaya odaklanır. Bu dersin sonunda öğrenciler kapsanan platformlar için bir uygulama geliştirebilir, bunları simüle edebilir, gerçek cihazda test edebilir ve son olarak kullanıcılara ulaşılabilirlik sağlamak için uygulama mağazasında yayınlayabilir. (4 üniteleri) Önkoşul: CS472 veya bölüm fakültesi onayı.
Modern Web Uygulamaları (CS 572)
Bu derste SPA'nın Reaktif Programlama Mimarisini (Tek Sayfa Web Uygulamaları) ve tam bir Modern Web Uygulaması oluşturmak için gereken tüm becerileri öğreneceksiniz. Teknolojiler şunları içerir: NodeJS, ExpressJS, TypeScript, AngularJS2, Firebase ve NoSQL veritabanları (MongoDB). Kurs şunları içerecektir:
C ++ V8 altyapısı ve eşzamansız kod Düğüm ve Düğüm olay döngüsünde nasıl çalışır?
Yeniden kullanım için kodunuzu yapılandırma ve modülleri ve ExpressJS kullanarak Restful API oluşturma.
Angular'ın (Google tarafından desteklenen) nasıl çalıştığını derinlemesine anlama, Değişiklik Algılama, Gözlemlenebilir ve Gözlemlenen Reaktif RxJ'ler, Shadow DOM, Bölgeler, Modüller ve Bileşenler, Özel Direktifler ve Borular, Hizmetler ve Bağımlılık Enjeksiyonu, Açısal Derleyici, JIT ve AOF Derlemesi , Formlar (Sürülen Şablon ve Veri Sürülen), Veri Bağlama, Yönlendirme, Korumalar ve Güzergah Koruması, HTTP istemcisi, JWT JSON Web Token Authentication.
(4 birimleri)
İşletim Sistemleri (CS 465)
Bir işletim sistemi, bilgisayar sisteminin merkezi kaynaklarını kontrol eder ve bunları bireysel kullanıcılara tahsis eder. Ders konuları sıralı ve eşzamanlı işlemler, karşılıklı dışlama, kaynak paylaşımı, işlem işbirliği, kilitlenme, kaynak tahsisi, işlemci zamanlaması, bellek yönetimi, bölümlendirme ve çağrı algoritmaları, zaman paylaşım sistemleri, zamanlama algoritmaları ve kaynak korumasını içerir. (4 birimleri) Önkoşul: CS 401 veya bölüm fakültesi onayı.
Paralel Programlama (CS 471)
Tüm yeni bilgisayarların standart işlemcisi, artık programları daha hızlı yürütme potansiyeline sahip olan çok çekirdekli bir işlemciydi. Bununla birlikte, bu potansiyeli kullanmak için, bir programcının paralel programlama teknikleri hakkında biraz bilgisi olması gerekir. Bu kurs sırasında, öğrenciler zamanlarının çoğunu paralel programlar yazmak ve hata ayıklamak için harcarlar. Beklenen sonuç, yeni bir düzeyde pratik programlama becerisi geliştirmek olacak. Bu beceri sadece çok çekirdekli işlemcilerin programlanması için değil, işletim sistemleri programlaması ve dağıtık veritabanı programlaması için de faydalı olacaktır. Bu kursta kullanılan yazılım araçları arasında Microsoft Visual C / C ++, Java okuyuculu kitaplık ve OpenMP thread standardı bulunur. (4 birimleri) Önkoşul: Java, C veya C ++ kullanarak bilgisayar programlama bilgisi.
Yazılım Mimarisi (CS 590)
Bu derste, mikro hizmetleri kullanarak esnek, ölçeklenebilir, test edilebilir ve esnek yazılım sistemlerinin nasıl tasarlandığına ilişkin teknik, ilke ve kalıplara bakacağız. Büyük uygulamaları, monolitik kurumsal uygulamalara kıyasla daha kolay kurulabilen daha küçük mikro hizmetlere ve diğer avantajlara nasıl ayırabileceğimizi çalışacağız. Dağıtılmış bir mikro servis mimarisi de birçok zorluk yaratır. Bu zorlukları ve bunların nasıl ele alınacağını inceleyeceğiz. Bu dersin konuları mimari tarzlar, entegrasyon teknikleri ve kalıpları, alan odaklı tasarım, olay odaklı mimari ve reaktif programlamadır. (4 kredisi). (Önkoşul yok)
Yazılım Geliştirme Stajı (CS 575)
Bu uygulamalı derste öğrenciler, bilgisayarla ilgili görevleri teknik bir profesyonel pozisyonda yerine getirirler. Gerçekleştirilen görevler, yeni sistemler tasarlanmasında ve geliştirilmesinde veya mevcut sistemlerin belirli amaçlar için uygulanmasında olabilir. Uygulamalı iş tanımları, işveren ve öğrenci tarafından formüle edilir ve öğrencinin bulunduğu staj danışmanı ile istişare edilerek, bölümün lisansüstü birimlerinden birinin önceden onayını gerektirir. (Bu kurs öncelikle staj veya işbirliği programlarındaki öğrenciler içindir.) (Blok başına 0.5-1 ünitesi - tekrar edilebilir.)
“MSCS programını ilk duyduğumda şüphe ettim. Böyle bir şeyin var olduğuna inanamadım. Ancak bir gün programa bir arkadaşım katıldı. Gerçek olduğunu onayladığım zamandı. Sonra başvuru işlemime devam ettim. İyi! Doğru, buradayım, programı tamamladım ve çok mutluyum. ”