# What Programming Course To Take?

What introductory computer programming course should I take (and why)? The supplied figures aim to illustrate and explain this in general. Here is more information for potential DS minors:

**Students who plan to also major or minor in CS** must take either **CS 1101** (in Java) or **CS 1104** (in Python). The CS curriculum then requires students to take CS 2201, which also satisfies the DS minor. Students interested in data science are strongly encouraged to take CS 1104 (Python).

**Students who may want to consider a major or minor in CS**, or want more programming experience, should take **CS 1104** (in Python). Students who take CS 1104 can then take CS 2201 or 2204, which both satisfy the DS minor.

**Students who just plan to minor in DS**, or who simply want to take one semester of university-level computer programming, should take **CS/DS 1100**. CS/DS 1100 is sufficient for the DS minor. Students who take CS/DS 1100 can then take CS 2204 if they wish (receiving two credits, not three). They cannot take CS 2201.

**Students who have already taken CS 1101** (in Java) and want to complete the DS minor can either take CS 2201 (in C++) or take CS 1100 (in Python).

**Students who have already taken CS 1104** (in Python) can either take CS 2204 (in Python) or take CS 1100 (but they will only receive a total of four credits for CS 1100 and CS 1104).

**Students who have already taken CS 1103** (in Matlab) will either need to take CS/DS 1100, CS 1101 and 2201, CS 1104 and 2201, or CS 1104 and 2204.