Computational methods and tools

ENG-270

Project

This page is part of the content downloaded from Project on Sunday, 25 January 2026, 03:24. Note that some content and any files larger than 50 MB are not downloaded.

Page content

Description

Develop a computational model (e.g., simulation) of a real or hypothetical system to study its behavior. Use this model to write a report answering questions related to this system.

Scenario

You are writing this code and report for a client who has hired your engineering services. You can consider that the client is interested in the answer to the question you've posed, as documented in your report - but not the details of the code. The client's engineering team will check that the conclusions of your report are traceable and reproducible through your code. The results from the code should therefore be reproduced as easily as possible through automation; a graphical user interface or command-line interface is not needed.

Conditions

  • You can do the project alone or with two additional students.
  • Your code should be written in a combination of at least one high level language (i.e., MATLAB - or Python also accepted) and one low level language (C). You can use additional tools and programming languages.
  • Your code should be reproducible (by others).
    • Documented
    • Declare dependencies (packages, programs, version numbers)
    • Generation of results should be automated - tables, calculations, figures in your report should be generated with a single execution command as much as possible. The build process (i.e., compilation of C program) preceding it can be separate.
  • You may use someone else's code as long as it is not the bulk of your code base. But it is imperative that you cite their work.
  • You may use AI generated code, but you are responsible for its quality.
  • Your report should also follow proper conventions for citations.

Deliverables

  • [5%] Project proposal
  • [45%] Final submission
    • Code repository
    • Concise report of results (5 pages - citations and appendices can take additional pages)

Note that the percentages correspond to the contribution of each item to the final course grade (the project is 50% of the final grade).

Project proposal

Contents:

  1. Question to be answered / motivation for the project (why would anyone care that you undertake this project)
  2. Current "state-of-the-art" (what is the closest computer program/code you are aware of or that you can find)
  3. Objective and scope of the project
  4. Approach (methods/data set you plan to use) - is it feasible?
  5. Expected schedule and apportionment of labor among team members - either a weekly Gantt chart or table of anticipated milestones

Assessment criteria:

  • Clear motivation, introduction of the topic, and definition of project scope
  • Attempt at identification of model (and data set, if applicable), including classification (continuum/discrete, empirical/mechanistic, forward/inverse)
  • Attempt at identification of related computer programs/codes
  • Statement of feasibility (also as reflected in Gantt chart)

Final submission

Report contents:

  1. Deviations from project proposal
  2. Introduction to the problem
  3. Approach used (e.g., models, mathematical relationships)
  4. Results
  5. Conclusion and outlook
  6. Authorship statement (contributions of each student on the team to the project)

With exception to Point 1, the final report should be a standalone document that can be read independently of the project proposal (i.e., your client should be able to understand the project without having to refer back to the original proposal).

Code repository:

  1. README file
  2. Organized code (clearly structured and documented) and input data; no executables or outputs
  3. Submit via git repository

The README file should contain instructions on how to generate the results (Tables, Figures, calculations) included in the report. The code should generate output figures, tables, and calculations used in the report.

Assessment criteria:

  1. Quality of the written report
    • clarity of motivation methods, results, conclusions
    • self-assessment of result - is it reasonable?
    • proper attribution (citation) of sources
  2. Quality of the submitted code repository
    • readability: consistent style, structure, modularity, documentation, organization)
    • good practices: e.g., reduce hard coding, unnecessary repetition
    • easy to run; reproduces results
    • proper attribution (citation) of sources