Software Engineering
Der Bachelor of Science in Software Engineering bereitet Software-Ingenieure vor: kollaborative Fachleute, die im Team arbeiten, um Softwareprodukte pünktlich, im Budgetrahmen und gemäß den Kundenanforderungen zu entwickeln. Absolventen dieses Programms werden über das praktische Wissen und die Fähigkeiten eines definierten Ingenieuransatzes für die Analyse, Planung, das Design und den Bau komplexer Systeme verfügen. Die Lehrveranstaltungen bauen auf den Grundlagen der Informatik und mathematischen Prinzipien auf, um das Design, die Analyse, die Verifizierung, die Validierung, die Implementierung, die Bereitstellung und die Wartung von Softwaresystemen abzudecken.
Es gibt oft Verwirrung über die Unterschiede zwischen Informatik, Software Engineering und IT/IS. Das folgende Diagramm der Association for Computing Machinery (ACM) gibt Einblick in die Beziehung zwischen den einzelnen Bereichen.
Elektroingenieure (EE) sind hauptsächlich mit Hardware-Design beschäftigt, während Computer-Ingenieure (CE) Systeme entwerfen, die sowohl Hardware als auch Software umfassen. Die Informatik (CS) behandelt die Konzepte und Technologien, die damit verbunden sind, wie man einen Computer dazu bringt, etwas zu tun (Grafik, Robotik usw.), und Software Engineering (SE) konzentriert sich darauf, wie man Software entwirft und erstellt. Es gibt eine erhebliche Überschneidung zwischen Informatik und Software Engineering, und der Schnittpunkt zwischen beiden ist oft das Programmieren; es gibt jedoch einen entscheidenden Unterschied. Informatiker testen Theorien und arbeiten am Rand des Unbekannten. Software Engineering ist eine Ingenieurdisziplin. Ingenieurwesen beginnt mit dem Wissen, das bereits als zuverlässig erwiesen ist, und entwickelt Lösungen für technische, gesellschaftliche und kommerzielle Probleme. Informationstechnologie (IT) und Informationsdienste (IS) konzentrieren sich darauf, technologische Lösungen für eine Organisation bereitzustellen.
Das Software Engineering-Programm des Snow College bietet den Studierenden eine Bildungserfahrung, die auf traditioneller Informatik und Ingenieurwesen aufbaut und Software-Ingenieure hervorbringt, die qualitativ hochwertige Software systematisch, kontrolliert und effizient erstellen. Dies wird auf folgende Weise erreicht:
Der Abschluss legt einen starken Schwerpunkt auf Mathematik und die Anwendung von Ingenieurmethoden im Softwaredesign.
Die Kurse legen Wert auf Softwareprozesse und -lebenszyklen und nutzen einen teamorientierten Ansatz zur Softwareentwicklung mit aktivem Lernen ("learning by doing"), was auch Führungsmöglichkeiten, wie z.B. Rollen als Teamleiter in der Softwareentwicklung, für jeden Studenten bietet.
Die Kurse beinhalten bedeutendes Lernen in Managementbereichen wie Projektplanung, Ressourcenallokation, Qualitätssicherung, Testen, Metriken, Wartung und Fehlersuche, Konfigurationsmanagement und Personalmanagement.
Die Kurse integrieren Studententeams, um an Aktivitäten zu arbeiten, die speziell darauf ausgelegt sind, die Studierenden zu leiten, um ihr eigenes Verständnis von Schlüsselkonzepten gemeinsam zu konstruieren und gleichzeitig wichtige Prozessfähigkeiten wie Kommunikation, Teamarbeit, kritisches Denken und Problemlösung zu entwickeln.
Die Studierenden haben die Wahl zwischen einer Vertiefung in:
- Unternehmertum: Die Kombination von rechnerischem und unternehmerischem Denken zur Identifizierung, Bewertung und Umsetzung von Ideen, die neue Märkte und Technologien schaffen.
- Digital Media Design: Die Verwendung integrierter Medien zur Kommunikation von Botschaften über elektronische Medien wie das Internet, Film, Fernsehen und mobile Technologien.
Webentwicklung: Die Verwendung von Werkzeugen wie HTML, CSS und JavaScript zur Erstellung und Pflege hochwertiger, interaktiver Websites.
Der Lehrplan für Software Engineering kulminiert in einer einjährigen Abschlusssequenz, in der die Studierenden in Teams arbeiten, um ein Softwaresystem zu erstellen, das den aktuellen Praktiken in der Branche entspricht. Darüber hinaus werden die Studierenden ermutigt, vor und während der Einschreibung in diese Abschlusskurse Praktika zu absolvieren, um direkte Branchenerfahrung und Einblicke zu gewinnen, bevor sie ihre eigenen Projekte beginnen. Das Snow College wird mit Unternehmen zusammenarbeiten, um diese Lernmöglichkeiten zu entwickeln, die den Studierenden branchenspezifische Erfahrungen bieten.
Das Software Engineering-Programm des Snow College bereitet die Studierenden darauf vor, sofort in den Beruf des Software-Ingenieurs einzutreten oder weiterführende Bildungsangebote zu verfolgen. Die ersten beiden Jahre des Programms sind auch mit einem Transfer zu einer Institution kompatibel, die einen Abschluss in Informatik anbietet.
Software Engineering Kurse
- SE 3250 Überblick über Programmiersprachen
- SE 3410 Menschliche Faktoren - Software Design
- SE 3450 SW Design Prinzipien, Muster
- SE 3520 Datenbanksysteme
- SE 3620 Entwicklung verteilter Anwendungen
- SE 3630 Entwicklung mobiler Anwendungen
- SE 4120 Management von Softwareprojekten
- SE 4220 Grafische Benutzeroberflächen
- SE 4320 Persönliche Softwarepraktiken
- SE 4400 SE Praktikum I
Karrieren im Software Engineering
Software Engineering ist die Anwendung von Ingenieurprinzipien auf die Entwicklung von Software. Informatiker lernen, was wahr ist, wie man Hypothesen testet und wie man Wissen in ihrem Bereich erweitert. Software-Ingenieure lernen, was wahr ist, was nützlich ist und wie man gut verstandenes Wissen anwendet, um praktische Probleme zu lösen.
Karrierewege im Software Engineering
- Anwendungsentwicklung: Problemlösungsbasierte, nicht-webbasierte Softwareentwicklung, die Programmiersprachen wie Java und C# umfasst.
- Systementwicklung: Entwurf und Codierung von Hintergrundsoftware, die zur Unterstützung der Anwendungsentwicklung erstellt wurde; umfasst Programmiersprachen wie C und C++.
- Webentwicklung: Entwurf von Software oder Anwendungen, die in einem Webbrowser ausgeführt werden und Programmiersprachen wie HTML, JavaScript und PHP verwenden.
- Entwicklung eingebetteter Systeme: Entwurf von Computersystemen und Software, die auf nicht-rechnerischen Geräten wie Automobilen funktionieren. Verwendet Programmiersprachen wie C und Assemblersprachen.
Verdienste für Software-Ingenieure
Laut dem Bureau of Labor Statistics liegt das typische Einstiegsgehalt bei etwa 70.000 USD, und die meisten Karrieren im Software Engineering zahlen zwischen 80.000 und 105.000 USD pro Jahr. Das Verdienstpotenzial variiert je nach Standort, Erfahrung, Ausbildung, Branche, Arbeitgeber und Zertifizierung.
Fähigkeiten, die für Software Engineering benötigt werden
Fachleute im Software Engineering sind kompetenzbasiert und erfordern hochspezialisierte Schulungen in technischen und nicht-technischen Bereichen. Arbeitgeber suchen nach Kandidaten, die eine Mischung aus technischen und sozialen Fähigkeiten besitzen. Zu den von Arbeitgebern geschätzten sozialen Fähigkeiten gehören Kommunikation, Organisation, Projektmanagement, Problemlösung, kritisches Denken und Entscheidungsfindung.
Neben sozialen Fähigkeiten entwickeln Software-Ingenieure auch technische und branchenspezifische Fähigkeiten, die für alle Karrieren im Computer Engineering und spezifische Praxisbereiche anwendbar sind. Beispielhafte technische Fähigkeiten umfassen Programmiersprachen, Computerhardware und -software sowie Systemarchitektur.
Vorbereitung auf eine Karriere im Software Engineering
1) Erwerben Sie einen Abschluss in Software Engineering oder einem verwandten Bereich. Die meisten Positionen für Software-Ingenieure erfordern einen Bachelor-Abschluss. Ein Hauptfach in Software Engineering bietet den nützlichsten Hintergrund für das Entwerfen und Perfektionieren von Software. Um sich auf Ihre Karriere vorzubereiten, können Sie Folgendes tun.
2) Beginnen Sie sofort mit dem Programmieren. Selbst wenn Sie noch in der Grundschule sind, können Sie sich einen großen Vorsprung verschaffen, indem Sie sich selbst Programmieren beibringen. Software Engineering konzentriert sich nicht ausschließlich auf das Codieren, aber Sie müssen mindestens ein paar Sprachen kennen und ein tieferes Verständnis dafür haben, wie sie funktionieren. Es gibt keine weit verbreitete Einigung darüber, welche Sprachen am nützlichsten sind, aber diese sind alle beliebte Optionen:
- C++
- C#
- Java
- JavaScript
- Python
3) Studieren Sie Mathematik. Software-Ingenieure erstellen manchmal die mathematischen Algorithmen, die es Software ermöglichen, zu funktionieren. Konzentrieren Sie sich darauf, Ihre Mathematikfähigkeiten zu entwickeln und aufrechtzuerhalten, um Ihr Bestes zu geben, sobald Sie eine Position als Software-Ingenieur erhalten haben.
4) Entwickeln Sie Software. Der beste Weg, Ihre Fähigkeiten zu verbessern, besteht darin, sie zu nutzen. Ob professionelle Projekte oder persönliche, das Entwerfen und Codieren von Software wird Ihnen viel beibringen. Für viele Arbeitgeber zählen praktische Erfolge mehr als GPA oder theoretisches Wissen.
5) Suchen Sie ein Praktikum. Viele Studierende im Software Engineering arbeiten als Praktikanten, während sie ihr Studium abschließen. Dies kann eine hervorragende Möglichkeit sein, praktische Schulungen zu erhalten und Kontakte zu potenziellen Arbeitgebern zu knüpfen.
6) Überlegen Sie sich Ihre Karriereziele. Die Softwarebranche verändert sich ständig. Verbessern Sie kontinuierlich Ihr Wissen und Ihre praktischen Fähigkeiten. Treten Sie einer Berufsorganisation wie ACM oder IEEE bei, um Networking-Möglichkeiten zu nutzen. Streben Sie Zertifizierungen an, die für Ihr Interessengebiet relevant sind. Sehen Sie sich die Snow-Stufen für Möglichkeiten an, um Ihren Weg im Software Engineering zu beginnen.
Verfügbare berufliche Zertifizierungen
Es gibt eine Vielzahl von Zertifizierungen, die Sie anstreben können, um Ihre Fähigkeiten mit bestimmten Sprachen, Produkten oder Berufsrollen zu demonstrieren. Einige spiegeln breites Wissen wider, andere konzentrieren sich auf enge Fähigkeiten in spezialisierten Bereichen.
Anwendungsingenieure mit breitem Wissen möchten möglicherweise Zertifikate über das Institute of Electrical and Electronics Engineers (IEEE) anstreben. Die Softwareentwicklung-Zertifikate der IEEE-Gesellschaft spiegeln das Wissen im Software Engineering Body of Knowledge Guide (SWEBOK) wider. Sie sind international anerkannt.