Hello!
I'm trying to understand Bitcoin scripts, but it seems like all sources that I find on the Internet assume that the reader has computer science background. For example, "Each transaction output doesn't just specify a public key. It actually specifies a script". Why? What's the problem with specifying just a public key? What breaks down in the design of Bitcoin if we don't use any scripts?
The output script specifies the requirements for spending the bitcoins in the output. It allows for many different kinds of transactions. If the output only includes the address (actually pubkeyhash), then there could only be one kind of transaction.