Mini Project (25%)

Quick Summary
Type Weight When Deliverable
Group 25% Planning: Weeks 7,8
Implementation: Weeks 9, 10
20 min group presentation in Week 11 (Slides must be submitted).
An Jupyter notebook containing the accompanying Python code.
Submit both to CANVAS.

1 Group Mini Project

1.1 What is the Group Mini Project about?

In the real world, computational tools are integral for learning, understanding, and applying scientific principles. The Group Mini Project aims to demonstrate how computers, specifically Python, can be utilised for these purposes. Your task is to select a scientific topic that interests you and your group members. You must then create a presentation to communicate this topic to your classmates. However, the presentation must incorporate computational tools (such as plotting, modelling, simulations, animations, etc.) developed using Python. The presentation will contribute 15% to your overall grade, while the Python code will account for 10%. Please note that the Python code should be prepared and submitted separately in a Jupyter Notebook format.

1.2 Objective of the Group Mini Project

To clarify, the objectives are as follows:

  1. Share the science with a 20 minute presentation (15%) Your presentation should be designed to educate your classmates, who may not be specialists, about the basics of your chosen topic. Explaining the fundamental scientific concepts related to the topic and articulating why it is significant and worth learning is crucial. Additionally, you should highlight how and when Python was utilised in your presentation without sharing the actual code.

  2. Share the code in a Jupyter Notebook (10%) The content of your presentations must be developed in your shared GitHub repository using Python in a separate Jupyter Notebook. Your code must be well-documented and accessible to your classmates in terms of understanding. It would help if you also emphasised how programming, specifically Python, enhances the appreciation and understanding of the topic.

1.3 Why is the Group Mini Project good for you

The Group Mini Project is authentic in that it mirrors how computational tools are used in real life. By choosing a topic that interests you, you are deepening your understanding of the subject and honing your skills in gathering, analysing, and synthesising information. This project will also enhance your critical thinking skills by identifying and solving problems related to your chosen topic. Additionally, your freedom in this project allows for innovative uses of Python, such as simulations, animations, and data visualisation. These activities will encourage a deeper level of analytical thinking as you develop and explain your code.

In presenting these ideas to an audience, you will develop public speaking skills and the ability to convey technical information clearly and accessibly. This skill is essential in the scientific community, as effective communication is key to making your work valuable and accessible. It will also help you make a name for yourself.

Finally, working and collaborating in a team setting will foster effective communication, task delegation, and collective goal achievement. These are crucial skills in any teamwork environment, further preparing you for the adventures beyond the University.

1.4 Important considerations

  • Manage Expectations: You will have approximately two weeks to plan the mini project, followed by another two weeks for implementation. This timeframe is relatively short, so it is crucial to set realistic goals. Try not to overextend yourselves by taking on too much. Focus on achievable objectives that allow you to effectively demonstrate your understanding and skills within the given period. Please use the rubrics often to make sure you are on track.

    Remember that the Group Mini Project will also impact the Individual viva (see below).

  • Remember the viva: The final Individual Viva will focus on the content of the Group Mini Project. Ensure everyone in the group is up to speed with the science and the coding presented in the Mini Project. Put another way, don’t make your project so complicated that one or more of you will struggle to the extent that you will not know enough to participate in the viva.

  • Example Presentations: To give you a clearer idea of the type of projects and presentations expected, the instructors will deliver three sample presentations at the end of week 6. These presentations will serve as references for your project’s scope, depth, and presentation style. Please ensure you attend this session.

  • Seeking Assistance: Don’t hesitate to ask for help. If you encounter challenges, whether they’re related to Python, the scientific content, or the presentation aspect, the instructors and teaching assistants are here to support you.

  • Collaboration and Communication: Collaboration is key in this project. Regular communication within your group is essential. Plan your roles, set deadlines, and update each other on your progress. Effective teamwork can significantly enhance the quality of your project.

2 Grading

