/ceuy3013-project-template

Final Project Template for CE-UY 3013 Computing In Civil Engineering

Primary LanguagePython

CE-UY 3013 Project Template

This file presents a description of the final project. For your submission, this file must serve as the documentation of your project, how your program should be used along with examples.

This is the final project template for CE-UY 3013 Computing In Civil Engineering. Your project must follow this template and must be hosted on GitHub. Pay attention to the contents of this repository.

.
├── input (optional)
│   └── README.md
├── output (optional)
│   └── README.md
├── .gitignore
├── README.md
├── requirements.txt
├── source.py
└── test.py

Your project must have exactly the same structure, with exactly the same file names, except for the input and output directories that are optional and should only be used if you write a program that processes one or more data files. Here are two examples of proper use of the input and output directories: ex1, ex2

Requirements

Python 3 projects only, no Python 2.

This will be a solo project, the requirements are such that can be comfortably handled by a single student. The goal is to write a program that performs a series of meaningful tasks within Civil Engineering and can be easily used by others. This requires code that is clean, comprehensible, does not return unexpected errors and is accompanied by sufficient documentation.

What is a meaningful task? There is really no need to overthink this. In this course we looked at examples from structural analysis, pile foundations, traffic engineering and more. In other courses you were introduced to the methods and processes governing environmental engineering, steel design, concrete design, engineering mechanics, project management, fluid mechanics, water resources engineering, geotechnical engineering and much more. These methods and processes involve a series of manual calculations and checks considering multiple parameters.

If I asked you to produce a flowchart of the process you followed in most of the assignments you have tackled so far in this program, you would have done so without much trouble. My point here is that you have been working with algorithms for quite some time already, now is the time to pick one of significant value and complexity and implement it in Python. From my experience, any analytical process that relies on a reference manual can be implemented in Python.

You will have to submit your project proposal for approval first. Do so ASAP on NYU Classes. All projects must be unique, rule of dibs applies.

Grading

  • Practicality: 30%
  • Execution: 50%
  • Documentation and examples: 20%

Practicality: Use common sense, this is an assignment that weighs 20% on your final grade, a simple program won't cut it. Use your combined effort on all class assignments as a reference (they also weigh 20% on your grade) Focus on preparing a thorough project proposal so that your instructor can comment on the usefulness of your project. At the same time, think how your project will benefit yourself and your colleagues (i.e. will this tool make you more efficient with your coursework? is this a tool that simplifies tedious and error-prone calculations? does this tool produce visualizations?)

Execution: Clean, error-free code with lots of comments is key. Once again, use common sense: it is probably best to make it easy for the grader to go through the code than have them struggle to understand what's happening. Absolutely no unexpected errors, make sure to test your code before submitting.

Documentation and examples: This README file presents the project description right now but for your project it must provide a detailed description of your program, and how it should be used with examples. Make sure to check this Markdown guide for tips on how to better present your work.

Your submission will go undergo several plagiarism checks. There is risk of a failing score, without warning, if it becomes evident that your code comes from other public projects.