Difference between revisions of "Computer Science Placement"

From Computer Science
Jump to: navigation, search
(CS 201 Programming Structures)
(CS 151 Introduction to Computer Science)
 
(18 intermediate revisions by the same user not shown)
Line 1: Line 1:
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.
+
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 =
 
= Course Prerequisite Knowledge/Skills =
  
==CS 101 Fundamentals of Computing==
+
==CS 101 Fundamentals of Computing / 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.
 
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==
 
==CS 151 Introduction to Computer Science==
Prerequisite skills and knowledge -  
+
Prerequisite is a B- in CS 101 or ECT 130 or passing the Computer Science CS 151 Placement Test.  CS 151 is a programming course that requires you to be able to hit the ground running (do assigned reading on your own time, comprehend the reading, get things working on your computer, etc.), so the placement test helps to verify whether you should start in CS 151.  Those with no previous computing experience should normally take just ECT 130 their first term and wait to take CS 151 until their second term. 
 +
 
 +
Prerequisite skills and knowledge to be ready for CS 151 -  
 
* Ability to use the Linux operating system (in particular using the shell/terminal)
 
* Ability to use the Linux operating system (in particular using the shell/terminal)
 
* Able to install and use a programming language
 
* Able to install and use a programming language
 
* Able to troubleshoot and learn some aspects of programming on one's own using online resources
 
* Able to troubleshoot and learn some aspects of programming on one's own using online resources
Students with no previous computer science experience should start in CS 101 rather than CS 151.
+
 
 +
Note that ECT 130 is required in the Computer Science major.  The decision is whether to take only ECT 130 during your first semester or to take both ECT 130 and CS 151 during your first semester.  CS 151 is a prerequisite for other CS courses, so if you are truly ready for it then it would be good to take.  If you truly are 'not' ready for CS 151, then trying to take it when you are not ready will not help you in the end.  Take the placement test, and then we will know.
 +
 
 +
The placement test is a series of readings and quizzes in one of ISU's course management systems. Once you are able to login to the CS Advising course, follow the instructions under "CS 151 Intro to CS - placement test".  Note that this will take some time, so please get started soon.
 +
 
 +
Those who take ECT 130 and earn a B- or higher should be ready to start CS 151. You are still encouraged to take the CS placement test for CS 151 to make sure.  See [https://cs.indstate.edu/wiki/index.php/FAQ#CS_151 CS 151] for more info.
  
 
==CS 201 Programming Structures==
 
==CS 201 Programming Structures==
Prerequisite skills and knowledge -  
+
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 -  
* CS 151 prerequisite skills/knowledge
+
* CS 151 prerequisite skills/knowledge (see above)
* 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)
Note that Python is a prerequisite for this course, so transfer students with credit for CS 151 but without experience in Python need to work independently to get up to speed with Python before the term starts.
+
* ''Competent'' user of your own computer (installing programs, etc.) and the linux terminal
 +
Note that Python is a prerequisite for this course, so transfer students with credit for CS 151 but without experience in Python need to 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. This is contained within the "CS Advising" site mentioned above for CS 151. New transfer students should take the placement test to make sure you are ready for the courses you are signing up for.
  
 
==CS 202 Data Structures and Algorithms==
 
==CS 202 Data Structures and Algorithms==
Prerequisite skills and knowledge -  
+
C or better in CS 201.  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) large programs independently
+
* ''Proficient'' programmer in Python, including object-oriented programming and experience developing (and debugging and testing) large programs independently
* Understanding of basic data structures
+
* Understanding of basic data structures (array, linked list, trees) and sorting/searching
  
 
==CS 500 Programming Fundamentals==
 
==CS 500 Programming Fundamentals==
 
Prerequisite skills and knowledge -  
 
Prerequisite skills and 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
 
* Understanding of basic data structures (arrays, linked lists, binary search trees, hash tables, etc.)
 
* Understanding of basic data structures (arrays, linked lists, binary search trees, hash tables, etc.)
Line 34: Line 46:
 
Prerequisite skills and knowledge -  
 
Prerequisite skills and knowledge -  
 
Prerequisite skills and knowledge -  
 
Prerequisite skills and 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
 
* Understanding of basic data structures (arrays, linked lists, binary search trees, hash tables, etc.)
 
