18 651
Full-Stack Software Development for Engineers
Carnegie Mellon University · UGRD · Fall 2026
Catalog description
This course introduces the principles, concepts, technologies, and practices of full-stack software development for creating end-to-end web applications using a classical client-server architecture and the model-view-controller pattern. Students acquire basic frontend and backend development skills and learn how to apply modern development practices in the context of an individual project using the plain web stack for the frontend, TypeScript and a NoSQL database layer for the backend, and other common libraries, light-weight frameworks, and tools as adjuncts. The course also reviews fundamental concepts including types, objects, multi-paradigm programming (functional and object-oriented), modularity, asynchronous and event-based computation, authentication and authorization, and dynamic updates. Students practice how to version-control their codebase, manage a small project, incrementally transform requirements expressed as user stories into working software, maintain code quality using static analysis tools, build their application on an integration server, and deploy it on the cloud. To enroll in this course, students must already be proficient in imperative programming using multiple languages and familiar with the basics of algorithms and data structures. Each student will need their own laptop computer to use in the course. This course is crosslisted with 18351. Although students in 18-351 and 18-651 will share lectures, quizzes, and all in-class components, students in 18-651 will be assigned two additional and more advanced deliverables for the project component. Prerequisites: 18-213 Min. grade B or 18-613 Min. grade B
Sections
Current meeting, instructor, credit, and enrollment details
001
Availability not recently verified- Days & times
- No scheduled meeting time
- Meeting dates
- —
- Location
- —
- Instructor
- Staff