Project 1: Computating for Problem Solving (Fall 2022)#

Introduction#

In teams of two, you will develop a Python/Jupyter notebook that applies one or more computing skills from CBE 60258 to solve a science or engineering example. Most teams will find it easiest to choose an example or problem from their favoriate undergraduate or graduate textbook. Alternately, teams, in consultation with the instructor, may develop a notebook targeted at younger learners (e.g., K-12), for use in STEM outreach activities. Likewise, teams may solve an example or homework problem from another CBE graduate class with the written permission of that instructor. (Some faculty may not want examples or homework problems disseminated outside their class.)

The expectation is that all notebooks will be contributed to this website, thereby creating a repository of examples. Students are encouraged to use these examples as reference material, especially during their duties as graduate teaching assistants. Mini-project 1 (simulating games of chance) is a good example format. Each notebook should build up the solution in multiple parts with discussion questions.

Learning Objectives#

By completing this assignment, you will:

  1. Master computing skills for (chemical) engineering problem solving

  2. Develop educational materials including writing learning objectives, discussion questions, and solutions

  3. Practice a modified version of the peer review process

Project Proposal#

Each team should submit a project proposal 1 to 3 pages in length that contains the following elements:

  1. States the problem to be solved. For example, typeset the textbook example or problem and include the appropriate reference.

  2. Identifies the computing skills from CBE 60258 that will be incorporated into the notebook.

  3. Briefly desribe possible discussion/critical thinking questions to pose during the notebook. All projects should not end at making a plot or computing an answer; they must include discussion questions to prompt critical thinking about the results.

  4. Briefly describe “pencil and paper” analysis the readers will need to perform such as deriving a model, check degrees of freedom, or writing pseudocode. Each notebook should include at least one “pencil and paper” step or section.

  5. Provide a short outline for the notebook, e.g., section and subsection titles.

Project Notebook#

This is the main deliverable for the project.

Examples and Length#

Here are some example notebooks which are former Mini-Project Homeworks for CBE 20258:

Your example notebook should be suitable for use as a 20 to 30-minute class activity or a 20 to 120-minute homework problem for an undergraduate or first-year graduate student. For context, the above examples are approximately 1.5 to 3 times longer than needed for this project. Similarly, you should target 30% to 60% of the length of mini-project 1 (simulating games of change).

Required Content#

Each notebook must include the following:

  1. Introduction or problem statement

  2. At least 3 subparts (similar to mini-project 1)

  3. “Pencil and paper” analysis in at least one section

  4. Discussion questions that require critical analysis in at least one section

  5. Python solutions should be marked starting with the comment ### BEGIN SOLUTIONS and ending with the comment ### END SOLUTIONS.

  6. Written solutions for “pencil and paper” should be typeset using Microsoft Word or LaTeX. Submit solutions both as a PDF and the source files (.docx, .text).

  7. Include full citations for any data, problem statements (if from a paper, book, or homework assignment), or figures.

Formatting Guidlines#

Please do the following:

  1. Use all best practices for formatting code outlined here. For example, all functions need complete document strings. You should write clear comments throughout the code. (Aim for one line of comments for every 5 lines of code.)

  2. Proof read all of the written text. You might find this Chrome extension helpful.

  3. Write concise and clear discussion prompts. Ask direct questions. Give suggested lengths for the responses.

  4. Shorter is better.

  5. Use headers and subheaders to break the notebook into sections (similar to mini-project 1 and other homework projects).

  6. Do not use more than level three headers. # is the title, ## are sections, and ### are subheaders in markdown (text boxes in a notebook).

Peer Review#

Peer review is an essential part of the scientific process. To prepare you for academic writing, we will use a modified simplified peer review process for this assignment. Each person will be assigned two projects to review. This review will involve preparing 1 page of comments and completing a short rubric for each project. Each team will then be encouraged to refine their notebooks using this feedback.

Contributing to This Website#

Each notebook will be published on this website. Our goal here is to create a library of (chemical engineering) examples for our department to use for various educational activities.

Here are the instructions on how to contribute your notebook.

Each team who submits a constributed notebook by the deadline posted on the class schedule will have their notebook quickly evaluated holistically on the following scale:

  • 5/5 = 1.0, meets or exceeds all expectations

  • 4/5 = 0.8, meets most expectations with a few minor deficiencies

  • 3/5 = 0.6, meets many expectations but with many minor deficiencies

  • 2/5 = 0.4, meets some expectations but with one or more major deficiences

  • 1/5 = 0.2, meets a few expectations with many minor and major deficiencies

  • 0/5 = 0.0, did not submit a revision

Each team will earn back 40% of the points they lost on the first Project 1 Notebook submission times the score they receive on the revised notebook (0.0 to 1.0). For example, if a group lost 10 points on the original submission and earn 4/5 on the revision, they would receive 0.4 x 10 x 0.8 = 3.2 points back.