CINS467 - Web and Mobile App Development

Link to resource on GitHub

CINS467 Syllabus

Web and Mobile App Development

A hands-on project course that examines languages, tools, protocols, and techniques for developing robust client-side applications for mobile and web apps. Topics include the model-view-controller, cloud service integration, REST, Progressive Web Apps, app publishing, and application security. The course includes several projects using a cross-platform programming framework.


Shelley Wong


CINS 370 with a grade of C or higher, or CSCI 211 and MINS 335, or MINS 325 and MINS 335. (or approved equivalents, check with your advisor)

Students who take this class without completing the prerequisite class will be given a failing grade.

Course Accounts

  • Canvas
  • Chico State Canvas - I am teaching two sections of CINS467 this semester, and I will use the same Canvas Course for both sections. One other section of CINS467 is being taught by a different professor; make sure you are able to access my section of CINS 467.


There is no required textbook for this course. Instead, throughout the semester, we will reference official documentation and other resources that are readily available online. See the CINS 467 Useful Links provided in my GitHub repo, and look for links provided during class as we work through each module.


Bringing your laptop to class is highly recommended. Class meetings will include lecture, lab help sessions, and presentations. Many students benefit greatly from following along on their own computers as I build examples. Lab help sessions are intended to give you some time to work on your final project and show me that you are making progress. For presentations, it is beneficial for you to bring your laptop in order to share and demonstrate your app to the class.


Attendance is highly recommended. A portion of your overall grade is based on help session attendance (tracked through a sign-in sheet). You need to attend 80% of lab help sessions to receive full credit for this portion of the grade. I try to provide lecture recordings to make it easier for you to review class content; however, watching the recordings is not an alternative to attending class.

Missing class can make the projects especially difficult. If I verbally change the requirements of a project during a lecture, you are responsible for meeting the new requirements. If you miss a class, make sure you review the lecture recordings and/or get notes from another student.

If you regularly skip class, do not expect me to answer questions on the material you missed. If you need to miss occasionally for legitimate reasons, please take advantage of the lecture recordings and feel free to ask questions on the material you missed.

I understand that things happen, so if you need to miss a lecture or lab for any reason, send me an email ASAP with an explanation of your situation (ideally BEFORE the class you need to miss, but after is better than not letting me know at all). Depending on the circumstances, you may be excused for the absence and given partial credit for the class(es) you need to miss. Legitimate reasons for needing to miss class include illness or health-related issues, family or personal emergencies, required legal obligations, official academic or university commitments, and severe weather or natural disasters.


Check Canvas to see your currently available grades, and let me know as soon as possible if you have questions about your grades. If you do not get in touch with me promptly (i.e. within a week of the posting of a grade), I will assume you think the grade is fair and accurate. During the semester, your overall/total grade displayed on Canvas may differ from your actual current total grade due to various circumstances, such as attendance (which will not be updated regularly on Canvas) or if you have a missing assignment.

Grade Category Percentages

| Category & Description | % | | --- | --- | | Individual Assignments (Small Programming Projects, Quizzes) | 40 | | Final Project (APK or Website), Final Project Feedback Form | 36 | | Final Project Concept, Final Project Proposal | 6 | | Final Project Presentation, Presentation Feedback Forms | 12 | | Lecture Attendance, Lab Help Session Attendance, Project Progress Updates | 6 |

Grading Meetings

We are going to investigate all the projects you turn in to look for code plagiarism via a number of different methods. If your code does not appear to be uniquely yours, you will need to schedule a grading meeting with the grader to answer detailed questions concerning how your code works. This meeting will make up 60% of your project grade and 40% will come from your ability to solve the project. If you did not write your project you will likely fail the grading meeting and get a failing grade on the project. Seeking out fellow students for advice on how to get started is perfectly acceptable; however, you should be doing your own work and making sure you have a firm understanding of how your code works.

Programming Assignments

At the beginning of the semester, there will be several assignments due at approximately 1 week intervals. These assignments will give you a foundation for client-side programming using a cross-platform app development framework. The focus of these assignments will be closely related to content covered during class lectures, with an additional goal of providing you with an opportunity to be creative and practice expanding beyond what is covered during class.

Final Project

There will be one larger web or mobile final project that will require you to create a plan and make progress on your own on a regular/weekly basis. For the final project, you may work individually or in a pair. The goal of this assignment is to give you an opportunity to apply what you have learned to a unique project of your choosing and give you some experience exploring app development beyond what is covered in class. The final project is an opportunity for you to take some initiative, solve problems, be innovative, practice communication skills, and develop your ability to be flexible and innovative in the face of challenges – all of which are integral components of the app development experience. At the end of the semester, you will present your project and provide some feedback about your experience developing the project. Plan on being in attendance for all project presentations, thinking critically about your experience, and communicating clearly about the things you learned in the process of completing the project.

Late Assignments

