Academic Catalog

C S 77B: PROJECTS IN WEB APPLICATION DEVELOPMENT

Foothill College Course Outline of Record

Foothill College Course Outline of Record
Heading Value
Effective Term: Summer 2022
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

Team-based applied web application projects as determined in consultation with the instructor. Students meet at least twice per week with the instructor; about half of the lecture periods are team project-based interactions. Volunteer or work-based learning portfolio, progress reports, oral presentations, final report, teamwork assessments, and evaluation by 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). Project work can be within the context of an internship or developing an internship or start-up opportunity.

Course Objectives

The student will be able to:

  1. Value, investigate, and analyze the problems of human clients and relevant communities.
  2. Work ethically in a web application production environment.
  3. Use professional ethics and analyze societal power structures.
  4. Create, deploy, and maintain web applications by using software quality assurance, continuous integration, and continuous deployment techniques.

Course Content

  1. Value, investigate, and analyze the problems of human clients and relevant communities
    1. Communication and empathetic gathering of data on their needs, wants, and proposed solutions
    2. Getting stakeholder buy-in with sketches, wireframes, and/or prototypes
    3. Deduce and propose improved workflow and processes
  2. Working in a production environment
    1. Effectively and ethically working and communicating with supervisors, developers, non-developers, and clients
  3. Discuss and analyze professional ethics and societal power structures
    1. Ethical and societal topics and issues that arise during the overall project work or in the news
    2. Data ethics and data stewardship
    3. Anti-racist and accessible universal design
    4. Designing web applications with low and sustainable environmental footprints
  4. Software quality assurance, continuous integration, and continuous deployment
    1. Tools and infrastructure
    2. Behavior driven development
    3. Debugging clients and servers
    4. Code optimization
    5. Internationalization for localization
    6. 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).

  1. Ideation stage
    1. Find a client and then empathetically document and verify their needs, ideas, proposed solutions, and requirements
    2. Research resources, environmental sustainability, markets, societal ethics, security, and end-user requirements of the project
    3. Define the basic use cases, user stories, and functionalities of the project
  2. Design stage
    1. Sketch the web application
    2. Plan your workflow
    3. Wireframe the User Interface (UI) and develop prototype(s)
    4. Validate designs and budgets with contexts, users, stakeholders, and client(s)
  3. Development and deployment stage
    1. Architect your database/data storage
    2. Develop your frontend
    3. Develop your backend and any middleware
    4. Test and host your web application
    5. Deploy your web application
  4. Revalidation and refactoring stage
    1. Revisions based on more testing with contexts, users, stakeholders, and client(s)
    2. Maintenance of your web application
    3. Redeployment of your web application

Special Facilities and/or Equipment

1. Access to a computer laboratory with web browsers, web development software, web server and middleware software, and database software. Computer laboratory can be provided as a web-based and/or virtualized online service(s).
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

Methods of Evaluation may include but are not limited to the following:

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

Methods of Instruction may include but are not limited to the following:

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.

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

  1. Reading
    1. Reading instructor supplied handouts and modules
    2. Reading online resources as directed by instructor though links pertinent to the course objectives
    3. Reading library and reference material directed by instructor through course handouts
  2. Writing
    1. Writing technical prose documentation that supports and describes the programs and materials that are submitted for evaluation
    2. Writing documentation and reports that describe and/or provide a record of communication with stakeholders

Discipline(s)

Computer Science