Course Information
18-651: Full-Stack Software Development for Engineers
Units:
12Description:
This course will introduce 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 will acquire basic front-end and back-end skills and learn how to apply modern development practices in the context of an individual hands-on project using the plain web stack for the front-end, TypeScript and a NoSQL database layer for the back-end, and other common libraries, light-weight frameworks, and tools as adjuncts. They will practice how to version-control the codebase, manage a small project, transform requirements expressed as user stories into working software in an incremental manner, maintain code quality, build their application on an integration server, and deploy it on the cloud. To enroll in this course, students must already be proficient in coding using multiple programming languages and familiar with the basics of algorithms, data structures, databases, and software design principles, including object-orientation. Each student will need their own laptop computer to use in the course. This course is crosslisted with 18-351. ECE graduate students will be prioritized for 18-651, and ECE undergraduate students will be prioritized for 18-351. Although students in 18-651 will share lectures with students in 18-351, students in 18-651 will undertake more complex projects.
Last Modified: 2024-09-10 2:59PM
Semesters offered:
- Fall 2024
- Spring 2019
- Spring 2018