Skip to content

CSCI 499 — Advanced Applications: A Hunter Fall 2021 Course

Notifications You must be signed in to change notification settings

recursion-ninja/CSCI-499-2021-Fall

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CSCI 49900 — Advanced Applications

Hunter College of the City of New York

Department of Computer Science

Key Value
Instructor: Alex Washburn
Email: aw2918@hunter.cuny.edu
Section: CSCI 49900/53432/5
Semester: Fall 2021
Credit Hours: 4 credits
Textbook: None
Format: Online; Synchronous
Time: Monday & Thursday 1:10pm - 3:00pm
Office Hours: Thursday 3:00pm - 4:00pm or by appointment
Zoom Info: Zoom Meeting ID: 891 9980 7340 Passcode: 0xC499FA11
Course Page: github.com/recursion-ninja/CSCI-499-2021-Fall

Table of Contents

Overview

A capstone course which offers a chance for computer science majors to test their mettle on major projects. Working in small groups, they will implement systems that involve at least two platforms running programs written in at least three languages.

The instructor has extensive experience with functional programming and encourages students to employ functional programming languages and techniques to their projects in order to maximize the guidance the instructor can provide. Some languages with functional programming support with which the instructor has proficiency include:

  • Elm
  • Java
  • JavaScript
  • Haskell
  • ML
  • TypeScript
  • Scala

The learning goals for the course are two-fold; understanding product development and learning collaborative software development techniques.

Modern software product development tends to utilize Agile methodology to varying degrees. Consequently, the course is structured in weekly "sprints." Each week teams plan what they will accomplish for the next week. After a week of work teams report on their progress, reassess feasibility of future work based on the progress of last week, and revise a new plan for the following week of work. The theory of this methodology is to provide rapid feedback and iteration for software development, so that minimal time is spend on "dead-end" feature which will not enhance the product.

Collaborative software develompment is a crucial skill for any computer science major, regardless of their intended plans after graduation. This course will require students to use git, facilitated by GitHub, to add, modify, and merge code while developing their product. Additionally, and equally important, is the ability to communicate clearly and promptly with team mates to facilitate and coordinate tasks. Teams are expected to develop their own, preferred communication channels, be that email, IRC, Slack, Discord, BlackBoard, or another agreed upon medium.

Lastly, team performance is an important consideration. Prior to starting on their project, each team will author a "social contract" for their team which outliens the expectations of team members and consequences for failing to meet the expectations. This "social contract" document often includes, stating the preferred medium of communication, setting regular meeting times for collaborative work, expected number of hours each team member will devote to working on the course project each week, how to communicate if a team member cannot meet their obligations for a given week, what to do if a team member consistently doesn't meet their weekly obligations.

Course Description

The capstone course can be broken up into three phases.

  1. Planning (1 week)

    • Students will create GitHub accounts to facilate collaboration with their peers
    • Students will pitch potential project ideas for the semester
    • Students will be organized into project teams, one team per viable project idea
    • Viable projects will be initialized on GitHub
    • Teams will develop and submit their social contracts, outlining team expectations
  2. Minimum Viable Product (8 weeks)

    • Each week on Mondays:
      • Each team member will present their completed contibutions to the project since the last week
      • Each team member will present their planned contibutions to the project for the next week
      • Teams will have an opportunity to ask questions and solicit feedback from the instructor and their peers in other teams regarding issues with their project
    • Each week on Thursdays:
      • The scheduled class period will be reserved for teams to collaborate independently
      • The instructor will be available during the scheduled class period for consultation on technical difficulties with projects
      • The instructor will also be available during office hours immediately after the scheduled class period
    • Teams will present their Minimum Viable Product at the beginning of November
      • Teams must submit a script / slides of their presentation before class begins on 11/1
      • Each team member must present an aspect of the project
      • The presentation should demonstrate a minimal example of the project's functionality
  3. Final Product (6 weeks)

    • Each week on Mondays, the same as the Minimum Viable Product phase
    • Each week on Thursdays, the same as the Minimum Viable Product phase
    • Teams will present their Final Product at the end of December
      • Teams must submit a script / slides of their presentation before class begins on 12/13
      • Each team member must present an aspect of the project
      • The presentation should demonstrate the final and complete functionality of the project

Course Schedule

