Introduction to Computer Science/5.8 Major Assessment - "List Manager" Project

5.8 Major Assessment - "List Manager" Project

MDX Parsing Error

[next-mdx-remote] error compiling MDX: Expected a closing tag for `<li>` (28:43-28:47) before the end of `paragraph` 26 | 1. It must use a **list** as its central data structure. 27 | 2. It must have a main menu that runs in a **`while` loop**. > 28 | 3. The menu must include options to: <ul> <li>**View** all items in the list (using a `for` loop). | ^ 29 | 4. **Add** a new item to the list (using `.append()`). 30 | 5. **Remove** an item from the list (using `.remove()` or `del`). More information: https://mdxjs.com/docs/troubleshooting-mdx

Raw Content:

<Callout title="🎯 Project Goals" type="info">
- Apply your knowledge of lists and list methods to build a complete data management application.
- Synthesize all programming concepts: variables, loops, and conditionals.
- Structure a program using a menu-driven `while` loop.
- Create a polished, user-friendly, and well-documented final program.
</Callout>

## Major Assessment: "List Manager" Project (12%)

This is your final major programming project before the culminating ISP. You will create a complete, menu-driven application that allows a user to manage a list of items. You have the freedom to choose what kind of list you want to manage.

### Your Task: Choose Your List

Choose **one** of the following ideas, or come up with your own (with approval):

- A To-Do List
- A Shopping List
- A Contact List (managing names)
- A Party Guest List

### Core Requirements

Your program must meet the following criteria:

1. It must use a **list** as its central data structure.
2. It must have a main menu that runs in a **`while` loop**.
3. The menu must include options to: <ul> <li>**View** all items in the list (using a `for` loop).
4. **Add** a new item to the list (using `.append()`).
5. **Remove** an item from the list (using `.remove()` or `del`).
6. **Quit** the program (which stops the `while` loop).
7. The program must be user-friendly, with clear prompts and messages.
8. Your code must be well-commented, including a header with your name and date.

---

### Knowledge Check: What's in Your Toolkit?

Before you start, make sure you know what tools you'll need. Try this quick interactive exercise to match the task to the Python tool. (If the embed doesn't work, it is also available under the "Knowledge Check" module.

<Callout title="Note" type="info">
**    <iframe src="https://alcdsb.elearningontario.ca/d2l/le/content/27435160/fullscreen/251251757/View?d2lSessionVal=&ou=27435160&d2l_body_type=3&skipHeader=true" width="100%" height="800px" frameborder="0" allowfullscreen="allowfullscreen"></iframe>**
</Callout>

### Structuring Your Code: Reaching for Level 4

There are two ways to approach building this program:

- **Level 3 (Proficient) Approach:** You can build the entire program inside one main `while` loop with a large `if/elif/else` block. As long as it meets all the core requirements, this is a perfectly valid solution.
- **Level 4 (Exemplary) Approach:** To demonstrate a more advanced and professional structure, you can separate the logic for each menu option into its own **function**. This shows that you can synthesize the skills from Unit 4 and is the key to achieving an exemplary mark.

**Example of a function-based structure:**

```python
def show_list(my_list):
    """Prints all items in the list."""
    # ... your for loop to print items would go here ...

def add_item(my_list):
    """Asks the user for a new item and appends it."""
    # ... your input() and .append() code would go here ...

# --- Main Program Loop ---
# ... your while loop would call these functions ...
```

---

## Submission

Submit your final, working `.py` file or URL to this dropbx.