---
# System prepended metadata

title: COMP0233 - Day 7 (24th November 2022)
tags: [teaching, class, COMP0233]

---

# COMP0233 - Day 7 (24th November 2022)

:::info
## :tada: Welcome to the seventh day! 📦🐍💄


### Today
Today we will look at
- How to choose libraries (and install them)
- How to create command line interfaces for your scripts
- How to create a package :package:
:::

:::warning

:warning::fist:🪧 There's **a UCU strike** today.🪧:fist::warning:

Read [this information collected by UCL's UCU members for students about this strike](https://docs.google.com/document/d/13w0T5cv-WY4HsLNLpHg5-bph73GSwtxFDKMPdbaECUI/edit?usp=sharing) to know more about it.

There won't be a class session today, but people in the teaching time may choose to work today. They may be available in zoom to answer questions.
:::


### Review from last week

- :books: Documentation
- :mag::hourglass_flowing_sand: finding problems in history
- :mag::bug: finding bugs with a debugger


#### What was discussed during the week :newspaper:

- You've told us about [your favourite :package: managers](https://moodle.ucl.ac.uk/mod/forum/view.php?f=182693)!
        - Did you know what's also known as the [:cheese_wedge: shop](https://en.wikipedia.org/wiki/Cheese_Shop_sketch)? ([video](https://youtu.be/Hz1JWzyvv8A), [script](https://montycasinos.com/montypython/scripts/cheese.php.html))


#### Discussion forum - favorite package manager

### Groups :handshake:

:::warning
:question: :package:
From two libraries that seems to do the same and both have all the features you need, how do you choose which one to use?
:::

Discuss it within your teams and [select three characteristics to post **as a team** in the word cloud](https://www.menti.com/almuuvpn7twf).


### Exercise: Creating a command line interface

:::info
In your own teams, work together to generate a command line interface following the steps in RSE-classwork issues: [:hash::four::zero:](https://github.com/UCL-COMP0233-22-23/RSE-Classwork/issues/40):heavy_minus_sign:[:hash::four::two:](https://github.com/UCL-COMP0233-22-23/RSE-Classwork/issues/42)

```bash
python average_squares.py 1 2 3 --weights 0.1 0.4 0.5
```
:::

### Exercise: Creating a package

:::info
In your teams, help Charlene to make her script into a library.
Follow the instructions in RSE-classwork  issues: [:hash::four::three:](https://github.com/UCL-COMP0233-22-23/RSE-Classwork/issues/43):heavy_minus_sign:[:hash::four::seven:](https://github.com/UCL-COMP0233-22-23/RSE-Classwork/issues/47)

:::

##### Links
- [packaging notes](https://nbviewer.jupyter.org/github/UCL/rsd-engineeringcourse/blob/master/ch04packaging/03Packaging.ipynb)
- [Sphinx and documentation](https://nbviewer.jupyter.org/github/UCL/rsd-engineeringcourse/blob/master/ch04packaging/04documentation.ipynb)
- [Coding conventions](https://github.com/UCL/rsd-engineeringcourse/blob/master/ch05construction/02conventions.ipynb)

### Next week

- Project management


# Questions

:::info
Feel free to add any question below. Remember the syntax:
```
- Example question
  - [name=student_a] Example answer
  - [name=TA_1] Example answer
```
:::

- Q:
  - [name=...]
- Q:
  - [name=...]



###### tags: `COMP0233` `teaching` `class`