Mondays Thursdays Monday Activities Thursday Activities
08/26 Syllabus, GitHub, project brainsorming
08/30 09/02 Group assignments, social contracts No Class, dedicated work time
09/09 Product definition presentations
09/13 Project report № 1
09/20 09/23 Project report № 2 No Class, dedicated work time
09/27 09/30 Project report № 3 No Class, dedicated work time
10/04 10/07 Project report № 4 No Class, dedicated work time
10/14 No Class, dedicated work time
10/18 10/21 Project report № 5 No Class, dedicated work time
10/25 10/28 Project report № 6 No Class, dedicated work time
11/01 11/04 MVP presentations (1/2) MVP presentations (2/2)
11/08 11/11 Project report № 7 No Class, dedicated work time
11/15 11/18 Project report № 8 No Class, dedicated work time
11/22 Project report № 9
11/29 12/02 Project report № 10 No Class, dedicated work time
12/06 12/09 Project report № 11 No Class, dedicated work time
12/13 12/16 Final presentations (1/2) Final presentations (2/2)
Notes:
  • 12/13 The instructor will be out of state presenting at a confrence. We will have class for the first round of final presentations and hope that there are no connectivity troubles.
  • The final presentations will take place 12/16/21 from 1:45 – 3:45 pm per the registrar's posting.

Due Dates

Assignments are due at 11:59PM on the date specified below.

Date Day Assignment
08/27 Friday Skills and interests survey
09/01 Wednesday GitHub account
09/03 Friday Social contract
09/08 Wednesday Product definition presentation
10/31 Sunday MVP presentation script & slides
12/15 Wednesday Final presentation script & slides
12/20 Sunday Peer assessment

Assignments

Course Component Weighted Score
Skill & Interest Survey 1%
GitHub Account 1%
Social Contract 1%
Product Definition 2%
Product Reporting 44%
Minimum Viable Product 25%
Final Product 25%
Peer Assessment 1%

Product Reporting

Each week students will report on the progress of their product. Each student is expected to report on the contributions they made since the last product report, and state their planned contributions to complete for the next project report. After team members have reported on their recent and tenetive contributions, the floor will be opened up for any team member to solicit assistance or feedback on one or more technical issues they are experiencing. The instructor or their peers will attempt to provide them with assistance addressing their issue(s). Students who can provide guidance to members of another tem will be given additional consideration on their project reporting for that week.

Minimum Viable Product

The minimum viable product (MVP) is the state of a project in which the basic functionality can be demonstrated. The product does not need to have a polished user interface nor does it need to have a refined user experience. The core technical functionality needs to be demonstratable.

The requirements for a MVP will be discussed and refined each week of product reporting with the instructor. If a previous MVP goals appear to have been too ambitious, some functionality maybe be deferred to the final product or removed entirely. If all previously established MVP functionality has been met prior to the MVP presentation date, the instructor and team will decide on additional functionality which can be implemented before the MVP presentation.

Note that removal of significant functionality from an MVP is likely to negatively impact the scoring of the MVP repopt. Conversely, presenting additional functionality at the MVP presentation will likely result in positive scoring impact. Presenting the exact MVP specifications is considered B-grade work (20/25 points).

Final Product

The final product is the state of a project in which all planned functionality can be demonstrated. The product should present a servicable user interface and a thoughtful user experience. The core technical functionality needs to be demonstratable and expanded upon from the MVP.

The requirements for a final product will be revised based on the MVP presentation and then subsequently discussed and refined each week of product reporting with the instructor. If previous final product goals appear to have been too ambitious, some functionality maybe be removed from the final product. If all previously established final product functionality has been met prior to the final presentation date, the instructor and team will decide on additional functionality which can be implemented before the final product presentation.

Note that removal of functionality from the final product is likely to negatively impact the scoring of the final repopt. Conversely, presenting additional functionality at the final product presentation will likely result in positive scoring impact. Presenting the exact final product specifications is considered B+ grade work (22/25 points).

Grading

Grade Score Earned
A >= 90%
B >= 80%
C >= 70%
D >= 60%
F < 60%

The letter grade earned by a student will be at least what is described in the table above. A plus or minus to a letter grade may be determined by the relative performance of the student to their peers in the course, their participation in helping peers in other teams with technical problems, and the team assessment at the end of the semester.

Standard Information

Email

Emails to the instructor must be from a student's CUNY Hunter College email address to the instructor's CUNY email address aw2918@hunter.cuny.edu for FERPA reasons.

You must include the class number CSCI-499 in the subject line of the email!

Academic Violations

Hunter College regards acts of academic dishonesty (e.g., plagiarism, cheating on examinations, obtaining unfair advantage, and falsification of records and official documents) as serious offenses against the values of intellectual honesty. The college is committed to enforcing the CUNY Policy on Academic Integrity and will pursue cases of academic dishonesty according to the Hunter College Academic Integrity Procedures. Special attention is given to CONTRACT CHEATING (this is where students have work completed on their behalf which is then submitted for academic credit).

Computer Science Facilities & Labs