* Understanding of basic data structures (arrays, linked lists, binary search trees, hash tables, etc.)
  
=Computer Science Placement Assignment and Interview=
 
Basic tasks on the assignment/interview...
 
* CS 151
 
** Install python on one's computer, download python file, run python file, submit output (auto-graded by CMS).
 
** Small modification to python program, submit output (auto-graded by CMS).
 
** Get login information to CS server from course management system, connect to CS server, login, get information on the system using appropriate commands and submit results (auto-graded by CMS).
 
** Login to CS server, checkout assignment, follow directions in README, handin.
 
 
* CS 201
 
** CS 151 tasks
 
** Python programming problems that involve: compound Boolean logic, nested loops, defining and using functions, fixing syntax errors, fixing logical errors.
 
** Questions on: binary/decimal/hex, Linux commands
 
 
* CS 202
 
** CS 151, 201 tasks
 
** Python programming problems that involve: making a program that is too slow faster (use appropriate container, avoid nested loops).
 
** Questions on: linear search, binary search, sorting (fast and slow).
 
  
* CS 500
 
** CS 151, 201, 202 tasks (except they can use any language)
 
  
 
* CS 501
 
* CS 501
** CS 151, 201, 202 tasks (except they can use any language)
+
** CS 151, 201, 202 tasks/questions (except they can use any language)
 +
** Questions on: data structures

Latest revision as of 22:17, 9 August 2024

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

CS 101 Fundamentals of Computing / 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

Prerequisite is a B- in CS 101 or ECT 130 or passing the Computer Science CS 151 Placement Test. CS 151 is a programming course that requires you to be able to hit the ground running (do assigned reading on your own time, comprehend the reading, get things working on your computer, etc.), so the placement test helps to verify whether you should start in CS 151. Those with no previous computing experience should normally take just ECT 130 their first term and wait to take CS 151 until their second term.

Prerequisite skills and knowledge to be ready for CS 151 -

  • Ability to use the Linux operating system (in particular using the shell/terminal)
  • Able to install and use a programming language
  • Able to troubleshoot and learn some aspects of programming on one's own using online resources

Note that ECT 130 is required in the Computer Science major. The decision is whether to take only ECT 130 during your first semester or to take both ECT 130 and CS 151 during your first semester. CS 151 is a prerequisite for other CS courses, so if you are truly ready for it then it would be good to take. If you truly are 'not' ready for CS 151, then trying to take it when you are not ready will not help you in the end. Take the placement test, and then we will know.

The placement test is a series of readings and quizzes in one of ISU's course management systems. Once you are able to login to the CS Advising course, follow the instructions under "CS 151 Intro to CS - placement test". Note that this will take some time, so please get started soon.

Those who take ECT 130 and earn a B- or higher should be ready to start CS 151. You are still encouraged to take the CS placement test for CS 151 to make sure. See CS 151 for more info.

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 -

  • CS 151 prerequisite skills/knowledge (see above)
  • 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 linux terminal

Note that Python is a prerequisite for this course, so transfer students with credit for CS 151 but without experience in Python need to 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. This is contained within the "CS Advising" site mentioned above for CS 151. New transfer students should take the placement test to make sure you are ready for the courses you are signing up for.

CS 202 Data Structures and Algorithms

C or better in CS 201. Prerequisite skills and knowledge -

  • CS 201 prerequisite skills/knowledge
  • Proficient programmer in Python, including object-oriented programming and experience developing (and debugging and testing) large programs independently
  • Understanding of basic data structures (array, linked list, trees) and sorting/searching

CS 500 Programming Fundamentals

Prerequisite skills and knowledge -

  • Competent programmer in some programming language
  • Able to troubleshoot and learn a programming language on one's own using online resources
  • Understanding of basic data structures (arrays, linked lists, binary search trees, hash tables, etc.)

CS 501 Programming for Data Science

Prerequisite skills and knowledge - Prerequisite skills and knowledge -

  • Competent programmer in some programming language
  • Able to troubleshoot and learn a programming language on one's own using online resources
  • Understanding of basic data structures (arrays, linked lists, binary search trees, hash tables, etc.)


  • CS 501
    • CS 151, 201, 202 tasks/questions (except they can use any language)
    • Questions on: data structures