# Criterion Needs Improvement Satisfactory Good Accomplished Distinguished
1 What is the topic and why is it important?
(10%)
The nature and significance of the project are vaguely stated with little to no elaboration.
– The depth and breadth of the project are ill-suited to the target audience
– The project details are poorly supported by poor scientific reasoning and scientific sources.
– The scientific resources (e.g. books, research articles, scientific magazines, websites) are unreliable and poor-quality.
– Relevant technical terms and scientific know-how is indiscriminately used without regard for the target audience.
The nature and significance of the project are stated but with significant gaps in explanation.
– The depth and breadth of the project require the audience to draw connections on their own, thereby imparting noticeable strain
– The project details are poorly supported due to mediocre scientific reasoning and/or poor scientific sources.
– The scientific resources (e.g. books, research articles, scientific magazines, websites) are unreliable and poor-quality.
– Relevant scientific concepts and technical terms, especially those guiding the coding/modelling, are just stated.
The nature and significance of the project are clearly presented but with minor lapses (such as minor logical leaps).
– The depth and breadth of the project can be understood with minor strain on the target audience (i.e. their classmates)
– The project details are just supported with scientific reasoning and/or scientific sources.
– The scientific resources (e.g. books, research articles, scientific magazines, websites) are reliable and high-quality.
– Relevant scientific concepts and technical terms, especially those guiding the coding/modelling, are stated and some of them are explained.
The nature and significance of the project are clearly presented but lacks some elaboration.
– The depth and breadth of the project can just be understood by the target audience (i.e. their classmates)
– The project details are well supported using solid scientific reasoning and/or scientific sources
– The scientific resources (e.g. books, research articles, scientific magazines, websites) are reliable and high-quality.
– Relevant scientific concepts and technical terms, especially those guiding the coding/modelling, are stated and explained to suit the target audience.
The nature and significance of the project are clearly presented and suitably elaborated.
– The depth and breadth of the project can be understood effortlessly by the target audience (i.e. their classmates)
– The project details are well supported using solid scientific reasoning and/or scientific sources
– The scientific resources (e.g. books, research articles, scientific magazines, websites) are reliable and high-quality.
– Relevant scientific concepts and technical terms, especially those guiding the coding/modelling, are stated and well explained to suit the target audience.
2 Difficulty of Challenge/Project
(20%)
Minimally challenging in its demand of science knowledge and coding skills.
– Has disproportionate amount of breadth over depth.
Moderately challenging, requiring a fair understanding of science and coding.
– Offers a balanced approach to breadth and depth.
Challenging with a good level of demand in both scientific understanding and coding skills.
– Demonstrates a thoughtful balance of breadth and depth.
Highly challenging in scientific and coding requirements.
– Showcases in-depth understanding and application in both areas.
Exceptionally challenging in its demand of science and coding.
– Has well-balanced amount of breadth and depth.
3 Organisation and Clarity
(25%)
The rationale of the algorithm/solution used is missing or incomprehensible to the target audience.
– Ideas are disorganised to the point that it is extremely difficult to follow the thesis of the notebook.
– Explanation and code chunks are presented in a manner that is extremely difficult read and understand.
– Little to no attempt has been made to format the notebook. Formatting severely impedes comprehension.
The rationale of the algorithm/solution used is presented but at a level that strains the target audience.
– There is an attempt at organising ideas, but there are many leaps in logic, making it difficult to follow the thesis of the notebook.
– Explanation and code chunks are incongruent, making the flow abrupt and the notebook difficult to read.
– Overall formatting is inconsistent, messy or distracting thereby impeding comprehension.
The rationale of the algorithm/solution used is elaborated at a level the target audience can follow with effort.
– Clear organisation of ideas with some significant gaps in logic, making it a bit difficult to follow the thesis of the notebook.
– Explanations and code are in large chunks, making the flow of the notebook abrupt at times.
– Overall formatting is acceptable with minor impediments to comprehension.
The rationale of the algorithm/solution used is elaborated at a level the target audience can follow and understand.
– Clear organisation of ideas with some minor gaps in logic, but still easy to follow the thesis of the notebook.
– Explanations and code are in large chunks, making the flow of the notebook abrupt at times.
– Overall formatting is mostly neat but still very comprehensible.
The rationale of the algorithm/solution used is elaborated at a level the target audience can follow and understand effortlessly.
– Clear organisation of ideas with no gaps in logic, making it effortless to follow the thesis of the notebook.
– Explanations and code is separated appropriately to enhance the flow of the notebook.
– Overall formatting is neat and enhances comprehension.
4 Scientific insights used in/obtained from the project
(20%)
The scientific insights related to/resulting from the project is absent or superficial or at a level inappropriate to the target audience. The scientific insights related to/resulting from the project is mentioned but at a level straining to the target audience. The scientific insights related to/resulting from the project is mentioned. The scientific insights related to/resulting from the project is mentioned for the benefit of the target audience. The scientific insights related to/resulting from the project has been well highlighted for the benefit of the target audience.
5 Q & A
(25%)
Answers are incorrect and demonstrates a poor understanding of the topic.
– Responses are irrelevant and poorly supported.
Answers are partially correct or incomplete and indicate only a basic understanding of the topic.
– Responses may be vague and lack supporting evidence
Answers are generally correct and demonstrate some understanding of the topic.
– Responses may be brief or lack supporting evidence.
Answers are generally clear and demonstrate good understanding of the topic.
– Responses may lack some detail or depth, but generally show comprehension of the material.
Answers are clear, concise, and demonstrates an excellent understanding of the topic.
– Responses are supported with evidence and examples from the presentation, additional sources or arguments.

