BASIC has one major advantage over every other language out there: absolutely no boilerplate, and absolutely no hidden intelligence in the interpreter. Everything that makes the program run is visible in the code, and everything in the code does something lesson-related in the most minimal programs. Contrast with C, which requires defining a main() function before the student knows what a function is. This simplicity and obviousness makes BASIC the perfect tool for demonstrating simple and obvious programs, but it's inelegant for learning any actual computer science concepts like memory management, design patterns, or data structures.
Python works almost as well for this learning stage.
This is an example of a valid 2-line Python program:
x = 1+1
print x
Here is another valid program:
def oneplusone():
return 1+1
print oneplusone()
This next program will crash at line 1 with "NameError: name 'oneplusone' is not defined":
print oneplusone()
def oneplusone():
return 1+1
The one stumbling block with Python is that indentation matters. Copy-pasting your classmate's code into your program can easily break it.