>>898554 (OP)
>port scanner - "easy"
>game of life - "medium"
Really? I think it's easier to get a simple game of life program going than making a port scanner that's actually useful. For the latter you need to know much about networking, socket programming, use libraries, provide it with data about port number and what not. For the former you just need to implement the basic data structures that are needed, the transformation algorithm that creates a new frame, and some I/O, all further improvements are just embellishments (such as randomized vs user-input seed, variable speed, wrapping of the board, etc. etc.)