COMS 4156: ASE ยป COMS W4156 Fall 2013 Waiver Assignment

 

Active Projects »

Reducing Testing Overhead

Unit test virtualization: significantly reducing the time to setup unit tests

 

CS/SE Education

New Techniques and Approaches to improve CS/SE Education

 

Managing Sensitive Data on Mobile Devices

Supporting privacy requirements on mobile devices

 

Overcoming the Intuition Wall: Automatic Graphical Analysis of Programs to Discover and Program New Computer Architectures

A joint project encompassing computer architecture, machine learning and software engineering

 

An Open Software Framework for the Emulation and Verification of Drosophila Brain Models on Multiple GPUs

Software frameworks and tools to emulate fly brains

 

Software Testing for Non-Testable Programs

Automating metamorphic testing techniques at runtime

 

In Vivo Testing

Executing tests in the deployment environment, using the state of the running application

 

Societal Computing

Exploring the impact of computational tradeoffs on societal concerns such as Privacy, Green Computing, Sustainability, and Cultural Differences

 

ARIS

Automated Online Evaluation for Improving Cyber-Physical System Reliability

 

genSpace

Enabling collaboration support for users of the geWorkbench computational biology tool

 
 

COMS W4156 – Class Waiver

Due September 10 at 17:00

We expect anyone who will be waiving this class to have significant software engineering experience contributing to a large, most likely multi thousand line, project in any programming language.
We don’t give a specific LOC requirement because it is a poor metric for project scope or significance.
You will need to pick at least one of these projects and answer specific questions about the software engineering practices employed during the project.
In addition to answering the question you need to tell us specifically how you contributed to the project such as subsystems, functions, files or classes modified, tests written, etc.
If the project is open source please point us to the source code or repository.
The second part of the assignment is a small programming assignment where you will write web service that we can query via HTTP.
You must complete this assignment before applying for the waiver on mice.
The due date listed above is for students wishing to enter the class if the waiver is not granted.

Written Assignment (20 points)

Please write around one paragraph about each of the following software engineering concepts or technologies and how you used each of them in your project mentioned above.
You will need to answer if and how you used each of the practices.
You may also want to explain what benefit each provided, what problems they may have caused and what you would do differently if you were to do the project again.
Your written assignment should be in either text or pdf format.

  1. Requirements Engineering
    • 3 points possible
    • Rubric:
      • 0 points if not used.
      • 1 to 3 points will be allocated based on your description.
  2. Formal Design such as UML or Design Patterns
    • 3 points possible
    • Rubric:
      • 0 points if not used.
      • 1 point if attempted but used incorrectly such as misapplying design patterns.
      • 2 to 3 points if you correctly based on your description.
  3. Software process such as waterfall or agile
    • 3 points possible
    • Rubric:
      • 0 points if not used.
      • 1 point if used but possibly incorrectly.
      • 2 points if used correctly.
      • 3 points if used correctly and you can provide a thoughtful evaluation.
  4. Software Testing such as black box, white box or acceptance testing.
    • 4 points
    • Rubric:
      • 0 points if not used although we should subtract points.
      • 1 point if attempted.
      • 2 points if used and testing frameworks were used and appropriate.
      • 3 or 4 points if you can give a thoughtful evaluation of your testing practices.
  5. Software component Modes such as external libraries like EJB or Web Services.
    • 4 points
    • Rubric:
      • 0 points if none used.
      • 1 point if used but incorrectly.
      • 2 points if used correctly.
      • 3 or 4 points if you can explain the reasoning behind your library choices.
  6. Software development tools such as IDEs, version control systems, bug trackers, or debugging tools.
    • 3 points
    • Rubric:
      • 0 points if not used.
      • 1 point if used but not to their potential.
      • 2 points if used correctly.
      • 3 points if you can also explain specific situations where these tools were more advantageous than more primitive methods such as print statements.

Programming Assignment

The programming instructions can be found here.

Grading

Your written assignment will be graded according to the rubric presented above and given a score out of 20.
Your grade on the programming assignment will be based on the number of test cases your application passes.
You must have at least 32 out of 40 points, 80%, to receive the waiver.
DO NOT publish your assignment on an any kind of public Git host such as Git Hub or Bit Bucket.
We will consider such action to be an academic integrity violation and you will fail the assignment.
You may use private hosting that is not publicly accessible.

Turn In:

You will turn in your project via GIT.
Please email riley at cs dot columbia dot edu for credentials.
You may turn in the assignment after the due date if you don’t wish to enroll in the class.

Do not email you assignment to Dr. Kaiser.
Doing so will result in assignment failure.

Notes

  • If you are looking for the class homework assignment it is available here.