The Full Stack Development Immersive is designed to take individuals with little to no programming experience and make them successful software developers. The program consists of 16, 1-unit semester equivalent courses and 4, 2-unit semester equivalent courses for a total program length of 30 weeks. The student workload for this program is a minimum of 1080 hours, where 360 hours is dedicated to contact work or instruction and 720 hours or more of outside study or preparation.
These sites and programs will start out as relatively simple single page websites, to fully functioning web applications with integrations to external data sources and mobile app capability. At the end of the program, students will build applications using everything they have learned throughout the program in a setting that will reflect a typical web startup or technology department at a large company. They will leave the program having deployed a fully functioning web company that is live on the web and accessible through a mobile device.
FSDI 101: Introductory HTML & CSS (1 unit)
This course is designed to cover the fundamentals of the HTML programming language and CSS creation of rules that specify how the content of an element should appear. Students will develop skills like creating the basic structure of a website, text, lists and images. They will create their first HTML5 website with each of the elements presented in the course. Students will gain a basic understanding of the functions and inner-workings of CSS, how to write CSS rules, and how to apply CSS rules to HTML pages.
FSDI 102: Intermediate HTML & CSS (1 unit)
This course presents an intermediate-level HTML programming language and CSS creation of rules that specify how the content of an element should appear. Students will develop skills like creating the more advanced structures of a website, such as images, tables as well as audio and video integration. They will create an HTML5 website with each of the elements presented in this and the previous course. Students will gain a thorough understanding of the functions and inner-workings of CSS, how to write CSS rules, and how to apply CSS rules to HTML pages.
FSDI 103: Programming Fundamentals (1 unit)
This course teaches students how to program in Scratch, an easy to use visual programming language. In particular, the course will introduce students to the fundamental principles of computing and will help them think like software engineers. Since programming is fundamentally about figuring out how to solve a series of problems and writing relating algorithms, a clear set of steps to solve any problem will be presented in this course. Students will learn how to develop an algorithm, progress to reading code, then understand how programming concepts relate to algorithms.
FSDI 105: jQuery Fundamentals (1 unit)
FSDI 107: Introductory React (1 unit)
FSDI 108: Introductory Python (1 unit)
FSDI 109: Intermediate React (1 unit)
FSDI 110: Introductory Web API with ASP.net/Flask (1 unit)
This course provides an overview of Web API implementation with ASP.net and Python Flask, open-source web application frameworks designed for web development to produce dynamic web pages. This is a unique course focused on creating a backend API connected to NoSQL database (MongoDB) as way to persist JSON object. This backend will be used by an online store build with React as the front-end framework. Students will be focused on creating the back-end business and data logic, as well as exposing the functionality as a RESTful API, the latest standard for API development.
FSDI 111: Intermediate Python and Flask (1 unit)
This course is designed to teach students how to leverage the Flask micro web framework using Python programming language to build and run software applications of various types. Throughout this course students will learn how to create micro-services, write and employ templates to create graphical frontends for their web applications, connect applications to databases to allow users to create, read, update and delete persistent records, leverage web forms to obtain user input and more. The course presents some classical examples for analysis and development by the student, such as building a restful backend that interacts with a database to store user data, a blog type website and a basic e-commerce or online store type application.
FSDI 112: Introductory Django (1 unit)
This course takes an expanded look at Python as a programming language building on the student’s introductory Python knowledge, particularly focusing on Django, a high-level Python web framework that encourages rapid development and clean, pragmatic design. Students will be exposed to the peer development process of a web-based application, including its testing and deployment using Django.
FSDI 113: Intermediate Django (1 unit)
This course is designed to introduce students to more complex problems surrounding the development and deployment of a Django application. The user will gain intimate knowledge on how to build a more robust, secure and scalable application using the Django framework. Students will experience why Django is the most popular Python framework for web development and a key tool for full stack developers seeking to use a framework that includes all the necessary features by default instead of offering them as separate libraries.
FSDI 114: Algorithms and Data Structures (1 unit)
This course covers the essential information that every serious programmer needs to know about algorithms and data structures, with emphasis on applications and scientific performance analysis of Python implementations. It covers elementary data structures, sorting, and searching algorithms. Using a combination of data structures and algorithms, students will learn how to apply them to drastically improve the performance of a program by designing efficient data structures which are key to designing efficient algorithms.
FSDI 115: User Experience and Responsive Design (1 unit)
This course is focused on helping students build a complete design project from start to finish while applying the principals and guidelines of UX design, such as user testing and wire frames. Students will learn how responsive design is used to build and end product that will provide a good user experience across as many devices as possible. Their project will have Responsive Web Design (RWD) functionality that reflects dynamic changes to the appearance of a website depending on the screen size and orientation of the device being used to view it, as well as page elements that reshuffle as the viewpoint grows or shifts.
FSDI 116: Software Development Methodology Fundamentals (1 unit)
This course presents several aspects of the software development life cycle (SDLC), an iterative and multi-step process that provides a systemic approach for building and delivering software applications. Students will be exposed to methodologies like Agile, Scrum and test-driven development. Students will learn how to use certain methodologies, which project managers employ for the design, planning, implementation and achievement of their overall project objectives. Students will be required to engage in a collaborative effort of forming self-organizing and cross-functional teams, as well as defining the end user.
FSDI 117: Agile Architecture and Software Project Management (2 units)
This course presents some of the fundamentals of software architecture and design patterns within an Agile environment. Students will write code based on various design patterns and will select the most appropriate architecture that is adaptable and applicable to their project. Students will review various tasks associated with Software Project Management, such as cost and effort estimation, an essential consideration for all freelancers and junior full stack developers.
FSDI 118: Capstone I: User Experience (2 units)
This course is designed to integrate several concepts and tools discussed in previous courses. Students will begin working on the basic programing tasks for their final Capstone project. In particular, focusing on designing, building and testing user experience (UX) aspects of the project. A special focus will be made on branding, usability and function as key drivers that enhance the experience that people have while interacting with a product while making sure they find value in what is being provided.
FSDI 119: Capstone II: Agile Methodology and Architecture (2 units)
This course will take students through the process defining a development approach and general architecture for the final Capstone project. Students will continue to develop their project using an Agile methodology. Students will implement the principles of adaptive planning leading to flexible responses to change while also employing architectural styles and design patterns that allow the incorporation of any change in the development process.
FSDI 120: Capstone III: Project Management (2 units)
This course concludes the Capstone series and Full Stack Development Immersive program. Students are required to finalize their Capstone projects, by implementing various programming principles presented in the program and by demonstrating their own ability to manage the development process and financial feasibility of their respective projects. Students will be launching their projects as live websites or applications that can be used to demonstrate the competencies they acquired in the program at a minimum, and if possible, as fully functioning tools that provide value to society. Students are required to present their final projects to their peers and submit a written report to the instructor, simulating a real-life project rollout scenario to future employers.