Many microcontroller projects include communicatin with PC. It may be a simple data logging, accepting commands via serial terminal or be a complex data acquisition system with GUI. In order to communicate microcontroller with PC, one of several communication interface is needed like RS232, USB or any other. No matter how complex your project is you always have to complement both sides with proper signal converters like RS232 or USB to TTL chips. Usually these cost more than other part of project.
Scott came out with simpler solution that works almost on any machine and operating system. One condition – there has to be a soundcard involved. Microcontroller simply sends specially timed pulses to soundcard mic/line input while python script decodes them in to data bytes. In bidirectional version both sides act same. You will find full source codes for AVR microcontroller and python to start simple communication that require no investments. This is a great choice for hobby level projects.