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?
So, you're trying to understand how Bitcoin works and you wonder why you need to understand the basics of programming? That's like trying to understand RSA or elliptic curve cryptography and wondering why you need to have basic math skills.
Bitcoin uses a scripting system for transactions. Forth-like, Script is simple, stack-based, and processed from left to right. It is purposefully not Turing-complete, with no loops.
A script is essentially a list of instructions recorded with each transaction that describe how the next person wanting to spend the Bitcoins being transferred can gain access to them. The script for a typical Bitcoin transfer to destination Bitcoin address D simply encumbers future spending of the bitcoins with two things: the spender must provide
a public key that, when hashed, yields destination address D embedded in the script, and
a signature to show evidence of the private key corresponding to the public key just provided.
Scripting provides the flexibility to change the parameters of what's needed to spend transferred Bitcoins. For example, the scripting system could be used to require two private keys, or a combination of several, or even no keys at all.
https://en.bitcoin.it/wiki/ScriptThis is a pretty straight forward answer. If you want to delve deeper then you need to start grasping some programming basics. To answer your question - how would the transactions to the block be added without some mechanism to do so?