In brief, they are close enough to being the same thing that you'll need to read the colleges' particular descriptions to be able to tell.
In fact, many colleges don't even offer a specific "Computer Programming" major. "Computer Science" is fairly standard, as they go, and subtle variations on that don't have too much of a specific meaning, which is why I say you'll need to read the course specifics.
In general, "Computer Science" is technically a field of math, but it is almost always used, especially for Bachelor's degrees, to mean "Essential programming, some software engineering techniques, and a little theory." If someone is getting a Masters or Ph.D in Computer Science, then they might actually be a mathematician, but for most people, like me, majoring in Computer Science, it's just the courses for people who want to program for a living.
If you see a degree named "Computer Engineer", that is likely more or less the same, but it might be a little more focused on hardware. Again, check the course descriptions.
To define these terms since I used them and they may come up: Generally, "programming" or "coding" refers to the act of making a computer do what you want with some programming language, while "software engineering" refers to the extra thinking you need to do to go from writing just some functions to a fully-capable application. That might involve planning the program out ahead of time, talking to other experts whether they are programmers or not, and considering tradeoffs. Most undergrad Computer Science degrees include at least one Software Engineering course, which is part of how you know that the degree is preparing you to be a programmer, rather than focusing on the particular branch of math.
Does this make sense? I'm sorry to say that the terms involved here are not as clear as they could be. Weird, for a field so focused on precision and definitions.