Programming assignments turned in up to 24 days after the due date will lose 15%. Assignments will NOT be accepted more than 24 after the due date, except in special circumstances – send me an email as soon as possible BEFORE the due date if you are interested in asking for an extension. All requests (including those made before and after the due date) will be handled at my discretion. The Final Project and all components of the project MUST be completed and submitted the end day of the day after the final for this course.

Soft Deadlines

Assignments 1-6 will be graded at the same time and the hard deadline is when assignment 6 is due. There will be an oppurtunity a few weeks after assignments 1-6 are graded for students to resubmit for late credit for anything they missed from these assignments. This is done as there are usually a large number of students who run into technical issues getting the development environment setup to allow fast grading without constantly having to deal with students with technical issues and losing track of who was regraded.


My responsibility is to deliver engaging and informative lectures, along with assignments that are meaningful and provide an appropriate level of challenge. My goal is to aid you in your learning process and enhance your programming confidence. If you require assistance, have concerns, or seek clarifications, please do not hesitate to communicate with me.

App development can be fun and rewarding, but it can also be aggravating and stressful. It is your responsibility to allocate the necessary time and effort for learning the material and working on your projects. Give yourself room to fail and make mistakes – there is a good chance that you will need to innovate and try several things before landing on something that works.

Honest and Academic Integrity

Academic honesty and integrity play an important role in a high-quality learning environment. I expect all students to understand and follow the University’s Policy on Academic Integrity. Violations of academic integrity include but are not limited to cheating, unauthorized collaboration, plagiarism, self-plagiarism, and misuse of sources. The first time you violate academic integrity, you will be warned, and you will get a 0 on the test or assignment. The second time you violate academic integrity, you will fail the class. Violations are reported as Academic Integrity Incidents to the Office of Student Rights & Responsibilities. It is your responsibility to familiarize yourself with the Policy on Academic Integrity and help build a campus culture that recognizes and upholds these values. If there is anything that you do not understand in the policy, make sure to ask.

