Computer Science Placement: Difference between revisions
| (10 intermediate revisions by the same user not shown) | |||
| Line 9: | Line 9: | ||
==CS 151 Introduction to Computer Science== | ==CS 151 Introduction to Computer Science== | ||
This course also does not have a prerequisite, but it is more focused and faster paced than ECT 130. CS 151 is a full semester of programming in Python. It is recommended to take both ECT 130 and CS 151 your first semester if you have room in your schedule. If you do not, then you should take ECT 130 your first | This course also does not have a prerequisite, but it is more focused and faster paced than ECT 130. CS 151 is a full semester of programming in Python. It is recommended to take both ECT 130 and CS 151 your first semester if you have room in your schedule. If you do not, then you should take ECT 130 your first term, and then CS 151 your second term. | ||
Why should you take CS 151 sooner than later? As the first course with a lot of programming, it helps you confirm whether CS is the major you want (versus IT or something else), and it also gets you the programming skills needed to apply for internships in CS. | Why should you take CS 151 sooner than later? As the first course with a lot of programming, it helps you confirm whether CS is the major you want (versus IT or something else), and it also gets you the programming skills needed to apply for internships in CS. | ||
==CS 201 Programming Structures== | ==CS 201 Programming Structures== | ||
The prerequisite for CS 201 is a C or better in CS 151. The following are the most important prerequisite skills and knowledge gained in CS 151 | The prerequisite for CS 201 is a C or better in CS 151. The following are the most important prerequisite skills and knowledge gained in CS 151 that are important to be ready for CS 201. | ||
* ''Competent'' programmer in Python, including use of modules and appropriate use of Python containers (lists, dictionaries, tuples) | * ''Competent'' programmer in Python, including use of modules and appropriate use of Python containers (lists, dictionaries, tuples) | ||
* ''Competent'' user of your own computer (installing programs, etc.) and the | * ''Competent'' user of your own computer (installing programs, etc.) | ||
Note that Python is a prerequisite for | * Ability to use the Linux terminal and the CS server | ||
Note that Python is a prerequisite for CS 201, so transfer students with credit for CS 151 but without experience in Python should work independently to get up to speed with Python ''before'' the term starts. | |||
For transfer students who have transfer credit for CS 151, you will be able to register for CS 201. To determine whether you are really ready, we also have a placement test for CS 201. | For transfer students who have transfer credit for CS 151, you will be able to register for CS 201. To determine whether you are really ready, we also have a placement test for CS 201. Ask your advisor to arrange for you to take this test. | ||
==CS | ==CS 302 Data Structures and Algorithms== | ||
C or better in CS 201. Prerequisite skills and knowledge - | C or better in CS 201 and CS 203. Prerequisite skills and knowledge - | ||
* CS 201 prerequisite skills/knowledge | * CS 201 prerequisite skills/knowledge | ||
* ''Proficient'' programmer in Python, including object-oriented programming and experience developing (and debugging and testing) | * ''Proficient'' programmer in Python, including object-oriented programming and experience developing (and debugging and testing) larger programs independently | ||
* Understanding of basic data structures (array, linked list, trees) and sorting/searching | * Understanding of basic data structures (array, linked list, trees) and sorting/searching | ||
* Algebra - rules of exponents, roots, logarithms / exponential | |||
* Discrete math - rules of logic, set operations, proof by contradiction, proof by induction, basic properties and definitions of graphs, asymptotic notation and rules | |||
==CS 500 Programming Fundamentals== | ==CS 500 Programming Fundamentals== | ||
This course does not have a prerequisite but assumes students have done programming in /some/ language and have a good background in math. The most important skills and knowledge to be ready to take CS 500 are the following. | |||
* ''Competent programmer'' in some programming language | * ''Competent programmer'' in some programming language | ||
* Able to troubleshoot and learn a programming language on one's own using online resources | * Able to troubleshoot and learn a programming language on one's own using online resources | ||
* | * ''Some'' understanding of basic data structures (arrays, linked lists, binary search trees, hash tables, etc.) | ||
Note that the course reviews basic data structures, but at a pace appropriate for graduate students (fairly quick). | |||
==CS 501 Programming for Data Science== | ==CS 501 Programming for Data Science== | ||
CS 501 is similar to CS 500 in its prerequisite skills/knowledge. | |||
* ''Competent'' programmer in some programming language | * ''Competent'' programmer in some programming language | ||
* Able to troubleshoot and learn a programming language on one's own using online resources | * Able to troubleshoot and learn a programming language on one's own using online resources | ||
* | * ''Some'' understanding of basic data structures (arrays, linked lists, binary search trees, hash tables, etc.) | ||
Latest revision as of 17:48, 22 May 2026
This page contains information about placement for computer science courses. For incoming students who have some previous computer science coursework, this page contains information about placing into the appropriate first CS course at ISU.
For transfer students, evaluating transfer credit is separate from the placement process. Transfer credit is given based on the syllabus and course description of the course taken elsewhere, and this transfer credit can satisfy prerequisites to allow you to register for later CS courses. You still need to take the CS placement so that we know if you are really ready for the later courses; if not, then you will have some catching up to do and should talk with your advisor to plan how to do this.
Course Prerequisite Knowledge/Skills
ECT 130 Introduction to Electronics and Computer Technology
This course has no prerequisites. The main goals are to (a) give students practical understanding of computing to become well-informed citizens and professionals in the computing age, (b) have students become familiar with using the Linux operating system, installing and using a programming language, and beginning to program in Python.
CS 151 Introduction to Computer Science
This course also does not have a prerequisite, but it is more focused and faster paced than ECT 130. CS 151 is a full semester of programming in Python. It is recommended to take both ECT 130 and CS 151 your first semester if you have room in your schedule. If you do not, then you should take ECT 130 your first term, and then CS 151 your second term.
Why should you take CS 151 sooner than later? As the first course with a lot of programming, it helps you confirm whether CS is the major you want (versus IT or something else), and it also gets you the programming skills needed to apply for internships in CS.
CS 201 Programming Structures
The prerequisite for CS 201 is a C or better in CS 151. The following are the most important prerequisite skills and knowledge gained in CS 151 that are important to be ready for CS 201.
- Competent programmer in Python, including use of modules and appropriate use of Python containers (lists, dictionaries, tuples)
- Competent user of your own computer (installing programs, etc.)
- Ability to use the Linux terminal and the CS server
Note that Python is a prerequisite for CS 201, so transfer students with credit for CS 151 but without experience in Python should work independently to get up to speed with Python before the term starts.
For transfer students who have transfer credit for CS 151, you will be able to register for CS 201. To determine whether you are really ready, we also have a placement test for CS 201. Ask your advisor to arrange for you to take this test.
CS 302 Data Structures and Algorithms
C or better in CS 201 and CS 203. Prerequisite skills and knowledge -
- CS 201 prerequisite skills/knowledge
- Proficient programmer in Python, including object-oriented programming and experience developing (and debugging and testing) larger programs independently
- Understanding of basic data structures (array, linked list, trees) and sorting/searching
- Algebra - rules of exponents, roots, logarithms / exponential
- Discrete math - rules of logic, set operations, proof by contradiction, proof by induction, basic properties and definitions of graphs, asymptotic notation and rules
CS 500 Programming Fundamentals
This course does not have a prerequisite but assumes students have done programming in /some/ language and have a good background in math. The most important skills and knowledge to be ready to take CS 500 are the following.
- Competent programmer in some programming language
- Able to troubleshoot and learn a programming language on one's own using online resources
- Some understanding of basic data structures (arrays, linked lists, binary search trees, hash tables, etc.)
Note that the course reviews basic data structures, but at a pace appropriate for graduate students (fairly quick).
CS 501 Programming for Data Science
CS 501 is similar to CS 500 in its prerequisite skills/knowledge.
- Competent programmer in some programming language
- Able to troubleshoot and learn a programming language on one's own using online resources
- Some understanding of basic data structures (arrays, linked lists, binary search trees, hash tables, etc.)