Difference between revisions of "CS 151 - Key Skills"

From Computer Science
Jump to: navigation, search
(Programming)
(Assessment of Prior Learning)
 
(18 intermediate revisions by the same user not shown)
Line 5: Line 5:
 
=Key Skills/Knowledge=
 
=Key Skills/Knowledge=
 
==Linux==
 
==Linux==
All commands and shortcuts listed in and linked from [[Linux and CS Systems - Getting Started]].  You should be able to (a) match each command and shortcut with its basic description, (b) use all of the commands and shortcuts to accomplish a small task (e.g., create a new directory HW in your home directory and copy all files from ~cs151/HW/ into your new HW directory), (c) describe what a given command would do (e.g., ls -l /u1/class/).
+
All commands and shortcuts listed in and linked from [[Linux and CS Systems - Getting Started]].  You should be able to (a) match each command and shortcut with its basic description, (b) use all of the commands and shortcuts to accomplish basic tasks (e.g., create a new directory HW in your home directory and copy all files from ~cs151/HW/ into your new HW directory), (c) describe what a given command would do (e.g., ls -l /u1/class/).
 +
 
 
==Programming==
 
==Programming==
* Python cheat sheets listed at the end of [[Python Programming - Getting Started]].  You should be able to give the short description if given any of the keywords, function names, or operators (and vice versa).   
+
* Python cheat sheets listed at the end of [[Python Programming - Getting Started]].  You should be able to give the short description given any of the keywords, function names, or operators (and vice versa).   
* Basic programs - able to complete the programs listed in [[Programming Assignments - Beginning 1]] on demand without much trouble and without consulting the internet.  You should be able to produce a correct program for any of these in a short amount of time (right away for many of them, for most of the others you might need 10 minutes or so).  You should be able to do this on paper or on the computer.
+
* Basic programs - able to complete the programs listed in [[Programming Assignments - Beginning 1]] on demand without much trouble and without consulting the internet.  You should be able to produce a correct program for any of these in a short amount of time (right away for many of them, for most of the others you might need a little bit of time).  You should be able to do this on paper or on the computer. You should be able to do the same for other programming tasks of similar difficulty.
* Complete the missing code - if given mostly complete code to accomplish a task that is roughly as complex as the programs, you are able to complete the code (e.g., filling in the right condition on a loop, the right statement to update a variable, anything that is just one line or so).
+
* Complete the missing code - if given mostly complete code to accomplish a task that is roughly as complex as those programs, you are able to complete the code (e.g., filling in the right condition on a loop, the right statement to update a variable, anything that is just one line or so).
 
* Play computer - given code you are able to trace out what happens to the variables and what is printed on the screen as the program is run.
 
* Play computer - given code you are able to trace out what happens to the variables and what is printed on the screen as the program is run.
 
* Syntax errors - given code that contains a syntax error you are able to identify and fix the syntax error (e.g., mismatched (), using [] where should have been (), improper indenting, missing :, mis-spelled or mis-capitalized python keyword or function, etc.)
 
* Syntax errors - given code that contains a syntax error you are able to identify and fix the syntax error (e.g., mismatched (), using [] where should have been (), improper indenting, missing :, mis-spelled or mis-capitalized python keyword or function, etc.)
 +
* Logical errors - given code with some logical error(s) and a description of what the program is supposed to do, you are able to debug to fix the problems.
  
 
==Math==
 
==Math==
You should have all of the items in [[Math for CS - Getting Started]] memorized.
+
You should have all of the items in [[Math for CS - Getting Started]] memorized and be able to apply them as needed.
 +
 
 
==CS Terms==
 
==CS Terms==
 
You should have all of the items in [[CS Terms - Getting Started]] memorized.
 
You should have all of the items in [[CS Terms - Getting Started]] memorized.
 
==System Setup==
 
==System Setup==
 
You have access to a computer that is setup as directed in [[Linux and CS Systems - Getting Started]].  In particular you should have Python installed, an sftp program installed (FileZilla or WinSCP recommended), and a terminal program installed (Putty if using Windows, Terminal if using Mac).
 
You have access to a computer that is setup as directed in [[Linux and CS Systems - Getting Started]].  In particular you should have Python installed, an sftp program installed (FileZilla or WinSCP recommended), and a terminal program installed (Putty if using Windows, Terminal if using Mac).
 +
 +
==Algorithms Basics==
 +