The bottom line is that you are responsible for learning the material and completing your own assignments. Cheating will make it much more difficult for you to succeed in the long run. Not all cheating looks the same. Here are some examples that violate academic integrity: * copying code from another student * copying code from a book * copying code from the Internet * getting your friends to write your code * paying someone else to write your code * pestering other students until they give you their code * buying code * stealing code * using Artificial Intelligence to generate your code (e.g. ChatGPT) * letting someone steal your code (e.g. giving out your password or using incorrect file protection) * putting your code in a public repository (e.g. on GitHub) – Note: it is easy for people to steal code from a public repo, but putting your code in a private repo is welcome and encouraged! Please ask if you have questions about how to use git appropriately! * giving your code to another student either during the semester or anytime after you have taken the class (both giving code and taking code violate academic integrity) * giving your laptop that contains your program to another student * getting so much help on an assignment that you are no longer doing the assignment (this can come from one helper or many helpers) * crowdsourcing your code * self-plagiarism (Re-use of a student's original work, in part or in its entirety, without the express permission of the course instructor) * presenting the ideas or works of another as one’s own * presenting work without customary and proper acknowledgement of authorship (i.e. use the appropriate citation of sources when applicable) * the list goes on...

Even if you are not submitting plagiarized work, it is considered academic misconduct if you facilitate or aid in academic dishonesty, steal instructional materials or tests, try to alter grades, use personal relationships to falsely increase grades, or otherwise attempt to obtain grades through fraudulent means.

Be careful with ChatGPT and similar forms of Artificial Intelligence (AI). There are ways to use these tools responsibly (e.g. seeking general guidance, enhancing your understanding of a subject, or exploring different approaches for solving a problem); HOWEVER, these tools are not a substitute for human expertise, critical thinking, and independent learning. It is essential to remember that ChatGPT and similar tools do not reliably provide accurate or optimal solutions. App development students in the past have used ChatGPT and gone down a rabbit hole, making their code more complicated and still ending up with something that did not work. Even if you use AI-based tools, you need to learn how to read, write, analyze, interpret, debug, and test code for yourself. If you want to work as a programmer or software developer in the future, be aware that many companies are not allowing their workers to use these types of tools for various reasons (e.g. intellectual property, national security, code quality standards, regulations). Do not resort to using AI tools so much that you forget how to use debugging tools, read documentation, interpret and understand code written by other people, and develop good search engine prompts – these are all skills that will not only benefit you but also be necessary in the long run.

If you are taking this course again after an unsuccessful previous attempt, you are advised to start from scratch on all assignments -- not doing so will cheat yourself and likely make you more prone to failure later in your academic career.

I reserve the right to catch academic integrity violations after the end of the semester. Students who cheat and make it to the end of the semester without being caught may still get caught in the future. We keep records of all assignments and use programs that look at all instances of an assignment over the past years, so it is possible for us to catch cheating after the fact (e.g. if a student who takes the class this semester gives their code to a student who will complete the class next semester). It is possible to change grades after the fact, even after you graduate. I would prefer not to do this, so please do not put me in the situation where I need to.

Getting Help/Email

The best resource in CINS 467 is generally the official language documentation. The examples and instructions provided in the official language documentation will give you a good starting point for your own programs, as the documentation is much more likely to be up to date and accurate compared to other sources available on the internet.

Feel free to make use of my office hours or send me a message if you have any questions. The final project for this class provides an excellent opportunity for you to get experience working on a large-ish project (larger than most class projects) that could potentially be put on a resume, but be aware that you may run into problems that no one else has run into before – this is a common challenge in software development, and while it can be frustrating, it is an accurate reflection of what it is like to work on web and mobile app development projects in the real world. A lot of examples and advice found on the Internet can be outdated and/or incorrect – do not be surprised if the first thing you try does not work! Being open to trying a different method or taking a different approach will benefit you in the long run.

You may also get help from tutors or other students on the unofficial student-run Chico State CS Discord, just remember that this is an upper division course centered on a unique final project. Since Discord acts as a discussion board, accessible to me and many other students and instructors, you may get a response more quickly if you post there. HOWEVER, there are many cases when posting code to a discussion board (or any public place) may be considered cheating. If your question is related to your code, and your question requires that you show another person your code, send me an email or potentially see if someone can help you individually, without you posting code in a public place. If you are sending me an email, make sure you put 'CINS467' in the subject so it will be filtered correctly; otherwise, I may not open your message or respond to it.

I try to respond as soon as possible to emails. If I have not responded within 24 hours, you may try sending a follow up email if you are still running into issues.

I will communicate with the class via Piazza. It is your responsibility to check these messages regularly so that you do not miss important information about the class.


Diversity and Inclusion Statement

I am firmly committed to creating a learning environment that is welcoming and inclusive for all students, including specifically women, Black, Hispanic, Native American, and Indigenous individuals, people with disabilities, members of the LGBTQ+ community, people from lower socioeconomic backgrounds, and individuals who do not fit the “traditional” profile of a computer science student – those who have been historically underrepresented in the computer science field. Diversity of experiences and perspectives enriches the learning process for everyone, and I am committed to providing all students with the opportunity to succeed, regardless of their background.

Creating a respectful, inclusive, and safe learning environment is our shared responsibility, and the success of this policy relies on the support and understanding of all members of this class. I encourage you to treat each other with kindness, refrain from offensive behavior, and stand against any form of harassment or discrimination, so we can collectively build a positive and enriching educational experience for everyone. We welcome all students to this course, and we look forward to learning from each other.

Accessibility Resource Center

A student who desires accommodation for a disability must submit appropriate documentation of the disability and request for accommodations to the Accessibility Resource Center. ARC accommodations for exams must be requested at least seven days in advance.

Religious Holidays

I will work with students so this class and its assignments, exams, and activities do not interfere with religious holidays. However, you must notify me ahead of time so we can make appropriate arrangements.

Title IX

Pursuant to CSU policy, I am required to report to the Title IX Coordinator whenever I learn about incidents of sexual misconduct, dating and domestic violence, or stalking that affect any member of the campus community. This includes disclosures that occur during our class discussions or in private. Students may make a confidential report to the Counseling and Wellness Center or Safe Place. Information on campus reporting obligations and other Title IX related resources are available on the Title IX page of the CSU Chico website.

Chico State Basic Needs Project

The Hungry Wildcat Food Pantry provides supplemental food, fresh produce, CalFresh application assistance and basic needs referral services for students experiencing food and housing insecurity.

All students are welcomed to visit the Pantry located in the Student Service Center 196, open Monday-Friday, 11am-4pm or call 530-898-4098. Please visit the Chico State Basic Needs website for more information.


Per CSU policy effective April 6, 2023, COVID-19 vaccinations and booster shots are strongly encouraged, but no longer required for students and employees. Policies and requirements regarding COVID-19 are subject to change pursuant to campus, local, state and/or federal guidelines. You will be notified about any updated requirements. For more information and details on what to do if you test positive or show symptoms, refer to Chico State’s COVID-19 News & Information page.

Student Resources and Services

I am firmly committed to diversity and equality in all areas of campus life, including specifically members of the LGBTQ community. In this class I will work to promote an anti-discriminatory environment where everyone feels safe and welcome. I recognize that discrimination can be direct or indirect and take place at both institutional and personal levels. I believe that such discrimination is unacceptable and I am committed to providing equality of opportunity for all by eliminating any and all discrimination, harassment, bullying, or victimization. The success of this policy relies on the support and understanding of everyone in this class. We all have a responsibility not to be offensive to each other, or to participate in, or condone harassment or discrimination of any kind.

For a one-stop-shop for resources related to safety, academic support, advising, food and well-being, housing, peer mentoring and more, you can visit the Student Resources website.

Important note about a possible work stoppage during the semester

The California Faculty Association (the labor union of Lecturers, Professors, Coaches, Counselors, and Librarians across the 23 CSU campuses) is in a difficult contract dispute with California State University management. It is possible that we will call a strike or other work stoppage this term. I promise to promptly inform you of any schedule disruption. Our working conditions are your learning conditions; we seek to protect both. For further information go to