Code 301: Intermediate Software Development
Course Overview
This course guides students through the collaborative process of creating dynamic web applications, focusing on the front end and back end independently, then creating full-stack applications.
The lab assignments for the course are in five main parts:
-
Building several client-side applications, including a personal portfolio.
-
Building a back end to consume several third-party APIs and communicate with a static front end.
-
A stand-alone mobile-only application during week 3. Students will work with the same partner throughout the week on a Heroku-deployed application. This one-week sprint will help prepare students for project week and serve as an additional personal portfolio piece.
-
Fulfillment of lab requirements via pair programming. These assignments are also a foundation for tackling technical challenges, developing code-reading skills, and gaining knowledge of application architecture.
-
Daily coding challenges which focus primarily on regular expressions, string methods, array methods, and working with objects. Students will pseudocode their solution on the whiteboard and add their final solution to a personal repository. This assignment will allow 301 students to gain practice solving coding puzzles and feel comfortable discussing code on a whiteboard.
Course Learning Objectives
At the end of this course, students will be able to:
- Collaboratively design and create single-page web applications from scratch using MVC architecture built with professional-grade HTML, CSS, and JavaScript.
- Design dynamic frontend and backend applications which can function together or independently and are deployed to cloud platforms.
- Explain the fundamentals of how the world-wide web works, over the internet.
- Utilize dependency management techniques to build with third-party libraries such as ExpressJS, jQuery, and Handlebars.
- Persist one-to-many relational data across two tables in a SQL database, sourced from third-party APIs, user-generated content, or loaded from the filesystem.
- Follow agile software development practices during week-long sprints, including pair-programming, stand-ups, daily retrospectives, project management with Kanban boards, regular refactoring, and working in a shared code base.
- Enroll in a Code 401 course or attain an entry-level website development job or internship by completing the course requirements.