SE 4620 Distributed Application Development
- Division: Natural Science and Math
- Department: Computer Science & Engineering
- Credit/Time Requirement: Credit: 3; Lecture: 3; Lab: 0
- Prerequisites: SE 3520 (Databases) CS 2680 (Operating Systems)
- Corequisites: SE 4340 SE 4450
- Semesters Offered: Spring
- Semester Approved: Spring 2020
- Five-Year Review Semester: Summer 2025
- End Semester: Fall 2025
- Optimum Class Size: 20
- Maximum Class Size: 24
Course Description
The course introduces students to the fundamental principles common to the design and implementation of programs that run on two or more interconnected computer systems. It will concentrate on systems and software issues that are critical for building advanced Internet-scale application systems, including web servers, web proxies, application servers, database servers, and a number of prominent Internet application areas.
Justification
Applications span beyond just a laptop or a single server require a set of skills to enable a seamless solution. Synchronization, messaging, persistence, replication, multi-phase-commit, integrated logging and transaction control methods are required. This is a required course for the Bachelor of Science in Software Engineering degree. This course is most similar to Southern Polytechnic State University's course CS 4253 (Distributed Computing).
Student Learning Outcomes
- Students will demonstrate understanding of distributed operating system and network protocols for process communication, synchronization, scheduling, exception and deadlock resolution.
- Students will demonstrate via use their understanding of client-server, web-based collaborative systems.
- Students will demonstrate understanding of parallel computing.
- Students will demonstrate their ability to solve concurrency issues.
- Students will exercise API's for distributed application development.
Course Content
Learn and experiment with Amazon Web Services (AWS):
• console management
• host a static website
• build a web application
• deploy a web application
Understand distributed system components:
• distributed system characteristics
• system models
• networking / internetworking
• IPC / RPC
• distributed objects
• web services
• peer to peer
• security
• distributed file systems
• name services
• time
• transactions and concurrency control
• replication
Key Performance Indicators: Tests 25 to 40%Assignments 20 to 40%Quizzes 15 to 30%Class participation 5 to 10%Representative Text and/or Supplies: Authors: Tim Kindberg,Gordon Blair,George Coulouris,Jean Dollimore Title & Edition: Distributed Systems: Concepts and Design, 5/EAuthors: Simon Timms,James Chambers,David Paquette Title & Edition: ASP.NET Core Application Development: Building an application in four sprints, 1/EAuthors: Giles Colborne Title & Edition: Simple and Usable Web, Mobile, and Interaction Design, 2/EAuthors: Terry Felke-Morris Title & Edition: Web Development and Design Foundations with HTML5, 8/E Authors: Joseph Annuzzi,Shane Conder,Lauren Darcey Title & Edition: Introduction to Android Application Development: Android Essentials, 5/EPedagogy Statement: This course will be delivered through in class discussions, lecture and project mentoring.Instructional Mediums: Lecture