Assignments can range in complexity from a simple "Hello, World" type program in assembly language, all the way through adding new features to a program like Notepad++. When I was at University we had an assignment to program a simple game of Blackjack (21), it demonstrated the use of random, sort, etc. You had the option of hit (a new card), or stick (stay with the hand you had), and you could get a 5 card hand (which wins), or closest to 21 wins (without going over), the Ace can count as 1 or 11. I complained that the project was too easy, and could be completed in under an hour, so an extra credit part was added with options to split, double down, etc was added. I managed to complete the project during my lunch hour to prove that it could be done in the time I said (since some other students didn't believe me).