You should understand how the following algorithms work, be able to trace through running the algorithm on paper, and understand the time complexity of the algorithm (worst and best-case): linear search, binary search, selection sort. You should understand the basics of asymptotic running time notation and concepts. An understanding at the level covered at [TutorialsPoint](https://www.tutorialspoint.com/data_structures_algorithms/index.htm) is all that is required (and note that you only need to know these particular topics, not everything from the TutorialsPoint link).
  
 
=Example Quiz=
 
=Example Quiz=
''Coming soon...''
+
Note that the following example quiz contains questions from most, but not all, of the topics listed above.
 +
 
 +
[[CS 151 - Key Skills - Quiz]]
 +
 
 +
=Assessment of Prior Learning=
 +
For those who have the skills and knowledge detailed on this page but have not taken the course CS 151 (and do not have transfer credit for an equivalent course), it may be possible to be evaluated, pay a reduced tuition amount (25% of the normal cost of tuition for the course), and get credit for the course. This would be done through a challenge exam.
 +
 
 +
The challenge exam has two parts: (1) a closed-notes timed exam taken through the university's course management system, (2) a follow up interview with a CS evaluator. The timed exam is graded using the same standards that are used in CS 151.
 +
For the follow up interview, the evaluator asks for explanations of some of the responses from the timed exam and asks some follow up questions from the timed exam. The follow up interview is scored using the same standards that are used for interview exams in beginning CS courses. The total score for the challenge exam is a simple average of the two parts of the exam. A student is normally judged to have passed the challenge exam if their total score is at or above 80%.
 +
 
 +
If you are considering going through this process, please look through all of the material linked from this page. Pay particular attention to the CS 151 exam study guides (at the bottom of [[CS 151 - Key Skills - Quiz]]), and make sure that you think you are likely to score higher than 80% on these types of questions.
 +
 
 +
If you would like to go through with the evaluation, you start the process by completing and following the instructions on this form -
 +
https://catalog.indstate.edu/mime/media/53/1846/Assessment+of+Prior+Learning.pdf
 +
 
 +
Some more information on the process is at https://catalog.indstate.edu/content.php?catoid=53&navoid=2639#de

Latest revision as of 15:36, 15 July 2022

The following are key skills/knowledge that you need to retain after completing CS 151 Introduction to Computer Science. For any course that has CS 151 as a prerequisite, we will assume that on day one of the new course you could "ace" a quiz on all of the following content. This is the most important content to be ready for the next courses. See also CS Skills Assessments for other courses as well.

Note - this list is a first draft and is being reviewed by the faculty.

Key Skills/Knowledge

Linux

All commands and shortcuts listed in and linked from Linux and CS Systems - Getting Started. You should be able to (a) match each command and shortcut with its basic description, (b) use all of the commands and shortcuts to accomplish basic tasks (e.g., create a new directory HW in your home directory and copy all files from ~cs151/HW/ into your new HW directory), (c) describe what a given command would do (e.g., ls -l /u1/class/).

Programming

  • Python cheat sheets listed at the end of Python Programming - Getting Started. You should be able to give the short description given any of the keywords, function names, or operators (and vice versa).
  • Basic programs - able to complete the programs listed in Programming Assignments - Beginning 1 on demand without much trouble and without consulting the internet. You should be able to produce a correct program for any of these in a short amount of time (right away for many of them, for most of the others you might need a little bit of time). You should be able to do this on paper or on the computer. You should be able to do the same for other programming tasks of similar difficulty.
  • Complete the missing code - if given mostly complete code to accomplish a task that is roughly as complex as those programs, you are able to complete the code (e.g., filling in the right condition on a loop, the right statement to update a variable, anything that is just one line or so).
  • Play computer - given code you are able to trace out what happens to the variables and what is printed on the screen as the program is run.
  • Syntax errors - given code that contains a syntax error you are able to identify and fix the syntax error (e.g., mismatched (), using [] where should have been (), improper indenting, missing :, mis-spelled or mis-capitalized python keyword or function, etc.)
  • Logical errors - given code with some logical error(s) and a description of what the program is supposed to do, you are able to debug to fix the problems.

Math

You should have all of the items in Math for CS - Getting Started memorized and be able to apply them as needed.

CS Terms

You should have all of the items in CS Terms - Getting Started memorized.

System Setup

You have access to a computer that is setup as directed in Linux and CS Systems - Getting Started. In particular you should have Python installed, an sftp program installed (FileZilla or WinSCP recommended), and a terminal program installed (Putty if using Windows, Terminal if using Mac).

Algorithms Basics

You should understand how the following algorithms work, be able to trace through running the algorithm on paper, and understand the time complexity of the algorithm (worst and best-case): linear search, binary search, selection sort. You should understand the basics of asymptotic running time notation and concepts. An understanding at the level covered at [TutorialsPoint](https://www.tutorialspoint.com/data_structures_algorithms/index.htm) is all that is required (and note that you only need to know these particular topics, not everything from the TutorialsPoint link).

Example Quiz

Note that the following example quiz contains questions from most, but not all, of the topics listed above.

CS 151 - Key Skills - Quiz

Assessment of Prior Learning

For those who have the skills and knowledge detailed on this page but have not taken the course CS 151 (and do not have transfer credit for an equivalent course), it may be possible to be evaluated, pay a reduced tuition amount (25% of the normal cost of tuition for the course), and get credit for the course. This would be done through a challenge exam.

The challenge exam has two parts: (1) a closed-notes timed exam taken through the university's course management system, (2) a follow up interview with a CS evaluator. The timed exam is graded using the same standards that are used in CS 151. For the follow up interview, the evaluator asks for explanations of some of the responses from the timed exam and asks some follow up questions from the timed exam. The follow up interview is scored using the same standards that are used for interview exams in beginning CS courses. The total score for the challenge exam is a simple average of the two parts of the exam. A student is normally judged to have passed the challenge exam if their total score is at or above 80%.

If you are considering going through this process, please look through all of the material linked from this page. Pay particular attention to the CS 151 exam study guides (at the bottom of CS 151 - Key Skills - Quiz), and make sure that you think you are likely to score higher than 80% on these types of questions.

If you would like to go through with the evaluation, you start the process by completing and following the instructions on this form - https://catalog.indstate.edu/mime/media/53/1846/Assessment+of+Prior+Learning.pdf

Some more information on the process is at https://catalog.indstate.edu/content.php?catoid=53&navoid=2639#de