You are describing what you might call an "exact GCD" scheme. It is insecure (as discussed in the comments), and I believe the suggested modification to make it secure (add a single error $e$ to all samples) is insecure as well (take 4 coordinates, subtract pairs of them to get $q(a_0-a_1)$, $q(a_2-a_3)$, and then take GCDs. It seems quite likely you will recover $q$).
There exist secure versions of this, which are normally called "approximate GCD"-based cryptography. This should be seen as a (simplified) variant of lattice-based cryptography, so the fact that in searching you found "Learning with Errors"-based things should not be surprising. I don't know if there are any metrics that AGCD schemes outperform lattice-based schemes, but as they are quite simple they are good to learn with (it seems plausible they might replace/augment RSA as the "first asymmetric scheme" taught to students --- from your post it is even plausible this happened to you).
Anyway, an explicit public-key encryption scheme from AGCD is described here. This particular paradigm (encrypting by taking a subset-sum of the public key) is itself quite popular as well, for example one can build lattice-based PKE from it as well (although there exist more efficient constructions).
Anyway, the secure AGCD scheme is broken into three parts.
KeyGen: Generate a bunch of noisy AGCD samples of the form $(a_i, b_i :=qa_i + 2r_i)$ for $i\in[n]$ (the $r_i$ is the noise, and is required). The secret key is $q$
Enc: To encrypt $m\in\{0,1\}$, select some random subset $S\subseteq \{0,1\}^n$, and output $c = m +\sum_{i\in S}b_i = m + q\sum_{i\in S}a_i + 2\sum_{i\in S}r_i$
Dec: Compute $(c\bmod q)\bmod 2$
To see that this is correct, note that $c\bmod q = m + 2\sum_{i\in S}r_i\bmod q$, so provided $2\sum_{i\in S}r_i < q$ the first modular reduction will not overflow.
Then $m + 2\sum_{i\in S}r_i \bmod 2 \equiv m$, yielding correct decryption.
There are some parameters to tune ($r_i$'s must not be too small, or it will be insecure. They must not be too large, or it will be incorrect), but setting secure parameters has always been one of the unfortunate annoyances of lattice-based cryptography compared to other techniques (there are just more possible parameters you have to set, and some parameters have to satisfy certain relationships).