From 60e5830a2a8533ad18ea54088b15180c62c243ed Mon Sep 17 00:00:00 2001
From: Nathan <nathan@druids.tech>
Date: Tue, 31 Oct 2023 09:26:27 +0000
Subject: [PATCH] week 11

---
 overviews/week11.md        | 46 +++++++++++++++++++++
 practicals/week11/code.py  | 14 +++++++
 practicals/week11/notes.md |  0
 practicals/week11/tasks.md | 82 ++++++++++++++++++++++++++++++++++++++
 4 files changed, 142 insertions(+)
 create mode 100644 overviews/week11.md
 create mode 100644 practicals/week11/code.py
 create mode 100644 practicals/week11/notes.md
 create mode 100644 practicals/week11/tasks.md

diff --git a/overviews/week11.md b/overviews/week11.md
new file mode 100644
index 0000000..fc7a7c8
--- /dev/null
+++ b/overviews/week11.md
@@ -0,0 +1,46 @@
+# Week 11
+
+**This weeks quiz:** https://go.uwe.ac.uk/ctapQuiz
+
+This week we will be looking at modelling systems in different ways. In the first lecture we will consider modelling behaviour using flow diagrams.
+
+The **second lecture** will look at modelling data and will consider entity relationship diagrams and state machine diagrams.
+
+## This week you are working on...
+
+### 👉 [THIS WEEKS TASK]() 👈
+
+## Have already completed ...
+
+All tasks up to week 10. If you have not done week 10's work on your assessment work, you should work with your tutor to make sure you catch up.
+## By the end of the week...
+
+... you should have completed:
+
+- Reading Chapter 4 of Karl Beechers book 'Computational thinking: a beginner's guide to problem-solving and programming'
+- Tasks 1, 2, 3 and 4 provided in `ctap-resources/practicals/week11/tasks.md`
+
+## Resources
+- [Chapter 4 of Computational thinking: a beginner's guide to problem-solving and programming](https://blackboard.uwe.ac.uk/webapps/blackboard/content/listContentEditable.jsp?content_id=_9740235_1&course_id=_358486_1&mode=reset)
+- [practicals/week11/tasks.md](https://gitlab.uwe.ac.uk/ctap/ctap-resources/-/blob/main/practicals/week11/tasks.md?ref_type=heads)
+- [Slides](https://go.uwe.ac.uk/ctapSlides)
+- [Markdown Guide](https://gitlab.uwe.ac.uk/ctap/ctap-resources/-/blob/main/guides/markdown.md?ref_type=heads)
+
+### External resources
+
+#### Learning Python 
+- [Learn Python .org's interactive python tutorials](https://www.learnpython.org/)
+- W3 schools [tutorial and reference](https://www.w3schools.com/python/)
+- Raspberry Pi Foundation [tutorials](https://projects.raspberrypi.org/en/pathways/python-intro?gclid=Cj0KCQjwpompBhDZARIsAFD_Fp8FpuLGfd6v863VziU4rGdV-ZHkcnu-bhjB0KuGS1fyYLBHiXpazGcaAnGuEALw_wcB)
+-  [Python in 100 seconds](https://www.youtube.com/watch?v=x7X9w_GIm1s)
+- Learn [python in 1 hour](https://www.youtube.com/watch?v=kqtD5dpn9C8)
+
+#### Flow Charts
+- [Video on flow charts for coding problems](https://www.youtube.com/watch?v=lKRl295CyFY)
+- [Video that contextualises flow diagrams in buisness problems ](https://www.youtube.com/watch?v=wLkvvqypq1E) 
+- [Lucid chart overview/tutorial of flow diagrams](https://www.lucidchart.com/pages/what-is-a-flowchart-tutorial)
+
+#### Entity Relationship Diagrams
+
+- [Lucid chart overview/tutorial on ERDs](https://www.lucidchart.com/pages/er-diagrams)
+- [ERD video by Lucid Chart](https://www.youtube.com/watch?v=QpdhBUYk7Kk)
\ No newline at end of file
diff --git a/practicals/week11/code.py b/practicals/week11/code.py
new file mode 100644
index 0000000..99fe21f
--- /dev/null
+++ b/practicals/week11/code.py
@@ -0,0 +1,14 @@
+
+existing_username = 'dumbledore88'
+banned_username = 'MinecrAvenger'
+username = input('what is your username: ')
+
+if username == banned_username:
+    print('you are banned!')
+    exit()
+
+if username == existing_username:
+    print('login')
+else:
+    print('signup')
+
diff --git a/practicals/week11/notes.md b/practicals/week11/notes.md
new file mode 100644
index 0000000..e69de29
diff --git a/practicals/week11/tasks.md b/practicals/week11/tasks.md
new file mode 100644
index 0000000..2fd8004
--- /dev/null
+++ b/practicals/week11/tasks.md
@@ -0,0 +1,82 @@
+# Week 11 Tasks for practicals
+
+From [Karl Beechers book: Computational thinking: a beginner's guide to problem-solving and programming ](https://blackboard.uwe.ac.uk/webapps/blackboard/content/listContentEditable.jsp?content_id=_9740235_1&course_id=_358486_1&mode=reset), read chapter 3.
+# Task 1 (Assessment Work!)
+## 1.1 : Flow Diagrams
+
+Create a flow diagram to describe the signup process of a user. (You may use software of your choice - or scan in pen and paper if you must! I'd recommend [draw.io](https://app.diagrams.net/).)
+
+## 1.2 : Flow Diagrams cont.
+
+Select a component of you problem based on the decompostion you did last week and use a flow diagram to start to explore a solution to this problem (or some section of the problem). Work with and discuss with your tutor in order to identify the appropriate part of the problem where needed. 
+
+If relevant you may refer to the flow diagrams from the lecture and the one above in task 1.1 as predefined processes (and you may include these flow diagrams in your portfolio report too.) 
+
+## 1.3 Write up
+
+Write up at least 150 words that describe your process of creating a flow chart and using it to describe your solution in the `# models` section of your report.
+
+## 1.4 Simulation
+
+> Note: the code you write in this section should relate to your problem and not just login (login should not be the main focus of your code - though it might be included)
+
+Convert your flow diagram to python, simulating certain actions with a print statement. For example, based on the diagram for user login (from the lecture), we might provide the following code:
+
+```python
+existing_username = 'dumbledore88'
+banned_username = 'MinecrAvenger'
+username = input('what is your username: ')
+
+if username == banned_username:
+    print('you are banned!')
+    exit()
+
+if username == existing_username:
+    print('login')
+else:
+    print('signup')
+
+
+```
+
+
+# Task 2 (Assessment Work!)
+
+## 2.1
+
+You should start by stating the problem that you are looking to solve at the start of your portfolio and you should check with your practical tutor that this problem has sufficient scope. (If you are unsure of a problem, you can choose one of the supplied problems from the scenario).
+The Assignment Scenarios have been updated, see [here.](https://gitlab.uwe.ac.uk/ctap/ctap-resources/-/blob/main/assignment-scenarios.md?ref_type=heads)
+
+## 2.2
+ 
+For your chosen scenario isolate one of the problems related to that scenario and decompose the problem using a tree diagram- this diagram should be at least 3 layers deep. You should discuss this process in approximately 150 words and add this discussion and tree diagram to you `portflio/report.md` file in the decomposition section.
+
+## 2.3
+
+Attempt to create a function which provides a generalised solution to one of the smaller decomposed problems that you have defined. You will need to assume some form of input for this example (you are free to use you existing python knowledge to create appropriate inputs). For those that are new to programming, the use of a function with arguments would be sufficient for this  - see task 1.2 for an example.
+
+## 2.4 (Extra credit)
+Continue to create generalised functions that can address elements of the problem that you have broken down. Further discuss these functions in your portfolio.
+
+# Task 3 : Requirements elicitation
+
+## 3.1 
+
+Greenstores are designing a simple app to allow their users (owners of Electric Vehicles (EVs)) to schedule times for them to ensure their car has charge. For example, if a user knows they will be planning a trip that is not part of their normal routine, their car battery may have been depleted to assist the power grid and therefore not be charged. This app needs to allow users to prevent this. 
+## 3.2 
+
+In this weeks notes:
+Consider the feasibility for such an app given existing technology and laws - is this feasible?
+## 3.3 
+
+Describe the functional and non functional requirements for such an app.
+
+# Task 4 : Requirements elicitation (Assessment Work!)
+
+## 4.1
+
+For the problem you have identified for your assessment work, discuss, research  and write approximately 150 words that describe how you would explore the feasibility of solving the problem you have identified. Consider available technology for addressing the problem and how you might break the problem down to understand what sub problems may take longer (or even an undefined amount of time). How would you approach designing MVP (minimum viable product) solutions to test this?
+
+## 4.2
+
+In your portfolio, provide the functional and non functional requirements for your problem, writing approximately 150 words for your assessment work. Remember to discuss how these requirements would be validated.
-- 
GitLab