Course Syllabus

COURSE STAFF

 Instructor

  • Sergio Gago-Masague <sgagomas@uci.edu>
  • Office Location: Calit2 4413 / DBH 3208
  • Office Hours: 2 - 3 pm Mondays @ Zoom
          Please let me know in advance if you are planning to come to OH
          Other times are available by appointment.
Sergio_Gago-Masague.jpg

 Teaching Assistant

  • Natalie Perez <perezn5@uci.edu>

    • Contact me through Ed Discussion preferably or please email me with "COMPSCI 180" somewhere in the title.

  • Office Hours: Tuesdays 10:30-12 pm @ Zoom by appointment!

    • Let me know by Monday night if you intend on going to my office hours. If you let me know after that, I may still join, but not guaranteed.

    • If you need to meet another time, let me know by email!

IMG-1867.jpg

 

COURSE DESCRIPTION:

Course Name and #

COMPSCI 180 A : Capstone Design (first quarter of two)

Pre-Requisites

ICS 46 or equivalent knowledge

Quarter:

2-course sequence: Winter and Spring 2022

Meeting Times

Winter: Tu & Th: 9:30 - 10:50 am in-person. Recordings will be provided as well.

Spring: TBD

Location

In-person/Virtual

Final Exam Date & Location

No final exam (final presentation/demo instead final)

 

COMPSCI 180 A: PROJECT IN COMPUTER SCIENCE (4): First quarter of a two-quarter project-based course; the goal of this first quarter is to design and begin the implementation of a proof of concept for a real-world project sponsored by industry, non-profit or research lab. This course ends with a progress report and presentation for future direction for the subsequent quarter. The Development continues with CS 180B in the Spring quarter. During this class, students will learn about software engineering approaches as well as techniques and tools to manage software project development.

COMPSCI 180 B: PROJECT IN COMPUTER SCIENCE (4): Second quarter of a two-quarter project that forms the Project in Computer Science sequence. The goal of this second course is to implement a final iteration for the selected project accomplishing all project requirements, testing it in front of real users, adjusting the designs given their feedback, and finally presenting it to the world! The course ends with a presentation day in which the completed projects are demonstrated publicly, including professional organizations from academia and industry.

 

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.
  • Performing risk evaluation and developing mitigation strategies.
  • Setting and meeting both short- and medium-term goals.
  • Using state-of-the-art collaborative software engineering tools and methods.
  • Correctly implementing and integrating 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 a wide variety of audiences, including other developers, management, customers, and end-users.

 

READINGS / TEXTBOOK

A course pack will be available. Formal readings are as follows:

  • 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:

  1. No final or midterm exam.
  2. The final grade will be based on
    1. Short Quizzes (10%): Based on lectures
    2. Implementation/Development (50%): Progress Report and Presentation, Code (e.g. UCI GitHub), Project Management (e.g. Trello & Slack)
    3. Teamwork evaluation (10%): Peer feedback on teamwork, commitment, engagement, and response.
    4. Presentation and Final Report (30%): Final Presentation, Demo, Poster.
    5. Extra-Credit (3%): Submit Final Course evaluation

COURSE OVERVIEW AND GOALS

The Project in Computer Science course allows students to solve a substantial real-world problem with knowledge gained from many areas in computer science. The project will have a main focus on computer science but can overlap with neighboring disciplines such as informatics, statistics, or engineering. The projects offered in this course can be sponsored by industry, non-profit, government, or a research unit.

Students in this course will work in teams to choose one of the sponsored 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, the internet of things, and recommendation systems among others.

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 subjects 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

  1. Sponsors submit project proposals, including a brief description and optional visual aids before the course starts.
  2. Students review the proposed projects, ask questions if needed, and rank them by preference during the first and second week of the course.
  3. The students’ submitted project preferences will be used by the instructor to select projects and form teams during week 2.

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 the 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

The students' team will also give several presentations over the course of the project, which culminate in a final presentation and poster/demo presentation at the Computer Science Showcase towards the end of the Quarter.

D. Previous Course Offerings and Projects

https://sites.uci.edu/cscapstone/

 

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 the material that is referred to during lectures/recordings and linked to the course environment (Canvas). 

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 questions during the instructor’s and assistants’ office hours. We have also set up a more public discussion forum on Piazza; we think Piazza 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 the due date with the following penalties:

  1. -1% for every late hour on the first 24 hours after the due date
  2. flat 25% from thereafter until one week after the due date

No late homework will be accepted one week or more after the 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 healthcare 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 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:

Course Summary
Date Details Due