CIS 4398
Projects In Computer Science
Fall 2024 Professor Applebaum
Instructor
Professor Ian Tyler Applebaum Email: ian.tyler@temple.edu Discord: Applebaumian#2888 Office: SERC 325
Sections
- Section 001
- Lecture Mondays and Fridays 9:30 am - 10:50 am Room SERC 214
- Lab Wednesdays 10:00 am - 10:50 am Room SERC 214
- Section 002
- Lecture Mondays and Fridays 2:00 pm - 3:20 pm Room SERC 214
- Lab Wednesdays 2:00 pm - 2:50 pm Room SERC 214
Teaching and Lab Assistants
Section 001:
- Kyle Dragon Lee: Kyle.d.lee@temple.edu
Section 002
- Thanh Nguyen: thanh.p.nguyen46@temple.edu
Office Hours
Professor Applebaum
Office hours with Prof. Applebaum can be arranged by appointment using Calendly and will be conducted via Discord or Zoom. Office hours are available at the following times:
-
Monday, 3:30-5:00 PM Online or in Person SERC 325
-
Wednesday, 1:00-2:00 PM Online or in Person SERC 325
To schedule an appointment with Prof. Applebaum, click here!
Monday, 3:30-5:00 PM Online or in Person SERC 325
Wednesday, 1:00-2:00 PM Online or in Person SERC 325
If the scheduling widget doesn't appear use the following Calendly link: https://calendly.com/ian-tyler-applebaum/office-hours
TA
Kyle Dragon Lee
- Monday, 5:00-6:00PM online Discord
Thanh Nguyen
- Schedule using Calendly - online via Zoom
Course Syllabus
Course Description
Congratulations on reaching the final course of your Computer Science undergraduate degree, a significant milestone that I'm honored to be a part of. This capstone course, designated by the CIS department, serves as a comprehensive evaluation of your computer science knowledge. It offers an environment for team-oriented design and implementation of large programming projects, where students propose, document, and demonstrate their projects. Emphasizing a project-driven approach, this method promotes active learning through in-depth classroom projects. Students will collaborate extensively, tackling both technical and managerial challenges. As a Writing-Intensive Course in CIS, you'll also focus on producing and revising technical software design and development documents throughout the course.
Education Goals
- Provide an industrial working environment experience.
- Guide students through all project development phases.
- Apply and expand on knowledge from previous courses.
- Facilitate the transition from school to professional work.
- Emphasize systematic project proposal, documentation, development, and testing.
- Promote teamwork, timely delivery, and resource management.
- Enhance project management, communication, and teamwork skills.
- Students will learn to conduct a literature search to support their design decisions and to cite sources appropriately.
The project deliverables reflect authentic writing experiences that are common in the software engineering discipline. To prepare for this style of writing, students will prepare project deliverables through an iterative writing process, in which an initial draft is submitted, the instructor provides written feedback, and a revised version is submitted. Each project deliverable will have an individual grading rubric that includes elements that assess the ability to specify the purpose of the documentation, use of abstraction and models appropriately, discuss potential alternatives, use and cite evidence to support design decisions appropriately, organize and structure documentation appropriately, and to use correct grammar and appropriate style for communicating to various audiences.
C- or better in CIS 3238 or 3296 Software Design and Senior Standing
Course Schedule
There are 16 weeks in the semester. The project schedule is managed in three phases as follows:
- Inception (2 weeks): decide what you do
- Elaboration (4 weeks): say how you will do it
- Construction (10 weeks): do what you say in elaboration. Or to quote Nike "Just Do It."
There will be three milestone and one final presentations/demos. All milestone demos are scheduled in the Construction phase and the final demo at the end of the semester. A detailed class schedule is shown below.
As instructor I reserve the right to change activities if necessary, however Milestone demo dates will not change during the duration of the course. Any changes to schedule will be announced automatically in the class Discord.
Week | Event | Description | Date |
---|
Technology Communication Requirements
This course requires the use of Canvas, including access to materials and assignment submission.
On-campus computer labs have resumed normal operations and are available for student use.
Limited resources are available for students who do not have the technology they need for class.
Limited resources are available for students who do not have the technology they need for class. Students with educational technology needs, including no computer or camera or insufficient Wifi- access, should submit a Student Technology Assistance Application located in TUPortal and linked from the Dean of Students Support and Resources webpage. The university will endeavor to meet needs, such as with a long-term loan of a laptop or Mifi device, a refurbished computer, or subsidized internet access. Internet Essentials from Comcast provides the option to purchase a computer for $150 and high-speed Internet service for $9.95 a month, plus tax. The Emergency Broadband Benefit (EBB) is available to purchase Xfinity, Verizon, T-Mobile, and other internet services. Qualified households can receive a temporary monthly credit of up to $50/month toward their Internet service and leased Internet equipment until the program's funding runs out.
Online Web Meeting Tool
Online lectures will be conducted via Zoom web conferencing. Zoom is a web conferencing tool available to all students, faculty and staff. It is used in all lectures and labs. You can use this tool to meet with your team members or peers. To access Zoom, login to TUportal and select Zoom from the left navigation menu or go directly to temple.zoom.us. ZOOM training is provided by CAT. Zoom allows to share screens, slides, whiteboard, mobile devices and remote desktop controls.
Hardwired network connections are more consistent than Wi-Fi for Zoom sessions. If your network speeds are below the suggested rates, please try to move your computer closer to the Wi-Fi router or try to hardwire your connection.
The expectation is that students participate both by video and audio in online classes. All students are required to have a working camera and headset during class times.
- Microphone
- Suggested models
- Samson Go Microphone (I use this one its really good)
- Logitech H390 Computer Microphone, Over-the-Head (better if you want headphones for privacy)
- Webcam
- Suggested models
- Logitech C270 HD Webcam
- Recommended Internet Speed: 8mbps download & 5mbps upload (Test at speedtest.net)
Class Discord
In this class, Discord will be the host for team communication as well as communication with your instructors and peers. You are free to conduct team meetings, have discussions about your projects, get advice or talk with your instructors using this platform. In addition, you may talk about your projects and assignments with other students in all the sections of the CIS 4398 Projects course.
Please make sure that you change your nickname to your full name!
Labs
When you register for this course, you are mainly registering for the lab session for this course. You are expected to spend more time in lab than in lecture. Students are REQUIRED to attend the lab section that they are registered for. Attendance will count as part of your grade. Random attendance record will be checked in both labs and lectures.
The labs are designed for team members to work together and to communicate with each other in a group. Successful project development relies on a teamwork environment in which team members must collaborate and communicate.
Project
You will undergo all the project development phases and experience the project development practice in a typical industrial working environment. Project will be proposed, documented, developed, and tested step by step. The final goals of a project are to deliver deliverables in accordance with requirements on schedule within resource restriction. You are expected to improve your project management and team working skills in all the development phases.
:::attention Section 001 Section 001 will be working on HCI topics which may differ from the below categories. We will discuss this on the first day of class. :::
- Mobile Applications
- Progressive Web Applications
- Embedded Systems
- Machine Learning
- RESTFul APIs
- Message Bot Integrations
Multiplayer Games
Ultimately be creative and passionate. Some projects may not fit the above categories, and that is okay as long as the idea is well thought out, and researched.
Check out the Capstone Showcase to see previous examples of incredible projects and their demos.
Students will be organized into project teams ranging in size from 5 to 7. The project will follow a modified version of the Rational Unified Process known as the Unified Process for Education.
Students will propose their project ideas at the start of the second week of class. Project ideas must be substantial enough to be completed by a team of 5 - 7 students.
Project Management Process
Agile-based software development project management process and the deployment of its tools will be introduced in the class. Agile is a very empowering process that helps software companies design and build the right products. The management process is very beneficial for software companies because it helps them analyze and improve their products throughout its development. Agile is a process that helps teams provide quick and unpredictable responses to the feedback they receive on their projects. It creates opportunities to assess a project’s direction during the development cycle. Teams assess the project progresses in regular meetings called sprints or iterations.
Documentation
You are expected to develop your documentation using a project documentation tool called Docusaurus. Docusaurus will help you create and maintain a documentation website for all of your project documents. They will be written in markdown format. These, then, are easily published to GitHub Pages (for references on the markdown format we recommend this cheat sheet). We will provide templates and tutorials on how to generate and revise your documents. These should be followed to receive a grade on your documentation assignments.
You will open a pull request on GitHub, marking Instructors as reviewers, and turn in a link to your project documents on-line to the Canvas Web site. The instructors will directly comment on your documentation site's GitHub repository, but you will receive your grade through Canvas. These documents will be continuously revised over the course of the semester in this manner.
Writing-Intensive Course
As this is a writing-intensive course, students are required to submit written assignments that go through an iterative writing cycle: a student submits an assignment, the instructor gives feedback on the assignment, student revises and resubmits work, and the instructor assigns a grade for the revised version. Writing assignments in this course will be grounded in the expression of technical computer science concepts and are designed to help students to develop and practice skills in writing for the computer science discipline. You will learn to write various technical documents (see Documentation) during the life cycle of a software development project. The artifacts at the end of phase will be graded. The initial grading score may be lower, but please don't panic, feedback and comments will be provided. Students are expected to revise their documentation and resubmit them prior to final grading. The revised document will be graded iteratively, and a better score be given if the revision meets the expectation of instructor’s feedback/comments.
Quizzes and Exams
There will be no mid-term and final exams given for this capstone course. Several milestone project demos and one final project presentations and demo during the semester will be made in lieu of mid-term and final exams. Several quizzes in the format of Zoom Polling may be given as we move forward to project development phases.
Grading
- 10% Project Proposal
- 40% Project Documents
- 10% Project Management Process
- 30% Project Presentation, Demos and Deliverables
- 10% Attendance and Participation
As a university policy on a writing-intensive course, at least 40% weight will be weighed to the final score in Canvas based on the writing assignments. You will submit all the project documentation and project status reports as writing assignments to Canvas and the work will be graded based on technical content and quality of writing.
There will be two kinds of assignments in this course: group and individual assignments. As a result, your final grading will mainly be dependent on both group performance and your personal performance. First, a project will get a grade based on the group performance. This project grade will be used as a base grade for all the students working in the same project group.
Each student's grade is adjusted either up or down based on the student's personal performance in the project and the scores in Canvas (see Figure below).
If for example, a project gets a group grade B based on the group performance, almost all of the team members in the project team will get B grades except a few team members may get better or poorer grades than B based on their personal performance. Therefore, it is important to contribute, and be a team player.
As a result of this grading policy the scores in Canvas will only be used as a reference for providing final grades.
Group Performance Measurement
The group performance is evaluated in the following three measurements:
- deliverables meeting requirements,
- complexity of project
- teamwork
Personal Performance Measurement
The personal performance is evaluated in the following three measurements:
- initiative
- contribution
- attitude
Course Orientation
This is a pure “project-driven” course and you work on your assignment in a project in a team. This means that you will spend a lot of lab time in lab and collaborate with other team members during the project development phases. It seems as though learning takes place best within the context of problems to be solved and questions that are raised. We expect you to provide the solutions to problems arising during the project development, both technically and managerially.
Class Policies
Attendance to both lab and lecture is mandatory in this course, as it is essential for successful project development in a team setting. We will use Qwickly in Canvas to track students’ attendance. Unexcused absences will not only negatively impact your personal performance, but also the performance of your team. As a result, it may result in a reduction of your final grade. Please make every effort to attend all lecture and lab sessions on time. If you are unable to attend a class for any reason, please inform your team members and the instructor ahead of time as a courtesy. During class sessions, please keep your mobile phone on vibrate mode.
Tell your manager that you can't work during this class as it is highly interactive and requires your full attention, particularly when we begin the project. I expect that since you registered for this course, you can fully participate. If you are unable to interact, give presentations, turn on your camera, or communicate with your teammates during lab or lecture, it would be best for you to withdraw from the course.
It is expected that each student attends every class on time for the full duration of each class and behaves, in the same professional manner, as if you are in a regular classroom. This refers in particular to your location and attire. It is not appropriate to eat a large meal, be in the midst of commuting or driving a motorized vehicle, drink alcohol, smoke, or getting up often during an online class.
You are expected to turn in your project documents online to the Canvas Web site on time. Late Assignments are subject to reduced points or a 0 grade. Project Documents must be published using Docusaurus and live on GitHub Pages. Late and hand-written submission will not be accepted or graded. If you submit multiple versions of the document online before the deadline, only the latest version will be graded. This does not apply to the revision of documentation.
You may discuss project assignments with your friends, but everyone must write their own solutions. Additionally, you must include the names of any collaborators on the front page of the assignment or in the comments in the code, e.g. "I discussed this with Peter and Sally."
Using open source code is allowed and encouraged, but you are responsible for adhering to the open source license agreement if your project implementation includes any open source software code.
Sharing your code, design specifications, and other documents in the capstone project with other students is permitted and encouraged. If you receive help from other students concerning the solution of your project implementation, it is appropriate to acknowledge that help in your design documents or in your source code as comments, e.g. "I discussed this with Peter and Sally." If you copy someone else's code, you must cite the source.
You may use generative large language models such as ChatGPT in the process of coding your projects. Keep in mind the consequences of using such tools as they have a large impact on your projects quality. Also keep in mind that a large language model is not going to be efficient to develop an entire system. There is no free lunch. These tools are better suited as an aid to your learning.
You may not use AI such as ChatGPT to write your documentation for you. You may use it as an aid to your writing, but use of such technology will be considered academic dishonesty.
Documentation by Phase
The documentation is expected to be developed over the life of the project, but certain documents are required to be initially delivered (I), finalized (F), or revised/updated (R) at the end of a particular phase as shown in the following table:
Document | Inception | Elaboration | Construction |
---|---|---|---|
Project Proposal | F | ||
Requirements Specification | I | F | |
System Architecture | F | R | |
API Specification | I | F | |
Test Procedures | I | F | |
Test Report | F |
The project proposal is finalized the first week and feedback will be provided to the chosen projects by the instructor. The System Overview section of the Requirements Specification is a group revision of the Project Proposal.
Relevant University Policies for this course
Students with Disabilities
Please bear in mind that COVID-19 may result in a need for new or additional accommodations.
Any student who has a need for accommodations based on the impact of a documented disability or medical condition should contact Disability Resources and Services (DRS) located in the Howard Gittis Student Center South, 4th Floor at drs@temple.edu or 215-204-1280 to request accommodations and learn more about the resources available to you. If you have a DRS accommodation letter to share with me, or you would like to discuss your accommodations, please contact me as soon as practical. I will work with you and with DRS to coordinate reasonable accommodations for all students with documented disabilities. All discussions related to your accommodations will be confidential.
Student Support Services
The following academic support services are available to students:
- Student Success Center
- University Libraries
- Undergraduate Research Support
- Career Center
- Tuttleman Counseling Services
- Disability Resources and Services
If you are experiencing food insecurity or financial struggles, Temple provides resources and support. Notably, the Temple University Cherry Pantry and the Temple University Emergency Student Aid Program are in operation as well as a variety of resources from the Division of Student Affairs.
Attendance and Your Health
We continue to meet the changing circumstances of the COVID- 19 pandemic with flexibility and by working together as a community. To achieve course learning goals, students must attend and participate in classes, according to the course requirements. However, if you feel unwell or if you are under quarantine or in isolation because you have been exposed to the virus or tested positive for it, you should not come to campus or attend in-person classes or activities. It is the student’s responsibility to contact me to create a plan for participation and engagement in the course as soon as you are able to do so, and to make a plan to complete all assignments in a timely fashion when illness delays your completion.
Technology specifications
This course requires the use of Canvas, including access to materials and assignment submission. On-campus computer labs have resumed normal operations and are available for student use. Limited resources are available for students who do not have the technology they need for class. Students with educational technology needs, including no computer or camera or insufficient Wifi-access, should submit a Student Technology Assistance Application located in TUPortal and linked from the Dean of Students Support and Resources webpage. The university will endeavor to meet needs, such as with a long-term loan of a laptop or Mifi device, a refurbished computer, or subsidized internet access. Internet Essentials from Comcast provides the option to purchase a computer for $150 and high-speed Internet service for $9.95 a month, plus tax. The Emergency Broadband Benefit (EBB) is available to purchase Xfinity, Verizon, T-Mobile, and other internet services. Qualified households can receive a temporary monthly credit of up to $50/month toward their Internet service and leased Internet equipment until the program's funding runs out.
Grading Scale
A Range | B Range | C Range | D Range | F Range |
---|---|---|---|---|
A: 94-100 | B+: 87-89 | C+: 77-79 | D+: 67-69 | F: 0-59 |
A-: 90-93 | B: 84-86 | C: 74-76 | D: 64-66 | |
B-: 80-83 | C-: 70-73 | D-: 60-63 |
Expectations for Class Conduct
The best way to maintain a safe and focused learning environment is for everyone to get vaccinated. We all need to follow the university guidance on masking as well. For your general health and well-being, hand washing and monitoring your health is still highly recommended. It is also important to foster a respectful and productive learning environment that includes all students in our diverse community of learners. Our differences, some of which are outlined in the University's nondiscrimination statement, will add richness to this learning experience. Therefore, all opinions and experiences, no matter how different or controversial they may be perceived, must be respected in the tolerant spirit of academic discourse. Treat your classmates and instructor with respect in all communication, class activities, and meetings. You are encouraged to comment, question, or critique an idea but you are not to attack an individual. Please consider that sarcasm, humor and slang can be misconstrued in online interactions and generate unintended disruptions. Profanity should be avoided as should the use of all capital letters when composing responses in discussion threads, which can be construed as “shouting” online. Remember to be careful with your own and others’ privacy. In general, have your behavior mirror how you would like to be treated by others.
Statement on recording and distribution of recordings of class sessions
Any recordings permitted in this class can only be used for the student’s personal educational use. Students are not permitted to copy, publish, or redistribute audio or video recordings of any portion of the class session to individuals who are not students in the course or academic program without the express permission of the faculty member and of any students who are recorded. Distribution without permission may be a violation of educational privacy law, known as FERPA as well as certain copyright laws. Any recordings made by the instructor or university of this course are the property of Temple University.
Academic Freedom
Freedom to teach and freedom to learn are inseparable facets of academic freedom. The university has adopted a Policy on Student and Faculty Academic Rights and Responsibilities (links to an external site.). http://policies.temple.edu/PDF/99.pdf
Academic Honesty
According to the University Student Code of Conduct, students must not commit, attempt to commit, aid, encourage, facilitate, or solicit the commission of academic dishonesty and impropriety including plagiarism, academic cheating, and selling lecture notes or other information provided by an instructor without the instructor’s authorization. Violations may result in failing the assignment and/or failing the course, and/or other sanctions as enumerated in the University Code of Conduct (Links to an external site.).