Yazılım Mühendisliği Yüksek Lisans Derecesi
College Park, Amerika Birleşik Devletleri
SÜRE
2 Years
DILLER
Ingilizce
HIZ
Tam zamanlı, Yarı zamanlı
SON BAŞVURU TARIHI
Son başvuru tarihini talep edin
EN ERKEN BAŞLAMA TARIHI
En erken başlangıç tarihini talep edin
ÖĞRENIM ÜCRETLERI
USD 45.000 / per course *
ÇALIŞMA FORMATI
Uzaktan Eğitim, Kampüste
* kampüste eğitim: kredi saati başına 1.086,53 $ / çevrimiçi eğitim: kredi saati başına 1.340,39 $
Tanıtım
Yazılım Mühendisliği programı, güvenilir ve verimli davranan, geliştirilmesi ve sürdürülmesi uygun fiyatlı ve müşterilerin onlar için tanımladığı tüm gereksinimleri karşılayan yazılım sistemlerinin geliştirilmesi ve sürdürülmesi ile ilgilidir. Fakültemiz, NASA, DARPA, Raytheon ve Lockheed Martin'deki büyük projelerde en son Yazılım Mühendisliği ilkelerini uygulayan birinci sınıf araştırmacı ve uygulayıcılardan oluşmaktadır.
Programımız aracılığıyla Mühendislik Yüksek Lisansı veya Mühendislik Yüksek Lisans Sertifikası kazanan öğrenciler, müşteri ihtiyaçlarına uygun, uygun maliyetli, güvenilir ve verimli yazılım sistemleri geliştirmeyi ve sürdürmeyi öğreneceklerdir. Kurslar, öğrencileri acil gerçek dünya sorunlarını çözmeye yardımcı olmaya hazırlayan üç teknik alana (siber güvenlik, bilgisayar mühendisliği ve sistem mühendisliği) odaklanır.
kabul
Müfredat
Lisans Derecesi Gereksinimleri
Mühendislik Yüksek Lisansı: 30 Kredi veya 10 Ders
Bu seçeneği tercih eden öğrencilerin temel müfredattan beş dersi, 1 yazılıma özgü teknik seçmeli dersi ve 4 ek teknik seçmeli dersi tamamlamaları gerekir. Bu derece için gerekli herhangi bir araştırma veya tez yoktur.
Mühendislik Yüksek Lisans Belgesi: 12 Kredi veya 4 Kurs
Mühendislik Yüksek Lisans Sertifikası almak isteyen öğrencilerin aşağıdaki dört dersi tamamlaması gerekir:
- ENPM611, Yazılım Mühendisliği
- ENPM612, Sistem ve Yazılım Gereksinimleri
- ENPM613, Yazılım Tasarımı ve Uygulaması
- ENPM614, Yazılım Testi ve Bakımı
Dersler
ENPM611 Yazılım Mühendisliği (3 Kredi) | Çekirdek
Güz 2024 M 16:00 - 18:40 Christopher Ackermann
Hem teorisyen hem de uygulayıcı için önemli olan yazılım mühendisliği kavramları, yöntemleri ve uygulamaları ele alınacaktır. Bir yazılım mühendisinden beklenen tüm sorumluluklar sunulmaktadır. Gereksinim geliştirme, yazılım tasarımı, programlama dilleri ve test gibi temel alanlar kapsamlı bir şekilde ele alınmaktadır. Sistem mühendisliği, proje yönetimi ve yazılım tahmini gibi destekleyici alanlara ilişkin oturumlar da dahildir.
Önkoşul: Bir programlama dilinde yeterlilik ve bir lisans yazılım mühendisliği dersini veya ders eğitmeninin iznini tamamlamış olmanız gerekir.
ENPM612 Sistem ve Yazılım Gereksinimleri (3 Kredi) | Çekirdek
Gereksinim geliştirmenin teorik ve pratik yönlerine odaklanılacaktır. Öğrenciler gereksinimlerin yerini, kullanıcılarla nasıl çalışılacağını, gereksinim yöntem ve tekniklerini, çeşitli gereksinim türlerini, gereksinim geliştirme programlarının nasıl belirleneceğini, gereksinimlerin gelişimini, gereksinimlerin nasıl modelleneceğini ve prototip edileceğini, gereksinimlerdeki riskin nasıl değerlendirileceğini ve yönetileceğini tanıyacak, Gereksinimleri test etme teknikleri, gereksinim sürecinin nasıl yönetileceği ve etkili bir gereksinimler belgesinin nasıl yazılacağı.
Önkoşul: ENPM611.
ENPM613 Yazılım Tasarımı ve Uygulaması (3 Kredi) | Çekirdek
2024 Güz 19:00 - 21:40 Tony Barber
İhtiyacın veya sorunun anlaşılmasından uygun mimarinin ve ayrıntılı tasarım çözümlerinin oluşturulmasına, uygulama ve bakım sırasında tasarımın korunmasına ve geliştirilmesine kadar olan yazılım tasarım sürecini kapsar. Ana çalışma konuları arasında gereksinim analizi modelleri; kullanıcı merkezli tasarım; ayrıştırma ve kompozisyon yoluyla mimari tasarım; güvenlik ve kullanılabilirlik gibi çeşitli kalite özelliklerini destekleyen mimari stiller ve mimari taktikleri; yeniden kullanıma yönelik ve yeniden kullanıma yönelik tasarım; ayrıntılı tasarım nesnesine yönelik ilkeler (SOLID gibi) ve tasarım kalıpları; tasarım çözümlerini değerlendirme, karşılaştırma ve seçme yaklaşımları; mimari görünümleri, ayrıntılı tasarımı ve analiz modellerini belgelemek için standart gösterimler; ve tasarım çıktıları oluşturmaya yönelik endüstri standartları. Öğrenciler yalnızca teknik bilgi edinmekle kalmayacak, aynı zamanda iletişim, işbirliği, eleştirel düşünme, liderlik, müzakere ve zaman yönetimi gibi sosyal beceriler de kazanacaklardır.
Önkoşul: ENPM611.
ENPM614 Yazılım Testi ve Bakımı (3 Kredi) | Çekirdek
Bu dersin amacı yazılım testi ve bakımına genel bir bakış sağlamak ve bu faaliyetlerin Yazılım Mühendisliği Yaşam Döngüsüne nasıl uyduğunu sağlamaktır. Derslerde kullanılan örneklerin çoğu, çeşitli NASA sistemlerinin analizinden elde edilmiştir. Konular arasında Fonksiyonel Test, Kombinatoryal Test, Yapısal Test, Model Tabanlı Test, Güvenlik odaklı testlerin yanı sıra Yazılım Mimarisinin test edilebilirlik ve sürdürülebilirlikteki rolü, Regresyon Testi, Otomatik Test, MC/DC kapsamı dahil Test Kapsamı gibi çeşitli test biçimleri yer almaktadır. ve standartların test edilmesi.
Önkoşul: ENPM611.
ENPM637 Yazılım Mühendisliği Projelerini Yönetmek (3 Kredi) | Seçmeli
Bu ders yazılım mühendisliği projelerini yönetmenin kapsamını ele alır. İlham veren yazılım mühendislerini yazılım proje liderlerine dönüştürmeye yardımcı olacaktır. Ders, yazılım projelerinin gerçekçi bir yazılım mühendisliği bağlamında yönetimi için ileri düzey ilkeler, yöntemler ve araçlar öğretecektir. Geleneksel Proje Yönetimi Enstitüsü (PMI) ve Çevik proje yönetimi paradigmalarının uygulama odaklı bir melezi olan Entegre Yalın Proje Yönetimi (ILPM) çerçevesine koçluk yapılacaktır. Bu dersi tamamladıktan sonra öğrenciler şunları yapabilecektir: ilgili iş senaryolarını oluşturarak, müşteri gereksinimlerini yöneterek, yazılım mühendisliği proje planının ve planlama sürecinin temel bileşenlerini geliştirerek, yazılım projesi risklerini tanımlayarak ve risk azaltma stratejileri geliştirerek yazılım mühendisliği projelerini seçebilecek ve gerekçelendirebileceklerdir. , ürünü oluşturmak ve teslim etmek için bir proje ekibi geliştirmek, yazılım mühendisliği projesinin yönetimiyle ilgili ortak zorlukları çözmek ve bunlardan kaçınmak için yöntemleri anlamak ve uygulamak, uygulama sonrası inceleme yapmak ve yazılım geliştirme projelerinin etkinliğini ve verimliliğini artırmak.
ENPM655 Yapay Zeka Tabanlı Yazılım Sistemleri (3 Kredi) | Seçmeli
ELMS 2024 Sonbahar Ders saatleri/ayrıntıları Mikael Lindvall, Joshua Giltinan
Bu yeni dersin amacı, yapay zeka (AI) bileşenlerini temel alan yazılım sistemlerini belirleme, geliştirme ve test etme konusundaki önemli sorunu ele almaktır. Bu tür sistemler genellikle güvenlik açısından kritik olduğundan veya başka nedenlerden dolayı güvenilir olmaları gerektiğinden, kalitenin yazılım geliştirme yaşam döngüsü boyunca oluşturulması gerekir. Her ne kadar bu konulara değinecek olsak da, dersin odak noktasının genel yazılım mühendisliği ya da sinir ağlarının nasıl eğitileceği olmadığını belirtmek önemlidir. Dersin özü, yapay zekayı temel alan veya kullanan yazılım sistemlerinin nasıl belirleneceği, geliştirileceği ve test edileceği ile ilgilidir. Veri bilimcileri genellikle en son tekniklerle modeller oluşturmada harikadır, ancak bu modelleri çalışan yazılım ürünlerine dahil etmek farklı mühendislik zorlukları ortaya çıkarır. Örneğin veri bilimcileri, statik veri kümeleri üzerinde sürümlendirilmemiş not defterleriyle çalışabilir ve ölçeklenebilirliği, sağlamlığı, güncelleme gecikmesini veya işletme maliyetini göz ardı ederken tahmin doğruluğuna odaklanabilir. Bunun aksine, yazılım mühendisleri genellikle net spesifikasyonlarla eğitilirler ve koda odaklanma eğilimindedirler, ancak verilerle ve güvenilmez modellerle çalışmanın zorluklarının farkında olmayabilirler. Karar verme ve kalite güvencesi için geniş bir araç setine sahipler ancak bunları yapay zeka destekli sistemlere ve bunların zorluklarına nasıl uygulayacaklarını bilemeyebilirler. Bu ders şu tür soruları tartışmaktadır: Akıllı sistemler oluşturmak için mevcut SE uygulamaları ne dereceye kadar kullanılabilir? Yeni uygulamalara ne ölçüde ihtiyaç var? Bu ders, bir yazılım mühendisinin bir makine öğrenimi fikrini ölçeklenebilir ve güvenilir bir ürüne dönüştürmek için neler yapabileceğine odaklanarak akıllı sistemler oluşturmaya yönelik bir yazılım mühendisliği perspektifini benimser. Ders, yazılım ve sistem mühendisliği terminolojisini ve tekniklerini (örneğin, test kapsamı, mimari görünümler, hata ağaçları) kullanacak ve bu tür tekniklerin makine öğrenimi/yapay zeka bileşenlerinde kullanılmasının ortaya çıkardığı zorlukları tartışacaktır. Kurs, ilgili kavramların (örneğin, özellik mühendisliği, doğrusal regresyon, hata ağaçları ve sinir ağları) temel bir anlayışını sağlamak için makine öğrenimi ve yapay zekanın temellerini öğretme/yenileme üzerine bir ders içerecektir. Ders aynı zamanda tasarım odaklı düşünme ve ödünleşme analizini de kısaca kapsayacaktır. Öncelikle şu anda kullanılabilecek pratik yaklaşımlara odaklanacak ve modern araçlar ve altyapıyla uygulamalı uygulamalara yer verecek.
ENPM680 Yazılım Mühendisliği için Güvenli Kodlamaya Giriş (3 Kredi) | Seçmeli
ELMS Gananand Kini ile ilgili Güz 2024 ders saati/ayrıntıları
Yazılım günlük hayatımıza nüfuz ediyor ve küresel olarak insanlar tarafından kullanılan birçok teknolojinin kritik bir parçası. İletişim, finans, üretim vb. dahil olmak üzere teknolojinin kullanıldığı önemli sayıda alan dahil ancak bunlarla sınırlı olmamak üzere uygulamaları hem karmaşık hem de çeşitlidir. Yazılım, çeşitli faktörlerden dolayı başarısız olma eğilimindedir [1] ve yazılım arızalarının bu nedenleri hatalar olarak anılır. Bununla birlikte, bu hataların önemli bir sınıfı, bu tür yazılım sistemlerinin yönetilmesinin ve çalıştırılmasının güvenliğini destekleyen gizlilik, bütünlük, kullanılabilirlik ve inkar edilemezlik ilkelerini etkileyen ciddi güvenlik sonuçlarına sahip olma eğilimindedir. Bu kurs, bu tür güvenlik hatalarını analiz etmek ve karakterize etmek için temel kavramları ve teknikleri ve bunları azaltmanın potansiyel yollarını kapsayacaktır. Kavramlar, yazılımın davranışını güvenlik etkileriyle değiştirmeye veya alt üst etmeye yönelik düşmanın niyeti bağlamında tanıtılacak ve tartışılacaktır. Kurs, öğrencilerin önceden herhangi bir güvenlik deneyimine sahip olmasını beklememektedir. Bu dersten sonra öğrenci aşağıdaki konulara aşina olacaktır: 1. Güvenlik zayıflıklarını bulmak için bir yazılım uygulamasını denetleme. 2. CWE kullanarak zayıf yönleri tanımlamak. 3. Akran kod incelemesinde kullanılan metodoloji ve teknikler. 4. Güvenlik zayıflıklarını bulmak için analiz araçlarını kullanmak. [1] https://spectrum.ieee.org/computing/software/why-software-fails
ENPM696 Tersine Yazılım Mühendisliği (3 Kredi) | Çekirdek
Güz 2024 W 16:00 - 18:40 Allen Hazelton
Bu kurs, yazılım tersine mühendislik kavramlarının derinlemesine anlaşılmasını ve sökücüler, derleyiciler ve kod analizörleri dahil tersine mühendislik araçlarıyla uygulamalı eğitim sağlar. Öğrenciler ikili tersine çevirme oturumları aracılığıyla hem düşük seviyeli yazılıma hem de x86 komut setine aşina olacaklardır. Bu ders aynı zamanda sistem güvenliği, kaynak kod analizi, yazılım tasarımı ve program anlayışı gibi çeşitli alanlarda faydalı olacak birçok konuya ilişkin bilgiler sağlar.
Önkoşul: ENPM691 ve CMSC106
Sıralamalar
Online Programlar
#6 Çevrimiçi Lisansüstü Mühendislik Programları - ABD Haberleri ve Dünya Raporu En İyi Çevrimiçi Lisansüstü Mühendislik Programları
ABD Lisansüstü Programları
#19 Mühendislik Lisansüstü - ABD Haberleri ve Dünya Raporu 2023 En İyi Mühendislik Lisansüstü Programları
Uzmanlık:
- #15 Havacılık ve Uzay Mühendisliği
- #16 Elektrik Mühendisliği; #15 Bilgisayar Mühendisliği
- #17 Makine Mühendisliği
Girişimcilik Sıralaması
- #7 Lisans Programı
- #18 Yüksek Lisans Programı
Princeton Review'un Girişimcilik Programlarına Yönelik En İyi 50 Okulu"
Program Öğrenim Ücreti
İngilizce Dil Gereksinimleri
Duolingo İngilizce Testi ile İngilizce yeterliliğinizi onaylayın! DET, dünya çapında 4.000'den fazla üniversite (bunun gibi) tarafından kabul edilen kullanışlı, hızlı ve uygun maliyetli bir çevrimiçi İngilizce sınavıdır.