Difference between revisions of "Curriculum"

From Computer Science
Jump to: navigation, search
(CS 151, prereq)
(Non-Degree)
 
(18 intermediate revisions by the same user not shown)
Line 19: Line 19:
  
 
==CSS courses==
 
==CSS courses==
'''Status: needs department vote and vote from Crim'''
+
'''Status: needs department vote, Crim has indicated support'''
  
 
Proposal to create new courses CS 210, CS 211, CS 331 that are cross-listed with the CSS versions. This would allow us to schedule our own sections of these classes without needing to wait on the School of Criminology to schedule them for us.  Note that the rules for cross-listed courses (at https://www.indstate.edu/academic-affairs/curriculum/caps2013/policies-rules-guidelines) - both departments would need to approve the proposal and then any changes to the courses later on.
 
Proposal to create new courses CS 210, CS 211, CS 331 that are cross-listed with the CSS versions. This would allow us to schedule our own sections of these classes without needing to wait on the School of Criminology to schedule them for us.  Note that the rules for cross-listed courses (at https://www.indstate.edu/academic-affairs/curriculum/caps2013/policies-rules-guidelines) - both departments would need to approve the proposal and then any changes to the courses later on.
Line 29: Line 29:
  
 
==CS 151, prereq==
 
==CS 151, prereq==
'''Status: needs some data, needs discussion'''
+
'''Status: needs discussion'''
 +
 
 +
Placement test was not technically required for fall but was strongly recommended, and Jeff hounded the students who registered for CS 151 to have them take the placement test to make sure they would be ready.  The placement test is in Canvas and was a series of auto-graded quizzes that has them: read about python and answer a few super easy questions, read about linux terminal and answer super easy questions, install python / run a program / put the result into the quiz, install putty/terminal / use a few commands on the system to get info to put into quiz, checkout and handin an assignment on the server.
  
Look at data from those who did the CS placement test for the fall and those who didn't, and how they performed in CS 151.  Then decide on whether to formalize this as a prereq for CS 151.
+
Some data of what happened to the students who were enrolled in CS 151 to begin the semester and what things looked like by Nov 11. 
 +
* 70 enrolled at the start of term or during first week
 +
* 38 passed placement
 +
** 4 switched to 101 (current 101 grades - 97, 94, 68, 69), rest have average grade that is +10% points (full letter grade) compared to their section average (and 23 have B- or higher, 5 C, 3 D, 3 F)
 +
* 5 had between 90 and 100% on placement but did not fully complete
 +
** 2 switched to 101 (current 101 grades - 78%, 11%), 1 dropped 151 after 2nd week, 1 is in 151 and grade is B, +12% compared to their section average
 +
* 16 started placement, not close to finishing
 +
** 5 dropped 151 before 2nd week (CS 101 grades - 70, 80, 87), 1 dropped 151 after 2nd week, other 10 still in 151 and have average grade that is 11% points lower than their section average (2 Bs, 3 Ds, 5 Fs)
 +
* 11 never started placement
 +
** 7 dropped 151 before 2nd week (CS 101 grades - 85, 20, 88, 78), 1 dropped after 2nd week, other 3 have grade that is -63% compared to their section average (none are passing)
 +
* A handful of students withdrew for the semester or changed majors (so were enrolled in CS 151 but not enrolled in CS 151 or CS 101 currently).
 +
* Conclusions...
 +
** Passed or close to passing the placement test who stayed in CS 151: 24/36 have B- or higher
 +
** Did not take or not close to finishing placement test who stayed in CS 151: 2/15 have C or higher
  
 
==CS BS, Core Sequence==
 
==CS BS, Core Sequence==
Line 40: Line 55:
 
* CS 151 Introduction to Computer Science - 2/3 python, 1/3 other (linux, base systems, number formats, searching (linear/binary), sorting)
 
* CS 151 Introduction to Computer Science - 2/3 python, 1/3 other (linux, base systems, number formats, searching (linear/binary), sorting)
 
* CS 201 Programming Structures - 2/3 python (with focus on object-oriented), 1/3 other (searching/sorting, theoretical understanding of python data structures)
 
* CS 201 Programming Structures - 2/3 python (with focus on object-oriented), 1/3 other (searching/sorting, theoretical understanding of python data structures)
* CS 202 Data Structures and Algorithms - little to no programming, 1/2 good understanding of how various DS & algs work, 1/2 "theory" (proofs of correctness / run-time, big O analysis, correct use of asymptotic notation)
+
* CS 202 Data Structures and Algorithms - use python (but python is not the primary focus), 1/2 good understanding of how various DS & algs work, 1/2 "theory" (proofs of correctness / run-time, big O analysis, correct use of asymptotic notation)
* CS 303 Discrete Structures and Computing Theory - 1/2 structures (integers, integers mod p, graphs, automata/ regular expressions, matrices, grammars), 1/2 "theory" (proofs of all of these, some overlap with CS 202)
+
* CS 303 Discrete Structures and Computing Theory - 1/2 structures (integers, integers mod p, graphs, automata/ regular expressions, matrices, grammars), 1/2 "theory" (proofs of all of these, some overlap with CS 202, probability/counting), some programming (to build confidence)
* CS 351 Computer Organization  - 1/2 assembly/C, 1/2 ?
+
* CS 351 Computer Organization  - 3/4 assembly/C, 1/4 other (architecture, memory, ...)
 +
 
 +
See also learning outcomes for those courses.
 +
 
 +
Some additional thoughts...
 +
* cumulative placement test, assignment 0 at the beginning of any course that has another as a prereq
 +
* every course that is a prereq for something else, pick 3 things they need to be able to do at the start of the next class, make up that part of assignment 0
 +
* example: CS 458 has the following as prereqs - 101, 151, 201, 202, 303, so assignment 0 is the 3 things from each of those
 +
* CS 201 should be a course where we are honest at the end whether they can continue or not, use something like an end of semester assessment
 +
* prereqs - consider updating some of them to be B or higher, in particular for CS 201 going into other courses
 +
* CS 202 - use python rather than C, focus is on the algorithms / data structures, not on the programming
 +
* consider final exam or assessment graded collectively, so it's not the instructors "fault" when a student can't move on
  
 
=Graduate=
 
=Graduate=
 +
 +
==MS Data Science==
 +
'''Status: needs discussion'''
 +
 +
Data science concentration: CS 501, 557, 575, MATH 503, 540.  Half of credits have to be 600 level, currently 33 credits. No room for any 500-level electives, but want them to take CS 500 as well.
 +
 +
Solutions: (a) they don't have to take CS 500, (b) they have to take CS 500 and will end up taking 36 credits, (c) drop one of the required 500 level courses, (d) change degree to be 30 credits, so 15 credits of 600 is enough, they ed up taking 33 credits.
 +
 +
Discussion of requiring CS 500 - yes, they should all take it.
 +
 +
Make a proposal for what it would look like.
 +
 +
Other option - change MATH 503, 540, make them 600 level or not required.  Check with Math. Math says 503 is being used in their BS, so definitely don't want to make 600 level, didn't express opinion about 540.
 +
 +
Or, drop CS 575, make CS 601 a two semester sequence.
  
 
==Certificate==
 
==Certificate==
Line 52: Line 93:
  
 
A starting point for discussion...
 
A starting point for discussion...
* Applied Computer Science: CS 501, some combination of 500-level/600-level courses from the information science concentration of the BS, professional concentration of the MS
+
* Applied Computer Science: CS 500 or CS 501, choose combination of other courses that are applied and more doable for people without a CS BS, include CS 600 or not
  
 
=Non-Degree=
 
=Non-Degree=
'''Status: needs discussion'''
+
'''Status: university is supportive, working through details, needs discussion/feedback'''
  
Training for people to get ready for our MS, and/or brush up on some skills, and/or just to get a mini-credential in something useful.
+
Notes/plan so far - [[CS Training]]

Latest revision as of 01:55, 19 November 2021

This page is used to keep track of currently proposed curriculum changes for computer science. The page was last updated in the fall of 2021.

Undergraduate

Math 320

Status: already approved

Math asked if we would count Math 320 as a prereq in place of CS 303 for CS courses they are including in their proposed Data Science BS. We approved updating CS 457&L, CS 475&L, CS 557, CS 575 to allow Math 320 as a prereq in place of CS 303. Those are already approved and will be in effect for fall 2022. The proposed Data Science BS in curriculog: https://indstate.curriculog.com/proposal:3970/form

High Impact Practice

Status: approved by department, being considered by foundational studies

We have proposed to add CS 499 to the new High Impact Practice (HIP) category. The proposal in curriculog: https://indstate.curriculog.com/proposal:5688/form

Math 241

Status: needs department vote

Proposed change is to require Math 241 for the CS BS. Currently the CS BS requires either Math 241 or Math 341. Since Math 241 is a prereq for Math 341, it is simpler to just require Math 241.

CSS courses

Status: needs department vote, Crim has indicated support

Proposal to create new courses CS 210, CS 211, CS 331 that are cross-listed with the CSS versions. This would allow us to schedule our own sections of these classes without needing to wait on the School of Criminology to schedule them for us. Note that the rules for cross-listed courses (at https://www.indstate.edu/academic-affairs/curriculum/caps2013/policies-rules-guidelines) - both departments would need to approve the proposal and then any changes to the courses later on.

CS 470, UDIE

Status: being worked on in the department

R.B. Abhyankar is working on potentially submittting CS 470 as an Upper Division Integrative Elective. Information on UDIE's is here - https://www.indstate.edu/foundational-studies/upper-division-integrative-electives and information about proposing Foundational Studies courses is here - https://www.indstate.edu/academics/foundational-studies/advisors/propose-a-course

CS 151, prereq

Status: needs discussion

Placement test was not technically required for fall but was strongly recommended, and Jeff hounded the students who registered for CS 151 to have them take the placement test to make sure they would be ready. The placement test is in Canvas and was a series of auto-graded quizzes that has them: read about python and answer a few super easy questions, read about linux terminal and answer super easy questions, install python / run a program / put the result into the quiz, install putty/terminal / use a few commands on the system to get info to put into quiz, checkout and handin an assignment on the server.

Some data of what happened to the students who were enrolled in CS 151 to begin the semester and what things looked like by Nov 11.

  • 70 enrolled at the start of term or during first week
  • 38 passed placement
    • 4 switched to 101 (current 101 grades - 97, 94, 68, 69), rest have average grade that is +10% points (full letter grade) compared to their section average (and 23 have B- or higher, 5 C, 3 D, 3 F)
  • 5 had between 90 and 100% on placement but did not fully complete
    • 2 switched to 101 (current 101 grades - 78%, 11%), 1 dropped 151 after 2nd week, 1 is in 151 and grade is B, +12% compared to their section average
  • 16 started placement, not close to finishing
    • 5 dropped 151 before 2nd week (CS 101 grades - 70, 80, 87), 1 dropped 151 after 2nd week, other 10 still in 151 and have average grade that is 11% points lower than their section average (2 Bs, 3 Ds, 5 Fs)
  • 11 never started placement
    • 7 dropped 151 before 2nd week (CS 101 grades - 85, 20, 88, 78), 1 dropped after 2nd week, other 3 have grade that is -63% compared to their section average (none are passing)
  • A handful of students withdrew for the semester or changed majors (so were enrolled in CS 151 but not enrolled in CS 151 or CS 101 currently).
  • Conclusions...
    • Passed or close to passing the placement test who stayed in CS 151: 24/36 have B- or higher
    • Did not take or not close to finishing placement test who stayed in CS 151: 2/15 have C or higher

CS BS, Core Sequence

Status: needs discussion

Discuss and reevaluate what goes in each of the courses in the core CS sequence (CS 101, 151, 201, 202, 303, 351). Starting point for discussion...

  • CS 101 Fundamentals of Computing - 1/3 python, 2/3 other (linux, base systems, number formats, computing vocab)
  • CS 151 Introduction to Computer Science - 2/3 python, 1/3 other (linux, base systems, number formats, searching (linear/binary), sorting)
  • CS 201 Programming Structures - 2/3 python (with focus on object-oriented), 1/3 other (searching/sorting, theoretical understanding of python data structures)
  • CS 202 Data Structures and Algorithms - use python (but python is not the primary focus), 1/2 good understanding of how various DS & algs work, 1/2 "theory" (proofs of correctness / run-time, big O analysis, correct use of asymptotic notation)
  • CS 303 Discrete Structures and Computing Theory - 1/2 structures (integers, integers mod p, graphs, automata/ regular expressions, matrices, grammars), 1/2 "theory" (proofs of all of these, some overlap with CS 202, probability/counting), some programming (to build confidence)
  • CS 351 Computer Organization - 3/4 assembly/C, 1/4 other (architecture, memory, ...)

See also learning outcomes for those courses.

Some additional thoughts...

  • cumulative placement test, assignment 0 at the beginning of any course that has another as a prereq
  • every course that is a prereq for something else, pick 3 things they need to be able to do at the start of the next class, make up that part of assignment 0
  • example: CS 458 has the following as prereqs - 101, 151, 201, 202, 303, so assignment 0 is the 3 things from each of those
  • CS 201 should be a course where we are honest at the end whether they can continue or not, use something like an end of semester assessment
  • prereqs - consider updating some of them to be B or higher, in particular for CS 201 going into other courses
  • CS 202 - use python rather than C, focus is on the algorithms / data structures, not on the programming
  • consider final exam or assessment graded collectively, so it's not the instructors "fault" when a student can't move on

Graduate

MS Data Science

Status: needs discussion

Data science concentration: CS 501, 557, 575, MATH 503, 540. Half of credits have to be 600 level, currently 33 credits. No room for any 500-level electives, but want them to take CS 500 as well.

Solutions: (a) they don't have to take CS 500, (b) they have to take CS 500 and will end up taking 36 credits, (c) drop one of the required 500 level courses, (d) change degree to be 30 credits, so 15 credits of 600 is enough, they ed up taking 33 credits.

Discussion of requiring CS 500 - yes, they should all take it.

Make a proposal for what it would look like.

Other option - change MATH 503, 540, make them 600 level or not required. Check with Math. Math says 503 is being used in their BS, so definitely don't want to make 600 level, didn't express opinion about 540.

Or, drop CS 575, make CS 601 a two semester sequence.

Certificate

Status: needs discussion

The thought is to have a graduate CS certificate for those who want to do some CS coursework but don't need a whole degree. The university suggests 12-18 credits, the cert must be distinguished somehow from the MS itself, can use 12 credits shared with the MS. The rules are at https://www.indstate.edu/academic-affairs/curriculum/caps2013/policies-rules-guidelines

A starting point for discussion...

  • Applied Computer Science: CS 500 or CS 501, choose combination of other courses that are applied and more doable for people without a CS BS, include CS 600 or not

Non-Degree

Status: university is supportive, working through details, needs discussion/feedback

Notes/plan so far - CS Training