Parent post makes a couple of good points. One of those could use a little sharpening:
The critical difference is not between "programmer" and "software engineer". There are persons with good and bad practices in both camps.
The critical difference is between "code monkey" and "strategic developer". A lot of self-labeled "programmers" are code monkeys who may sometimes be quite clever, but have not acquired the wisdom to do the elegant thing. A lot of newly credentialed "software engineers" are also mere code monkeys. Code monkeys have their place, and they can be quite productive, especially when they are put into closely managed environments where strategic developers set strict rules about comments, naming conventions, and styles. (cue "What Would Linus Do?")
Strategic developers see beyond the limited vision of code monkeys. They are concerned with much more than developing a solution to the immediate coding problem; their vision and scope of action involves long term maintenance; ease of repurposing code to some other project; fitting the product into the target ecosystem of software, and so on. Software engineering curricula are intended to prepare students for this role, but of course they generally fail to do so: I doubt that there are any persons with brand new diplomas who can be entrusted with anything beyond a code monkey's role.
That said, the general purpose of any college course is not to teach particular skill sets (like proper use of regexes, bash scripts, etc) but to encourage students to learn how to learn these skills. The good student will teach himself the necessary skills when he needs them. Instructors do not have to know the specific skill sets to present environments that challenge the student to learn how to learn. The details of how POSIX and PCRE regexes differ are not an appropriate subject; the reasons why Perl has its distinctive shape and feel, and the reasons why POSIX was brought into being should be touched on.
It can be argued that persons with software engineering credentials are more likely to become good strategic developers. But that is not always the case, and it is also true that code monkeys with no formal training have often become good strategic developers.