Note: The following rubric is identical to that for the Applications Challenge.

# Criterion Needs Improvement Satisfactory Good Accomplished Distinguished
1 Correctness of Scientific and Logical Conclusions
(30%)
Conclusions are inaccurate and demonstrate fundamental errors. Conclusions show limited accuracy and significant logical flaws. Conclusions are generally accurate, with some logical errors. Conclusions are mostly accurate with minor logical flaws. Conclusions are scientifically accurate and logically impeccable.
2 Organisation and Clarity
(language agnostic)
(30%)
Poor organisation, very unclear logic and structure.
– The rationale of the algorithm/solution used is missing or incomprehensible to the target audience.
– Ideas are disorganised to the point that it is extremely difficult to follow the thesis of the notebook.
– Explanation and code chunks are presented in a manner that is extremely difficult read and understand.
– Little to no attempt has been made to format the notebook. Formatting severely impedes comprehension.
Some organisation, but lacks clear logic and structure.
The rationale of the algorithm/solution used is presented but at a level that strains the target audience.
There is an attempt at organising ideas, but there are many leaps in logic, making it difficult to follow the thesis of the notebook.
Explanation and code chunks are incongruent, making the flow abrupt and the notebook difficult to read.
Overall formatting is inconsistent, messy or distracting thereby impeding comprehension.
Adequately organised, clarity and logic can be improved.
The rationale of the algorithm/solution used is elaborated at a level the target audience can follow with effort.
Clear organisation of ideas with some significant gaps in logic, making it a bit difficult to follow the thesis of the notebook.
Explanations and code are in large chunks, making the flow of the notebook abrupt at times.
Overall formatting is acceptable with minor impediments to comprehension.
Well-organised, clear concepts with minor logical flaws.
The rationale of the algorithm/solution used is elaborated at a level the target audience can follow and understand.
Clear organisation of ideas with some minor gaps in logic, but still easy to follow the thesis of the notebook.
Explanations and code is separated appropriately to enhance the flow of the notebook.
Overall formatting is mostly neat but still very comprehensible.
Exceptionally well-organised, ideas and concepts are clear and logically structured.
The rationale of the algorithm/solution used is elaborated at a level the target audience can follow and understand effortlessly.
Clear organisation of ideas with no gaps in logic, making it effortless to follow the thesis of the notebook.
Explanations and code is separated appropriately to enhance the flow of the notebook.
Overall formatting is neat and enhances comprehension.
3 Code Quality and Python Skills
(30%)
Code is poorly documented, hard to understand, and lacks Pythonic sense.
– Variables/functions are named arbitrarily (e.g. var1, var2 etc.) to the detriment of readability.
– The comments in the code are superficial or missing at strategic points, causing the target audience to struggle to comprehend the code.
– Little or superficial attempts at abstraction of code. Multiple copies of code chunks with obvious potential for abstracting.
– Unnecessary development of code is demonstrated instead of using a suitable Python package. Programming structures (e.g. list comprehension) are heavily under-utilized.
– Source code is borrowed and used indiscriminately, bordering on plagiarism.
Code is somewhat documented but has significant errors or lacks Pythonic practices.
Variables/functions names have some sort of consistency but does not enhance readability (e.g. empty_list, storage_list1, differential_equation_1).
Comments are mediocre, but an effort to enhance the comprehension of the target audience is evident.
An attempt at abstraction of code is evident however, many obvious lapses are present.
Unnecessary development of code is demonstrated instead of using a suitable Python package. Programming structures (e.g. list comprehension) are somewhat used but still under-utilized.
Any source code that is borrowed is highlighted.
Code is readable, but lacks some clarity or makes basic Python errors.
Variables/functions are aptly named (e.g. A_lst, dHdt, dXdt()). However, there are several inconsistencies, and the organisation of some variables are messy.
Comments in the code aid rather than hinder the organisation and understanding of the code by the target audience
Abstraction of code is mostly implemented.
Suitable packages and functions are appropriately used without reinventing the wheel. Suitable programming structures (e.g. list comprehension) are utilized but with some lapses.
Any source code that is borrowed is clearly highlighted and cited.
Code is clear and well-documented with good use of basic Python constructs (e.g., loops, conditions).
Variables/functions are aptly named (e.g. A_lst, dHdt, dXdt()) to maximise readability with minor lapses or inconsistencies. Variables are also grouped accordingly (i.e. constants are defined together, functions defined together etc.)
Comments in the code enhance the clarity of the code to the target audience.
Abstraction of code is implemented whenever possible with some lapses.
Suitable packages and functions are appropriately used without reinventing the wheel. Suitable programming structures (e.g. list comprehension) are utilized but with some lapses.
Any borrowed source code is clearly highlighted, cited, and somewhat explained.
Code is exceptionally clear, well-documented, and demonstrates advanced Python skills (e.g., list comprehensions, lambda functions).
Variables/functions are aptly and consistently named (e.g. A_lst, dHdt, dXdt()) to maximise readability. Variables are also grouped accordingly (i.e. constants are defined together, functions defined together etc.)
Comments in the code is strategically used to enhance the clarity of the code to the target audience. They also clearly demonstrate an understanding of the use of code by the authors.
Abstraction of code is implemented whenever possible with minimal/insignificant lapses.
Suitable packages and functions are appropriately used without reinventing the wheel. Suitable programming structures (e.g. list comprehension) are well utilized.
Any borrowed source code is clearly highlighted, cited, and well explained.
4 Creativity: Extending Beyond the Knowledge Base
(10%)
Lacks creativity, does not extend beyond basic examples provided. Minimal creativity, uses standard approaches with little innovation. Displays some creativity, using basic functions or data structures in slightly new contexts. Shows significant creativity, using Pythonic idioms (e.g., list comprehensions or dictionary expressions) and options (e.g., as Matplotlib customisation) for cleaner solutions. Shows exceptional creativity, using Pythonic idioms (e.g., list comprehensions or dictionary expressions) and options (e.g., as Matplotlib customisation) for cleaner and highly impactful solutions.

3 Submitting work

  • You must submit a working Jupyter Notebook and your presentation slides to the relevant folders on CANVAS by the deadline.
  • Your notebook should be in a state that anyone can run. This means that you must not hardcode any paths and that the paths should be OS agnostic.
  • Please also submit any additional files necessary to run the notebook.
Back to top