Snap! (anteriormente BYOB) é uma linguagem de programação visual, arrastar e soltar. É uma reimplementação estendida de Scratch (um projeto do grupo Lifelong Kindergarten no MIT Media Lab) que permite construir seus próprios blocos. Ele também possui listas de primeira classe, procedimentos de primeira classe e continuações. Estas capacidades adicionais tornam adequado para uma introdução séria à ciência da computação para estudantes do ensino médio ou universitário.