Skip to content

Latest commit

 

History

History
103 lines (75 loc) · 5.28 KB

SYLLABUS.md

File metadata and controls

103 lines (75 loc) · 5.28 KB

The contents of this syllabus are subject to change.

CSCI 49900 Advanced Applications: A Capstone Course for CSCI Majors (Spring 2018)

Prerequisites

In additon to the course requirements for the CSCI major, students should also have a working knowledge of git and understand the mechanics of a distributed version control system in order to contribute to the project deliverables.

If you need to get up to speed on git, see this page for resources.

Adjunct Lecturers

Section A - 1:10p - 3p

  • Alejandro Gonzalez Sole (agonzalez at jagssoft dot com)
  • Jesse Greenberg (jgreenberg at appnexus dot com)
  • James Lin (jameslin at appnexus dot com)

Section B - 2:10p - 4p

  • Sabeena Lalwani (slalwani at appnexus dot com)
  • Sean Laude (slaude at appnexus dot com)
  • Sid Wighe (swighe at appnexus dot com)

Course Calendar

The adjunct lecturers will give a talk on a particular topic on Tuesdays each week. The project deliverables due each Friday follow the sequence of topics, so we ask for your active attention and engagement in lectures. For details on each project deliverable, see this page.

Week 1: Jan 30 - Feb 2

  • Topic: Agile Methodologies and Github
  • Objective: Understand a framework for collaboration with a team and use Github to achieve this model of agile development
  • Deliverables: Individual Project Pitches
  • Notes

Week 2: Feb 6 - Feb 9

  • Topic: Product Thinking
  • Objective: Articulate the meaning of 'product' in a software context. Identify the market, users, and plot the product lifecycle for a particular product. Explain the meaning of minimal viability and how product requirements become code.
  • Notes

Week 3: Feb 13 - Feb 16

  • Topic: Design & UX Thinking
  • Objective: Design thinking involves empathizing with your user to help them solve their problems with as little effort as possible. We will cover iteration and prototyping techniques and demonstrate the application of usability heuristics.
  • Deliverables: Team Product Proposals
  • Notes

Week 4: Feb 20 - Feb 23

  • Monday Schedule, no Tuesday lecture

Week 5: Feb 27 - Mar 2

  • Topic: Testing Thinking & Test Driven Development
  • Objective: Explain how testing is foundational to the software development lifecycle. Understand the benefits of testing activities and highlight the costs of lax testing
  • Notes

Week 6: Mar 6 - Mar 9

  • Topic: User Interface Systems
  • Objective: Overview of human-machine interaction facilities, from command-line interfaces, to rich, augmented reality experiences. We will survey current web-based user interface technologies
  • Notes

Week 7: Mar 13 - Mar 16

  • Topic: Back-end Systems
  • Objective: Overview of web server technology and survey of current technologies. Discussion of RESTful services and API design.
  • Deliverables: Architecture Presentations (Jesse, James, Felix section only)
  • Notes

Week 8: Mar 20 - Mar 23

  • Topic: Ask a Professional Discussion Panel
  • Objective: Students will have the opportunity to ask a group of tech professionals about their work in the software and IT professions (come prepared with good questions for candid answers about careers in technology). At the end of this panel, students should take away a greater sense of the work completed in the capstone.
  • Notes

Week 9: Mar 27 - Mar 30

  • Topic: Database Systems and Data Thinking
  • Objective: Overview of databases and other persistent storage systems. Students should be able to identify the benefits of structured vs. unstructured databases and have a deeper understanding of the challenges building data-driven applications at scale
  • Notes

There will be no class during Spring Break, Apr 3 - Apr 6

Week 10: Apr 10 - Apr 13

  • Topic: Security/IT Controls Thinking - Session 1
  • Objective: Articulate the importance of security and IT Controls. Effective IT Controls illustrate the ability to have reliance on software systems and society as a whole.
  • Notes

Week 11: Apr 17 - Apr 20

  • Topic: Testing Methodologies
  • Objective: Overview of testing methods and their applicability to all parts and the whole of software-based systems
  • Deliverables: Data-driven Prototype (Jesse, James, Felix section only) and Presentation
  • Notes

Week 12: Apr 24 - Apr 27

  • Topic: Security/IT Controls Thinking - Session 2
  • Objective: We will be using this week to cover any additional topics that are pertinent to the class, depending on students' progress on their projects.

Week 13: May 1 - May 4

  • Topic: Production Issues and Scale Thinking
  • Objective: Focus on on scalability and issues encountered when deploying software systems in the real world
  • Notes

Week 14: May 8 - May 11

  • Students will use this week to complete their final projects
  • Deliverables: TBD

Week 15: May 15 - May 18 and Week 16: May 22

  • Deliverables: Final Demo