CS412
Fall 2024

Full Stack Software Engineering

Course information

Course Description
CS412 is an is an immersive practical programming experience to extend and enhance students’ programming and debugging skills in the context of a complex and large-scale application. Students will learn and use a web application framework to implement an application with a web-based user interface and data management in the cloud. Students will learn key concepts about software engineering by developing a large-scale project with a user-interface (web browser), data modeling, and the (server-side) business logic required to implement the application.
Learning Objectives
  • Students will develop a practical understanding of the workings of the World Wide Web: HTTP requests and responses, and the separation of work between front-end (web browser) and back-end (web server, database) components.

  • Students will install and configure a web application programming environment; select and install required frameworks and packages; and deploy web applications to the public World Wide Web cloud services.

  • Students will become proficient in using source control tools for tracking code changes, collaborating with team members, and managing repositories.

  • Students will develop a non-trivial web application using a contemporary framework, which incorporates elements of user interface, data modeling, and the required logic to connect these components.

  • Students will demonstrate proficiency using object-orientation to model data records and use an object-relational management tool to create, read, update, and delete data records.

  • Students will develop strong unit testing and debugging skills to efficiently identify, isolate, and resolve software defects.

Instructional Format
The class will be a “programming workshop” style class, in which students will complete a series of case studies (e.g., publishing, social media) corresponding to each week’s learning objectives. New concepts will be presented as a combination of pre-class readings and videos, as well as “teaching by example.”
Prerequisites
  • CS111 Introduction to Computer Science (grade of at least B-)
  • CS112 Data Structures and Algorithms
Class Meetings
Tuesday/Thursday 9:30am-10:45am at SAR 103
Tuesday/Thursday 11:00am-12:15pm at SAR 103
Instructor

(see the staff page for contact information and office hours)

Quiz 1 Information

Quiz 1 will be on Thursday 9/26. Information about Quiz 1 is posted here.