C S 77B: PROJECTS IN WEB APPLICATION DEVELOPMENT
Foothill College Course Outline of Record
Heading | Value |
---|---|
Effective Term: | Summer 2024 |
Units: | 4.5 |
Hours: | 4 lecture, 2 laboratory per week (72 total per quarter) |
Prerequisite: | C S 77A. |
Degree & Credit Status: | Degree-Applicable Credit Course |
Foothill GE: | Non-GE |
Transferable: | CSU |
Grade Type: | Letter Grade (Request for Pass/No Pass) |
Repeatability: | Not Repeatable |
Student Learning Outcomes
- Design and deploy software systems so they are reasonably usable, environmentally sustainable, universally accessible, and scalable.
- Ethically solve human client's problems and improve workflow and processes.
- Work in production environments by effectively and ethically working and communicating with stakeholders such as the public, supervisors, developers, non-developers, and clients.
Description
Course Objectives
The student will be able to:
- Value, investigate, and analyze the problems of human clients and relevant communities.
- Work ethically in a web application production environment.
- Use professional ethics and analyze societal power structures.
- Create, deploy, and maintain web applications by using software quality assurance, continuous integration, and continuous deployment techniques.
Course Content
- Value, investigate, and analyze the problems of human clients and relevant communities
- Communication and empathetic gathering of data on their needs, wants, and proposed solutions
- Getting stakeholder buy-in with sketches, wireframes, and/or prototypes
- Deduce and propose improved workflow and processes
- Working in a production environment
- Effectively and ethically working and communicating with supervisors, developers, non-developers, and clients
- Discuss and analyze professional ethics and societal power structures
- Ethical and societal topics and issues that arise during the overall project work or in the news
- Data ethics and data stewardship
- Anti-racist and accessible universal design
- Designing web applications with low and sustainable environmental footprints
- Software quality assurance, continuous integration, and continuous deployment
- Tools and infrastructure
- Behavior driven development
- Debugging clients and servers
- Code optimization
- Internationalization for localization
- Scalable deployment
Lab Content
Students will be guided through various stages of developing a web application via the following online labs. Each stage will be applied to the student's project. Stages are listed here roughly in order but it is common for a student to revisit any stage, particularly based on the nature of the project development, testing results, and/or stakeholder feedback. Any following lab topic may be separated and/or combined with any other lab topic(s).
- Ideation stage
- Find a client and then empathetically document and verify their needs, ideas, proposed solutions, and requirements
- Research resources, environmental sustainability, markets, societal ethics, security, and end-user requirements of the project
- Define the basic use cases, user stories, and functionalities of the project
- Design stage
- Sketch the web application
- Plan your workflow
- Wireframe the User Interface (UI) and develop prototype(s)
- Validate designs and budgets with contexts, users, stakeholders, and client(s)
- Development and deployment stage
- Architect your database/data storage
- Develop your frontend
- Develop your backend and any middleware
- Test and host your web application
- Deploy your web application
- Revalidation and refactoring stage
- Revisions based on more testing with contexts, users, stakeholders, and client(s)
- Maintenance of your web application
- Redeployment of your web application
Special Facilities and/or Equipment
2. A website or course management system with an assignment posting component (through which all lab assignments are to be submitted) and a forum component (where students can discuss course material and receive help from the instructor). This applies to all sections, including on-campus (i.e., face-to-face) offerings.
3. When taught via the internet, the college will provide a fully functional and maintained course management system through which the instructor and students can interact.
4. When taught via the internet, students must have currently existing email accounts and ongoing access to computers with internet capabilities.
Method(s) of Evaluation
Volunteer or work-based learning portfolio
Signed Memorandum of Understanding (MOU) between clients and students
Progress reports
Oral presentations
Final report
Teamwork assessments (for those working on a team)
Formative and summative quizzes on technology topics
Formative exercises, discussion forums, papers, and/or formative and summative quizzes regarding covered ethics and societal power topics
Evaluation by instructor, and project supervisor or client, will be used to demonstrate the mastery of competencies identified as goals prior to, or near the start of, the project(s)
Method(s) of Instruction
The central idea of this capstone course is to give students experience developing a web application that is used by, or needed by, a real human client. For students who don't already have such a project, the instructor will design one and assist in the process of finding a client. Student projects must be web application development projects. The resulting web applications are to be used by, or needed by, a real human client, and the instructor determines if a project meets those requirements and is completable (deployed and evaluated) within the timeframe of the course. The instructor will develop a Memorandum of Understanding (MOU) between clients and students for each project and verify that they are signed by all parties. Student achievement is partially tied to students adhering to the MOU
The course instructor is the project supervisor for students who are not doing their web application project in the context of an internship or employment. Such students will typically work in collaborative project teams of 2-7 people. Students will be allowed to work alone usually only if the nature of the project is in the context of an internship or employment
The instructor will provide blended instruction, including discussion, of the course content topics. This will be completely online (synchronously and/or asynchronously) for online-only sections of the course
The instructor will provide or arrange online tutorials and demonstrations of how to develop web application solutions for hypothetical clients' needs
The instructor will assign online labs (for all sections, including those meeting face-to-face/on campus) consisting of:
1. An assignment webpage located on a college-hosted course management system or other department-approved internet environment. Here, the students will review the specification of each assignment and submit their completed lab work
2. A discussion webpage located on a college-hosted course management system or other department-approved internet environment. Here, students can request assistance from the instructor and interact publicly with other class members
Representative Text(s) and Other Materials
Riley, Scott. Mindful Design How and Why to Make Design Decisions for the Good of Those Using Your Product, 1st ed.. 2019.
Mongan, John, Eric Giguere, and Noah Kindler. Programming Interviews Exposed: Coding Your Way through the Interview, 4th ed.. 2018.
McDowell, Gayle Laakmann. Cracking the Coding Interview: 189 Programming Questions and Solutions, 6th ed.. 2021.
Doorley, Scott, et al. "Design thinking bootleg." 2018. Internet resource: https://dschool.stanford.edu/s/9wuqfxx68fy8xu67khdiliueusae4i https://dschool.stanford.edu/resources/design-thinking-bootleg
Types and/or Examples of Required Reading, Writing, and Outside of Class Assignments
- Reading:
- Reading instructor supplied handouts and modules
- Reading online resources as directed by instructor though links pertinent to the course objectives
- Reading library and reference material directed by instructor through course handouts
- Writing:
- Writing technical prose documentation that supports and describes the programs and materials that are submitted for evaluation
- Writing documentation and reports that describe and/or provide a record of communication with stakeholders