All computer science students can use any of the general-purpose labs throughout Hunter College. In addition, computer science majors and students enrolled in CSCI courses can an obtain an account on the Computer Science Department Network. More information can be found on the Computer Science Department's website.

Counseling & Wellness Services

Counseling & Wellness Services (CWS) provides mental health, health and wellness services aimed at enhancing students' quality of life and maximizing personal and academic growth and development. More information can be found on the Counseling & Wellness Services website.

Special Needs

Students with special needs should see me for accommodation.

Sexual Misconduct

In compliance with the CUNY Policy on Sexual Misconduct, Hunter College reaffirms the prohibition of any sexual misconduct, which includes sexual violence, sexual harassment, and gender-based harassment retaliation against students, employees, or visitors, as well as certain intimate relationships. Students who have experienced any form of sexual violence on or off campus (including CUNY-sponsored trips and events) are entitled to the rights outlined in the Bill of Rights for Hunter College.

a. Sexual Violence: Students are strongly encouraged to immediately report the incident by calling 911, contacting NYPD Special Victims Division Hotline (646-610-7272) or their local police precinct, or contacting the College's Public Safety Office (212-772-4444).

b. All Other Forms of Sexual Misconduct: Students are also encouraged to contact the College's Title IX Campus Coordinator, Dean John Rose (jtrose@hunter.cuny.edu or 212-650-3262) or Colleen Barry (colleen.barry@hunter.cuny.edu or 212-772-4534) and seek complimentary services through the Counseling and Wellness Services Office, Hunter East 1123. CUNY Policy on Sexual Misconduct Link:

http://www.cuny.edu/about/administration/offices/la/Policy-on-Sexual-Misconduct-12-1-14-with-links.pdf

Legal Considerations

ADA Compliance

In compliance with the American Disability Act of 1990 (ADA) and with Section 504 of the Rehabilitation Act of 1973, Hunter College is committed to ensuring educational parity and accommodations for all students with documented disabilities and / or medical conditions. It is recommended that all students with documented disabilities (Emotional, Medical, Physical and / or Learning) consult the Office of Accessibility located in Room E1124 to secure necessary academic accommodations. For further information and assistance please call (212-772-4857)/TTY (212-650-3230).

Family Educational Rights and Privacy Act (FERPA)

The Family Educational Rights and Privacy Act (FERPA) (20 U.S.C. § 1232g; 34 CFR Part 99) is a Federal law that protects the privacy of student education records. The law applies to all schools that receive funds under an applicable program of the U.S. Department of Education.

FERPA gives parents certain rights with respect to their children's education records. These rights transfer to the student when he or she reaches the age of 18 or attends a school beyond the high school level. Students to whom the rights have transferred are "eligible students."

  • Parents or eligible students have the right to inspect and review the student's education records maintained by the school. Schools are not required to provide copies of records unless, for reasons such as great distance, it is impossible for parents or eligible students to review the records. Schools may charge a fee for copies.
  • Parents or eligible students have the right to request that a school correct records which they believe to be inaccurate or misleading. If the school decides not to amend the record, the parent or eligible student then has the right to a formal hearing. After the hearing, if the school still decides not to amend the record, the parent or eligible student has the right to place a statement with the record setting forth his or her view about the contested information.
  • Generally, schools must have written permission from the parent or eligible student in order to release any information from a student's education record. However, FERPA allows schools to disclose those records, without consent, to the following parties or under the following conditions (34 CFR § 99.31):
    • School officials with legitimate educational interest;
    • Other schools to which a student is transferring;
    • Specified officials for audit or evaluation purposes;
    • Appropriate parties in connection with financial aid to a student;
    • Organizations conducting certain studies for or on behalf of the school;
    • Accrediting organizations;
    • To comply with a judicial order or lawfully issued subpoena;
    • Appropriate officials in cases of health and safety emergencies; and
    • State and local authorities, within a juvenile justice system, pursuant to specific State law.

Schools may disclose, without consent, "directory" information such as a student's name, address, telephone number, date and place of birth, honors and awards, and dates of attendance. However, schools must tell parents and eligible students about directory information and allow parents and eligible students a reasonable amount of time to request that the school not disclose directory information about them. Schools must notify parents and eligible students annually of their rights under FERPA. The actual means of notification (special letter, inclusion in a PTA bulletin, student handbook, or newspaper article) is left to the discretion of each school.

For additional information, you may call 1-800-USA-LEARN (1-800-872-5327) (voice). Individuals who use TDD may use the Federal Relay Service.

Or you may contact us at the following address:

Family Policy Compliance Office
U.S. Department of Education
400 Maryland Avenue, SW
Washington, D.C. 20202-8520

About

CSCI 499 — Advanced Applications: A Hunter Fall 2021 Course

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages