Practical programming projects

Mega Project List is a list of practical projects that anyone can solve in any programming language. These projects are divided in multiple categories, such as algorithms, data structures, networking, security, threading, files, web, databases, graphics, and more.

There’s also a separate repository with solutions, in case you need some assistance.

Specification gaming examples in AI


Here’s a super fun list of things that artificial intelligence figured out by gaming the rules, like inconsistent and incomplete specifications, bugs, and other bits that humans frequently assume and ignore.

Some examples to get you started are:

  • Aircraft landing: evolved algorithm for landing aircraft exploited overflow errors in the physics simulator by creating large forces that were estimated to be zero, resulting in a perfect score.
  • Block moving: a robotic arm trained to slide a block to a target position on a table achieves the goal by moving the table itself.
  • Data ordering patterns: neural nets evolved to classify edible and poisonous mushrooms took advantage of the data being presented in alternating order, and didn’t actually learn any features of the input images.
  • Road runner: agent kills itself at the end of level 1 to avoid losing in level 2.
  • Ruler detector: AI trained to classify skin lesions as potentially cancerous learns that lesions photographed next to a ruler are more likely to be malignant.
  • Tetris: agent pauses the game indefinitely to avoid losing.

This is truly thinking outside the box!




GraphIt – high-performance graph domain specific language


GraphIt is a high-performance graph domain specific language.  If you are involved with graph data structures (web, social networks, maps, and so on and so forth), check it out.  It’s sounds pretty cool.  Here’s a 20 minute video of a talk that does an overview of the language and some examples.

GraphIt is open sourced under MIT license.  Here’s the GitHub repository.




The story of a 44 year old bug … still alive today


If there’s only one thing you’ll read online today, make it this one.  Yes, it’s a rant.  But it’s brilliant.  It talks about an annoying bug in the Windows 10, which is still here today, in 2018, yet which routes from a decision made back 1974.  Love it!




A guide for how to talk to a developer


A guide for how to talk to a developer“:

We built this resource to help you better communicate with any developers and other technical people that you work with. These flashcards teach and review basic technology vocabulary and computer science terms. We hope it’s helpful to you as you hire, manage, and collaborate with software engineers, your CTO, or other members of your technical team.

The guide is a collection of flip cards, broken down into three categories:

  • Computer Science (29 cards)
  • Languages and Frameworks (25 cards)
  • Developer Tools (12 cards)

Super cool!