For questions about teaching Computer Science at an undergraduate level. Use this tag to clarify the level of the students being taught, but ensure that you provide as much context about their ability and experience in the question.

Undergraduate is a US term for students studying at a college or university for a Bachelor's degree. Students are about 18-21 years old and, in the US, typically study a variety of subjects with one primary: the major.

Students may begin their undergraduate program with little or no background in CS but others may have a quite extensive background, especially in programming, less so in theoretical subjects.

Note that in other countries (e.g. GB) the terms college and university are not interchangeable as they tend to be in the US. See the terminology meta post for disambiguation.