# Project Ideas#

## Encryption#

• Integrate email into the encryption code, so you can send and receive encrypted messages

• Explore ‘code breaking’, writing code that code break the encryption of some of the encryption schemes

## Chatbots#

• Extend the chatbot to talk about some new topics, or a new kind of interaction

• For example, update the chatbot to more systematically answer questions

• Or focus on a particular topic, like answering questions about Python

• Set up Chatbots that can talk to each other

## Artificial Agents#

• Make the agents interact with each other

• What happens when they are in the same place? Can they ‘eat’ each other?

• Add something new to the world: obstacles (walls?), or targers (food?)

• Add a new exploration scheme for the bots to perform

• Note: if you are want to scale up this idea, you can look into the ‘pelita’ application (from the demo)

## Research#

• Use LiteratureScanner to investigate an area of research in the literature

• Explore scientific python to analyze a small dataset

• Choose an area you are interested in, and explore what people do in it (read code!)

• If you want to try and use an external tool / codebase, consider writing a demo / tutorial for it

• Find an API, and write some code to get some data / do some procedures with it

• You can also check out and build of one of the demos from the 0th class

• One option: create text based programs, that mimic some programs you would like

• Build some sort of utility that you would find useful

• File management, organizing pictures, indexing files,

• If you are interested in an area of research, start a project related to that

• This can be a way to learn those specific tools

• For example: get a working demo, and sketch out a tutorial

## Taboo Topics $$^*$$#

There are lots of helpful tutorials online; however, often it’s difficult to figure out how to make your implementation different than these online tutorials. It’s also boring and a pain to grade. So, to avoid any issues, there are two taboo topics this quarter:

1. Hangman

2. Drawings from turtle

3. tic-tac-toe

4. blackjack

5. Magic 8 Ball

6. Rock, Paper, Scissors

7. Snake Game

8. Connect4 Game

$$^*$$If you have a really new hangman implementation/idea or are super stoked about your great turtle idea or have invented a spin on traditional tic-tac-toe/blackjack/magic 8 ball/rock, paper, scissors, you’ll need to pitch your idea to (via email/campuswire or in office hours) and get approval from Professor Ellis

## How to get started#

• Pseudocode out the ideas you would like to explore / work on

• Open a notebook, and get some code into it

• If you are doing an assignment related project, see which code you need, and isolate it

• Start exploring! Write some extra code that starts

• Figure out what you will need to do your idea

• When you start having ‘mature’ functions / classes, try moving them into a script