11

Another fun game is "Spelling Bee" from the New York Times (https://www.nytimes.com/puzzles/spelling-bee). You supply a file containing words. The student program reads the file and selects words that match the rules. The milestones are from a past project from Reed College. Print all the words that can be spelled using a fixed string (e.g. "...


10

Here is a concept but it works much better with visual feedback. Simulate a Pandemic. A pandemic requires a world with inhabitants that can be in one of several states, such as healthy, sick, dead. The pandemic spreads from sick inhabitants to "neighbor" inhabitants who are healthy. "Dead zones" stop the spread. You can also erect ...


6

As a non-CS adult, when I'm learning a new language I like to write programs to solve some of the Project Euler problems. Stick to the lower numbered problems and they're not too hard for non-mathematicians. For me, these problems are fun. There is enough information given in the problems to make sure that non-mathematicians understand the goal. Good Luck!


4

My grand-daughter is interested in programming and has been from the age of 5 or so (and is now nearly 10). I teach programming at university and my son-in-law (her father) teaches at secondary school level so we both have experience at teaching different age ranges. We find the Usborne books to be very useful for that age range, and they are so interesting ...


4

You might want to explore CS Unplugged for use with any youngster. While it doesn't use programming, it provides some foundation in computational thinking and provides some metaphors, etc, that might be useful to learning even in an environment where the student is learning to program. I don't think it is necessary to do everything in the CS Unplugged ...


4

For the imperative decision making aspects, one of the best approaches I have personally found for getting people interested is to have them write programs that play a game (not writing the game itself, but writing a program that can stand in for a human playing the game). This challenges them to think analytically about how the game is played, and that ...


3

At my institution, we (often) take our courses' final products in a different direction: free choice, working as a pair (or in a trio). Students write 2 to 3 ideas ("proposals") within a google doc, and then talk among themselves to find projects that seem like a good fit. They then write up short proposals, and divide tasks into "must-have ...


3

Web scraping is a vast domain that might interest students. Python is great for string matching (the power of regular expressions!), for parsing HTML (or XML or JSON) into structures that are so much more simple to manipulate. There are even sites that provide APIs to help. The Python Praw library allows you to wander down Reddit pages your students may ...


3

Python turtle Related to what their major is if you can find something relevant else import turtle # this module allows some visual output, that can be interesting, and gives good feedback. Jupiter notebooks / google colab notebook. It allows you to create pages using markdown (same as this site), and to incorporate python code, tables, and charts. Tables ...


2

It is not said for how much time the students shall dedicate to their projects, e.g., as an exercise / lab class, or for a (perhaps multiple) week long one. If aiming for shorter ones, I recommend to find inspiration from the sources teaching «this is the problem x, along which we develop technique y». Seek-out for projects which may simplify the day-to-...


2

I teach first/second semester students C, and what I usually do is start with rather simple tasks like finding out whether a year is a leap year, a wordcount (wc) or ls program etc. Later I progress to "projects". Most of thess---this is C after all---are simply taken from UNIX console utilities: nc: Connect to TCP/UDP/UNIX sockets or listen on ...


2

Sound is another subject that can be as simple or complex as you like. The format of a wav file is already pretty complex. You can read the header in Python, and then decode the pcm data stream and, for example, write a new file with half the volume. It should be easy to verify by ear if your program got it right! By only reading and writing files the tricky ...


2

For Java ideas, look at the free to join Greenroom that is a resource collection place for the Greenfoot programming environment. There are a wide variety of project (see Resources) for programming projects within this environment. Greenfoot is a scaffolding environment based on a grid like world that contains objects of various kinds that the student ...


2

Other cool game with simple logic to it would be Conway's game of life. https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life


1

I'm surprised that no one has mentioned Code.org (computer science curricula for middle-high school students page) so I will! They have a plethora of courses and short activities that allow students to develop games, apps, and websites in block-based languages and Javascript for free. They walk through the concepts very slowly and have videos and tutorials ...


1

Sudoku game/solver can be a fun project. I did this in my C/C++ class but should be good for Python as well. At the same time I did a Rust version so those that might be interested could compare them ;)


1

For simple, but interesting, problems and guidance on language use consider Downey's "Think Python" (Green Tea Press, 2nd edition). Make sure to pick the second edition (Python 3), the first one is Python 2 only. The full source to the book, exercises, and other material is available for free.


1

Design a Vending Machine A straight forward project that I've seen used and worked through myself is to implement a vending machine. Pretty much everyone knows how a vending machine works, so there isn't a learning curve on what the requirements are. It can be really simple, using a command line interface to enter money, select an option, and get change back....


1

Make a Snake (Python) game My very first class in collage (CS) was to make a snake game. We got some code (like input control and rendering) and just had to connect the pieces and do some simple coding. This class was basically to get everybody comfortable with using the IDE and coding. The good thing was that those of us that found it very easy could add ...


1

MicroPython I'd like to suggest that you look at MicroPython, not because it is a subset of Python, but because it runs on a growing number of microcontrollers, and there are many complete educational projects built on them. For example, for about $9 you can get the m5atom which is a read-to-use device that you can plug in to usb, where it appears as a ...


1

I know for me, personally, when I'm learning a new language, what helps me most is to have a means of collecting simple user input through a console. (Text or numbers, that's all) What this allows me to do is make simple "games" that don't focus a lot on graphics/presentation/game design, but rather execution. It allows me to focus on figuring out ...


Only top voted, non community-wiki answers of a minimum length are eligible