Technically, Stata is not a programming language (in my experience, people consider only languages that are Turing complete to be programming languages) but a statistical software package.
'We also see that Stata uses . for denoting missing values.': Stata uses . for denoting missings in numeric fields, however not in string fields. Missing observations in string fields are denoted by an empty string. I would propose to be precise here for clarity.
It is certainly a high-level language, but it is more than a DSL. It is as much a programming language as JavaScript or R. I would insist on calling it a programming language because one key purpose of the course is to make users view it as such, and not an interactive application.
Missing values are discussed in a bit more detail.
.
for denoting missings in numeric fields, however not in string fields. Missing observations in string fields are denoted by an empty string. I would propose to be precise here for clarity.