Course Syllabus
COURSE STAFF
|
Instructor |
Sergio Gago-Masague <sgagomas@uci.edu> Office Location: Calit2 4413 / DBH 3064 Office Hours: 2 - 3 pm Mondays
|
|
|
Teaching Assistant |
Jinhwa Kim (jinhwak@uci.edu) Office Location: Zoom Only Office Hour: 11-12pm Fridays by appt @ Zoom |
|
COURSE DESCRIPTION:
|
Course Name and # |
COMPSCI 297P: Capstone Design |
|
Meeting Times |
Tu & Th: Teams Follow-up: 2:00- 3:20 pm based on this schedule. |
STUDENT LEARNING OUTCOMES:
Upon completion of the course sequence, students are expected to acquire the following abilities:
- Understanding of a wide variety of software lifecycle models.
- Contributing effectively to a software development team.
- Choosing the most appropriate model for a project and using it as a guide for teamwork.
- Analyzing and documenting software requirements.
- Completing both high-level and detailed software design and associated written documentation.
- Reasoning about tradeoffs among design options.
- Perform risk evaluation and develop mitigation strategies.
- Setting and meeting both short- and medium-term goals.
- Using state-of-the-art collaborative software engineering tools and methods.
- Correctly implement and integrate components of a larger software system, following practices appropriate for the development environment.
- Performing testing -- including unit testing, integration testing, and system validation – and implementing an associated written test plan.
- Producing user documentation for the targeted end users of the software.
- Creating a software product release and associated written release notes.
- Communicating (both written and oral) effectively with various audiences, including other developers, management, customers, and end users.
READINGS / TEXTBOOK
A course pack will be available. Formal readings are as follows:
- Required readings:
- Book: "Scrum/XP From the Trenches"by H. Kniberg. (Free with registration).
Chapters required: Intro, sprint planning, scrum chapters
- Book: "Scrum/XP From the Trenches"by H. Kniberg. (Free with registration).
- Recommended books:
- Clean Code by R. C. Martin
- Test Driven Development by Exampleby K. Beck
- Recommended papers:
- Lainez, M., Deville, Y., Dessy, A., Dejemeppe, C., Mairy, J., & Van Cauwelaert, S. (2014). “A Project-Based Introduction to Agile Software Development.” In L. Alves, P. Ribeiro, & R. Machado, Project-Based Learning: An Environment to Prepare IT Students for an Industry Career, pp. 230-249, IGI Global.
- Clarke, N. (2005). “Evaluating student teams developing unique industry projects.” Proceedings of the 7th Australian Conference on Computing Education, pp. 21-30, Newcastle, Australia.
- Chaudhry, N.G. & Rasool, G.. (2012). A case study on improving problem solving skills of undergraduate computer science students. World Applied Sciences Journal. 20. 34-39. 10.5829/idosi.wasj.2012.20.01.1778.
- 21st Century Skills: Preparing Students for THEIR Future (Sue Z. Beers)
ASSESSMENT AND GRADING:
- No final or midterm exam.
- The final grade will be based on
- –Short Quizzes (10%): Based on lectures
- –Implementation/Development (50%): Progress Report and Presentation, Code (e.g. UCI GitHub), Project Management (e.g. Trello & Slack)
- Teamwork evaluation (10%): Peer's feedback on teamwork, commitment, engagement, and response.
- –Presentation and Final Report (30%): Final Presentation, Demo, Poster.
- –Extra-Credit (3%): Submit Final Course evaluation
COURSE OVERVIEW AND GOALS
The Capstone Design allows students to solve a substantial real-world problem with knowledge gained from many areas of computer science. The project will have a main focus on computer science but can overlap with neighboring disciplines such as informatics, statistics, or engineering. We will offer a range of topics to choose from to define your project course. Students can also self-define a project as long as it is approved by the instructor.
Students in this course will work in teams to choose/ propose one projects, design and develop a solution, and present their results/work. Class time focuses on defining the project requirements, approach and implementation, but it also includes lectures on project management and the practical application of advanced topics on computer science such as artificial intelligence, internet of things and augmented reality.
This course is not simply an advanced course in a particular sub-area, nor is it an unstructured project course. The goal is to teach techniques for the effective application of knowledge in several subject to real-world problems and offer a chance to develop and express many skills at once: For example, technical expertise, project management and communication ability. This course also provides students with opportunities to work with sponsors as part of their technical teams, boosting students’ experience and their opportunities for future employment.
A. How Project Selection Works
- Students will submit a list of preferred projects.
- Project will have a focus on computer science but can overlap with neighbor disciplines such informatics, statistics or engineering.
- Students will be assigned to projects and will work in teams to design and develop a solution and present their results/work.
Notes about project selection:
- The proposed projects are designed to provide a valuable professional experience and walk students through the required steps to successfully accomplish the project.
- Students’ project ideas are also welcome. This course can help students refine an idea into an actual project plan and guide them to develop a prototype. Students will receive feedback and support to help make their idea happen. This course is also a great way to test a start-up idea.
B. Development
Students will weigh pros and cons of applying the various lifecycle options to the project. Most teams will use an agile approach structured around a series of short, 2- or 3-week software development iterations after a short initial planning stage, while others might spend more time evaluating project requirements and planning their approach to development.
Each development iteration includes planning, development and release. Throughout the project, students are responsible for organizing, scheduling and completing their tasks; the instructor and the project sponsors will coordinate requirements for evaluation and will be closely involved in reviewing the project and providing feedback and direction as needed.
C. Documentation
Documentation will be developed as part of the course project such as requirements, design, a test plan and documentation for both end users and future developers. The nature of documentation for a specific project can be detailed by the instructor..
D. Presentations
Students team will also give several presentations over the course of the project, which culminates in a final presentation and poster/demo presentation at the Computer Science Showcase towards the end of the Quarter.
COURSE POLICIES
Attendance: Since participation plays a key role in learning, students are expected to watch all recordings for each class meeting and. Students are responsible for material that is distributed and orally communicated during class.
If you join the class later in the quarter, you are expected to complete all missed work immediately.
E-mail Policies: We don’t recommend using email to ask course-related logistics or technical questions. Students can ask question during the instructor’s and assistants’ office hours. We have also set up a more public discussion forum on Ed Discussion; we think Ed Discussion will be particularly useful for advice and tips as you work on your assignments.
You can contact us by email for specific personal matters. You will usually get a response within a day (perhaps a bit longer on the weekends) by email. We will never intentionally ignore a message, so if you don't receive a response, write again; sometimes overactive spam filters snag a legitimate message. Using course-specific subject lines and your UCInet Email address will help your messages get noticed.
We may also send course announcements on Canvas and by email to the official course mailing list, so you should check your Email regularly.
Late Assignment Policy: Due dates are usually 10:00 pm local time on the day an assignment is due. Late homework will be accepted for one week after due date with the following penalties:
- -1% for every late hour on the first 24 hours after the due date
- flat 25% from thereafter until one week after due date
No late homework will be accepted one week or more after due date.
Sick Policy: Generally, sicknesses will be treated on a case by case basis. If you find that you are unable to honor a deadline or a quiz due to sickness, please get some documentation from a health care provider to assist me in maintaining fairness to the other students in the class.
Academic Honesty/Principles of Community: Please familiarize yourself with the latest UCI academic honesty policy: http://www.reg.uci.edu/navigation/policies.html
In a nutshell - you may never use anyone else's work without clearly acknowledging the source. This includes code you find on the web, text from books, and answers from friends. Plagiarism is any work that you use that you did not create and do not credit. If you plagiarize another work without crediting the source, you will receive a failing grade for the entire course at the discretion of the instructor. Our academic system relies on properly crediting the source for everything to function. If an assignment explicitly requires you to do the work yourself, then acknowledging the source of an answer does not fulfill the requirements of the assignment. When in doubt, ask the instructor.
Accommodation Policies: If you need an accommodation to participate in this course, please contact the Disability Services Center at (949) 824-7494 as soon as possible to better ensure that such accommodations are implemented in a timely fashion. Please review the policies on accommodation at: http://disability.uci.edu/
Course Summary:
| Date | Details | Due |
|---|---|---|