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ı.

Veri Bilimi derslerin bulunduğu yer

Standart Zorunlu Dersler

  • 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)

  • 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ı.

  • 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.)

  • 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, öğ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.

  • 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ı.

  • Bu ders, etkileşimli ve dinamik web uygulamalarını programlamaya sistematik bir giriş sağlar. Kurs, önceden web uygulaması programlama deneyimi çok az olan veya hiç olmayan kişilere yöneliktir. Bu teklif, sunucu tarafında işleme için Java servletlerini ve JSP'yi kullanacaktır. Kursta HTML ve CSS tanıtılacaktır. JavaScript, kursun odak noktasıdır ve jQuery, Ajax ve JavaScript ad alanları ve modülleri dahil olmak üzere işlevsel bir programlama dili olarak ele alınmıştır. CS545 Web Uygulama Mimarisi için bir ön koşuldur. AngularJS veya NodeJS'yi kapsamaz, ancak burada kapsanan JavaScript sizi bu teknolojileri öğrenmeye hazırlayacaktır. (4 tane)
    Önkoşul: CS 220 veya CS 401 veya bölüm fakültesinin onayı.

  • İlk kursunuz, nasıl en iyi performans gösteren bilgisayar bilimleri uzmanı olabileceğinizin temelini oluşturmak için özel olarak tasarlanmıştır. Kurs, gerçek potansiyelinizin gerçekleştirilmesine yol açan Transandantal Meditasyon uygulamasına dayanmaktadır. Yaratıcılığı artıran üstün zihinsel işleyişle karmaşık sorunları çözme yeteneği ve "kutudan çıkar çıkmaz" düşünme gibi TM'nin faydalarını öğreneceksiniz. Kurs, optimal bir dinlenme ve aktivite karışımı geliştirerek aktivitede en yüksek performansı destekleyen ilkelere odaklanacaktır. Hayatta başarıyı destekleyen ideal bir günlük rutin geliştirecek ve yaşayacaksınız. (2 adet)

  • 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?

    Kuruluşun bireysel ve ekip liderliği becerilerini geliştirmesine 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ı

  • 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ı.

  • 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, 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ı

  • 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.

    Kursun 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 yanıt vermeye başlayacağız. Neden önemlidir veya yararlıdır? Bu büyük veriyi nasıl depoluyorsunuz? " Daha sonra, verileri analiz etmemize yardımcı olacak büyük veri teknolojisi yığınından farklı araçları ve programlama modellerini inceleyeceğiz. Konular, Hadoop ekosistemindeki MapReduce, Pig, Hive, Sqoop, Flume, HBase (NoSQL DB), Zookeeper ve Apache Spark ekosistem projeleri gibi bazı projeleri içerir. Ayrıca AWS ve EMR'ye bir giriş yapacağız. Esas olarak Cloudera'nın tek düğümlü Hadoop dağıtımıyla çalışacaksınız. (4 adet) (Ön koşul yok)

  • Bu dersin amacı, ağların nasıl çalıştığını keşfederek ve ağ uygulamaları geliştirerek bilgisayar ağlarının kavramlarını, mimari ilkelerini ve terminolojisini öğrenmektir. Bu ders, ağ ilkelerinin uygulanmasının birincil örneği olarak İnternet mimarisini ve protokollerini kullanarak ağları anlamaya yönelik yukarıdan aşağıya yaklaşımı izler. Uygulama katmanından başlıyoruz ve taşıma katmanı, ağ katmanı, bağlantı katmanı ve bilgisayar ağlarının fiziksel katmanı boyunca devam ediyoruz. Öğrenciler, İnternette kullanılan baskın ağ protokollerini izlemek ve anlamak için tasarlanmış birkaç ağ uygulaması geliştirir ve birkaç laboratuvarı tamamlar. (4 adet) Önkoşul: CS 401 veya bölüm fakültesinin onayı.

  • 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ı 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ı.

  • Bilgisayarlara verilerden öğrenme yeteneği veren bir çalışma alanı olan Makine Öğrenimi, hemen hemen her bilimsel disiplinin merkezinde yer alır ve verilerden genelleme çalışması (yani tahmin), makine öğreniminin ana konusudur. Bu kurs, makine öğrenimine lisansüstü düzeyde bir giriş ve makine öğrenimindeki yeni ve gelişmiş yöntemlerin yanı sıra bunların altında yatan teorilerin derinlemesine incelenmesini sağlar. Pratik alaka düzeyine sahip yaklaşımları vurgular ve Veri Madenciliği (Büyük Veri / Veri Bilimi, Veri Analitiği), Doğal Dil İşleme, Bilgisayarla Görme, Robotik, Biyoinformatik ve Metin ve Web veri işleme gibi bir dizi yeni makine öğrenimi uygulamalarını tartışır. Makine Öğrenimi, Finansal Hizmetler, Petrol ve Gaz, Sağlık Hizmetleri, Pazarlama ve Reklamcılık, Devlet, İnternet ve Nesnelerin İnterneti dahil olmak üzere ç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 teorisinden temel kavramları, makine öğrenimiyle ilgili oldukları ölçüde 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ı, Bayes öğrenme ve optimizasyon); denetimsiz öğrenme (kümeleme, boyutluluk azaltma, çekirdek yöntemleri); öğrenme teorisi (önyargı / varyans değiş tokuşları; VC teorisi; büyük marjlar); pekiştirmeli öğrenme ve uyarlanabilir kontrol. Diğer konular arasında HMM (Gizli Markov Modeli), Evrimsel Hesaplama, Derin Öğrenme (Sinir Ağları ile) ve temel makine öğrenimi problemleri için performansı titizlikle analiz edilebilen algoritmalar tasarlama yer alı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 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ı.

  • 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.
    • NoSQL veritabanlarının nasıl çalıştığı: Mongo Shell, Aggregation framework, Replica Set, Clustering, Shards, Mongoose ORM.
    • 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)

  • Bir işletim sistemi, bilgisayar sisteminin merkezi kaynaklarını kontrol eder ve bunları bireysel kullanıcılara tahsis eder. Ders konuları arasında sıralı ve eşzamanlı süreçler, karşılıklı dışlama, kaynak paylaşımı, süreç işbirliği, kilitlenme, kaynak tahsisi, işlemci zamanlaması, bellek yönetimi, bölümleme ve sayfalama algoritmaları, zaman paylaşım sistemleri, zamanlama algoritmaları ve kaynak koruması yer alır. (4 adet) Önkoşul: CS 401 veya bölüm fakültesinin onayı.

  • 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.

  • 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)

  • Bu uygulama dersinde, öğrenciler bilgisayarla ilgili görevleri teknik bir profesyonel pozisyonda gerçekleştirirler. Gerçekleştirilen görevler, yeni sistemlerin tasarımı ve geliştirilmesi veya belirli amaçlar için mevcut sistemlerin uygulanması olabilir. Staj görev tanımları, işveren ve öğrenci tarafından oluşturulur ve öğrencinin yerleştirildiği staj sorumlusu ile görüşülerek bölümün lisansüstü fakültelerinden birinin onayını gerektirir. (Bu ders öncelikle staj veya işbirliği programlarındaki öğrenciler içindir.) (Blok başına 0.5-1 birim - tekrarlanabilir.)

"MSCS programını ilk duyduğumda şüphelendim. Böyle bir şeyin var olduğuna inanamadım. Ama bir gün programa bir arkadaşım katıldı. Gerçek olduğunu o zaman onayladım. Ardından başvuru sürecime devam ettim. İyi! Doğru, buradayım programı tamamladım ve çok mutluyum. "