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: Fall, Spring
- Semester Approved: Spring 2026
- Five-Year Review Semester: Fall 2030
- End Semester: Fall 2031
- 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
- Upon successful completion of the course, students will be able to demonstrate understanding of distributed operating systems and network protocols for process communication, synchronization, scheduling, exception, and deadlock resolution.
- Upon successful completion of the course, students will be able to demonstrate via use their understanding of client-server, web-based collaborative systems.
- Upon successful completion of the course, students will be able to demonstrate understanding of parallel computing.
- Upon successful completion of the course, students will be able to demonstrate their ability to solve concurrency issues.
- Upon successful completion of the course, students will be able to exercise API's for distributed application development.
- Upon successful completion of the course, students will be able to demonstrate an ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics. (ABET-SLO1)
- Upon successful completion of the course, students will be able to demonstrate an ability to develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions. (ABET-SLO6)
Course Content
Learn and experiment with Amazon Web Services (AWS):• console management • host a static website • build a web application • deploy a web applicationUnderstand 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 70%Assignments 20 to 50%Quizzes 15 to 50%Class participation 5 to 30%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