# Difference between revisions of "CS Curriculum Revisions 2019-2020"

(→Learning Outcomes) |
(→Learning Outcomes) |
||

Line 89: | Line 89: | ||

===All=== | ===All=== | ||

Stats - Math 241 or 341 | Stats - Math 241 or 341 | ||

− | * 151 Intro to CS - unix/linux / files / putty / commands / permissions, bits/bytes/binary, programming in python3 / data types, searching and sorting algorithms, something fun | + | * 151 Intro to CS - unix/linux / files / putty / commands / permissions, bits/bytes/binary, programming in python3 / data types, searching and sorting algorithms, something fun, flow charts |

* 201 Programming Structures (4) - python3, review of files / etc., making modules, object-oriented programming, bits / bytes / 2's complement / floating point, data types, basic data structures (lists, dictionaries, tuples, arrays with numpy, stack, queue), running time in general and for basic data structures, I/O | * 201 Programming Structures (4) - python3, review of files / etc., making modules, object-oriented programming, bits / bytes / 2's complement / floating point, data types, basic data structures (lists, dictionaries, tuples, arrays with numpy, stack, queue), running time in general and for basic data structures, I/O | ||

* 203 Discrete Structures / Intro Theory (4) - Boolean logic, set theory, gates, modular arithmetic, summation formulae, big O, polynomials / exponentials / logarithms, induction, contradiction, counting, basic number theory, graphs (terminology, basic properties), regular expressions / DFAs | * 203 Discrete Structures / Intro Theory (4) - Boolean logic, set theory, gates, modular arithmetic, summation formulae, big O, polynomials / exponentials / logarithms, induction, contradiction, counting, basic number theory, graphs (terminology, basic properties), regular expressions / DFAs | ||

− | * 251 Intro Systems (5) - basic architecture, memory organization, makefiles, assembly language, file/disk organization | + | * 251 Intro Systems (5) - basic architecture (CPU, buses, cache, registers, pipelining, ALU, FPU, GPU, CISC, RISC, interrupts / polling), memory organization , makefiles, assembly language, file/disk organization |

− | * 470 PL | + | * 470 PL - |

− | * 499 Senior Design | + | * 499 Senior Design - resume, technical interview questions, basic software engineering, project involving web / cloud / DB / mobile app |

* Culminating Exam | * Culminating Exam | ||

Line 101: | Line 101: | ||

* 202 Data Structures and Algorithms (4) - C/C++ programming, many of basic data structures / algorithms in C, big O, more data structures (heap, trie, balanced binary tree, B tree, skip list), graphs (adjacency lists/matrix, BFS, DFS, shortest path, MST), debugging in unix (gdb, sed, awk), STL | * 202 Data Structures and Algorithms (4) - C/C++ programming, many of basic data structures / algorithms in C, big O, more data structures (heap, trie, balanced binary tree, B tree, skip list), graphs (adjacency lists/matrix, BFS, DFS, shortest path, MST), debugging in unix (gdb, sed, awk), STL | ||

* 458 Algorithms (5) - graph algs, string algs, dynamic programming / greedy / divide and conquer / LP / randomized all, basic complexity theory, NP completeness, approximation algorithms, branch and bound / CSP, undecidable languages, Turing-complete / Church-Turing | * 458 Algorithms (5) - graph algs, string algs, dynamic programming / greedy / divide and conquer / LP / randomized all, basic complexity theory, NP completeness, approximation algorithms, branch and bound / CSP, undecidable languages, Turing-complete / Church-Turing | ||

− | * 456 Systems (4) | + | * 456 Systems (4) - C programming using unix system calls, makefiles / version control, x64 assembly language, ELF, assemblers, lex/flex and yacc/bison |

− | * 471 Op Sys | + | * 471 Op Sys - |

− | * 473 Networking | + | * 473 Networking - |

===IS Concentration=== | ===IS Concentration=== | ||

Line 111: | Line 111: | ||

* CSS 331 Files and DB | * CSS 331 Files and DB | ||

* 170 Web Prog I - html, css, javascript, review of files / etc., client/server, glimpse of node / php / sql, regular expressions | * 170 Web Prog I - html, css, javascript, review of files / etc., client/server, glimpse of node / php / sql, regular expressions | ||

− | * 457 DB | + | * 457 DB - sql, sqlite, Maya, sql in some PL (python, C, etc.), basic DB theory (concurrency, transactions, consistency, ACID, query optimization, security), ER diagrams, nosql (mongo, xml, basic understanding of some others) |

− | * 469 Unix/Linux Adm/Net | + | * 469 Unix/Linux Adm/Net - files / directories / permissions / ACLs, bash scripting including core utilities (sed, basename, etc.), processes and threads (security, memory, limits), disk I/O / layout / RAID, swap and virtual memory, mayadb administration, administration, networking admin |

* 479 Web Prog II | * 479 Web Prog II | ||

Line 120: | Line 120: | ||

* 202 CS II | * 202 CS II | ||

* 401 Prog for DS (4) | * 401 Prog for DS (4) | ||

− | * 457 DB | + | * 457 DB - see under IS |

* 475 AI (5) | * 475 AI (5) | ||

## Revision as of 12:39, 17 May 2019

Below are proposed revisions to the CS BS and MS degrees. A few guiding principals...

- BS - widen the split between the computing science and information science concentrations - making the IS concentration more doable/attractive to more students, firming up the foundations in the CS concentration, adding a data science concentration.
- MS - new data science concentration, streamline academic concentration
- BS and MS - shift some key courses to be 4-5 hour courses, ensuring a stronger foundation for more students.

The # of credits for each course is in (). Existing requirements that are being eliminated are in ~~strikethrough~~.

The learning outcomes for the courses are given in CS learning outcomes.

# Undergraduate Degree - CS BS

Note that the current major includes 10 courses required of all majors, 5 additional courses required for information science, 3 CS courses required of computing science, and 2 math courses required for computing science.

current minor, current certificate

## CS Majors/Minor Overview

6 semester plan for the undergrad major

Term | All/Minor | CS | IS | DS |
---|---|---|---|---|

Fall 1 | 151 | 101 | 151, Math 131 | |

Spring 1 | 201, Math 131 | 151, CSS 210 | 201, Math 132 | |

Fall 2 | stats, 251 | 202, Math 132, 203 | 170, CSS 211 | 202, Math 231 |

Spring 2 | 456 | 201, 203, CSS 331 | Math 313, 401 | |

Fall 3 | 499 | 458, 471 | 457, 479 | 457, 475 |

Spring 3 | 470, 499 | 473 | 469 |

Names of courses, and ones to be > 3 credit hours

All | CS | IS | DS |
---|---|---|---|

26 credit hours |
27 credit hours |
24 credit hours |
30 credit hours |

Prereqs

- 101 or 151 -> CSS 210, CSS 211, CSS 311
- 151 -> 201, 203, 251, 170
- 201 -> 202, 470, 499, 457
- 202 -> 458, 456, 475
- 456 -> 471, 473
- 251 -> 456, 469
- 203 -> 458, 457
- 170 -> 479
- Math 313 -> 401, 475
- Math 231 ->

## Learning Outcomes

### All

Stats - Math 241 or 341

- 151 Intro to CS - unix/linux / files / putty / commands / permissions, bits/bytes/binary, programming in python3 / data types, searching and sorting algorithms, something fun, flow charts
- 201 Programming Structures (4) - python3, review of files / etc., making modules, object-oriented programming, bits / bytes / 2's complement / floating point, data types, basic data structures (lists, dictionaries, tuples, arrays with numpy, stack, queue), running time in general and for basic data structures, I/O
- 203 Discrete Structures / Intro Theory (4) - Boolean logic, set theory, gates, modular arithmetic, summation formulae, big O, polynomials / exponentials / logarithms, induction, contradiction, counting, basic number theory, graphs (terminology, basic properties), regular expressions / DFAs
- 251 Intro Systems (5) - basic architecture (CPU, buses, cache, registers, pipelining, ALU, FPU, GPU, CISC, RISC, interrupts / polling), memory organization , makefiles, assembly language, file/disk organization
- 470 PL -
- 499 Senior Design - resume, technical interview questions, basic software engineering, project involving web / cloud / DB / mobile app
- Culminating Exam

### CS Concentration

- Math 131, 132 Calc I, II
- 202 Data Structures and Algorithms (4) - C/C++ programming, many of basic data structures / algorithms in C, big O, more data structures (heap, trie, balanced binary tree, B tree, skip list), graphs (adjacency lists/matrix, BFS, DFS, shortest path, MST), debugging in unix (gdb, sed, awk), STL
- 458 Algorithms (5) - graph algs, string algs, dynamic programming / greedy / divide and conquer / LP / randomized all, basic complexity theory, NP completeness, approximation algorithms, branch and bound / CSP, undecidable languages, Turing-complete / Church-Turing
- 456 Systems (4) - C programming using unix system calls, makefiles / version control, x64 assembly language, ELF, assemblers, lex/flex and yacc/bison
- 471 Op Sys -
- 473 Networking -

### IS Concentration

- 101 Fundamentals of Computing - (similar to AP CSP), hardware, internet, bits/bytes/binary, servers, html, little bit of python, AI
- CSS 210 Intro to Networking
- CSS 211 Intro to Security
- CSS 331 Files and DB
- 170 Web Prog I - html, css, javascript, review of files / etc., client/server, glimpse of node / php / sql, regular expressions
- 457 DB - sql, sqlite, Maya, sql in some PL (python, C, etc.), basic DB theory (concurrency, transactions, consistency, ACID, query optimization, security), ER diagrams, nosql (mongo, xml, basic understanding of some others)
- 469 Unix/Linux Adm/Net - files / directories / permissions / ACLs, bash scripting including core utilities (sed, basename, etc.), processes and threads (security, memory, limits), disk I/O / layout / RAID, swap and virtual memory, mayadb administration, administration, networking admin
- 479 Web Prog II

### DS Concentration

- Math 131, 132, 231 Calc I, II, III
- Math 313 Elem Lin Alg
- 202 CS II
- 401 Prog for DS (4)
- 457 DB - see under IS
- 475 AI (5)

# Graduate Degree - CS MS

Current requirements are at - [1]

## MS Overview

4 semester plan

Term | Pro | Academic | Bioinf | DS |
---|---|---|---|---|

Fall 1 | 500, 501, 600 | 500, 558, --- | 500 or 501, 600, BIO 581 | 501, Math 503, 6xy |

Spring 1 | 609, ---, --- | 556, 658, --- | 618, BIO 587, --- | 601, Math 540, 575 |

Fall 2 | 617, ---, --- | 671, ---, --- | 617 or 557, BIO 680, --- | 617, 557, 6xy |

Spring 2 | 685, --- | 695, --- | 685 or 695 or BIO, --- | 695, 6xy |

Names of courses, and ones to be > 3 hours

Pro | Academic | Bioinf | DS |
---|---|---|---|

500 Programming Fundamentals |
558 Algorithms (5) |
BIO 581 Genome Science |
501 Prog for DS and Anal I |

Other changes

- Pass Comprehensive Exam
- Culminating experience - give incomplete when insufficient work done

## Data Science - New Concentration

### Admissions

To declare the data science concentration, students must demonstrate competency (through coursework/transcript or otherwise) in the following - basic programming and data structures, multivariate calculus, matrix algebra. To be prepared for the DS MS, an undergraduate at ISU should complete the following - CS 151 Intro to Computer Science, CS 260 Object Oriented Programming, MATH 131/132/231 Calculus I/II/III, MATH 313 Elementary Linear Algebra.

### Curriculum

- CS 501 Programming for Data Science & Analytics I (3)
- CS 557 Database Processing (3) (if 457 not taken as undergrad)
- CS 575 Artificial Intelligence (3) (if 475 not taken as undergrad)
- CS 601 Programming for Data Science & Analytics II (3)
- CS 617 Databases, Data Mining, and Big Data (3)
- MATH 503 Linear Algebra and Modeling for Data Science and Analytics (3)
- MATH 540 Statistics for Data Science & Analytics (3)

This is 7 required courses. Adding the 3 credit culminating experience then gives 8 courses, and 3 courses of 600-level electives (need all 3 to be 600 level so the total is 18 credits of 600 level).

## Accelerated MS Program

An accelerated MS program is a chance for an ISU undergrad to finish the BS and MS in 4+1 years. The university-wide policies are - policies. An example program is - accelerated Math MS

- Students must have 3.0 GPA and have completed 80% of their required credits by the start of their 4th year.
- Students must finish their BS with 3.0 GPA.
- Can take up to 9 credits of 500 level courses and 6 credits of 600 level courses in final year of BS. Up to 9 credits of 500 level can count for both BS and MS. Note that 600 level courses don't count towards being full time for financial aid.

# Teaching Schedule

When these changes are in effect (2020-2021), the CS teaching schedule could be ...

- Fall and Spring (52) - 101, 151, 151, 151, 170, 201 (4), 202 (4), 203 (4), 256, 256, 260, 351 (5), 499 (2), 500, 401/501, 685/695/699
- Fall (30) - 479, CSS 210, CSS 331, 458 (4), 457, 470, 671 (5), 600, 603/611, 617
- Spring (30) - 469, CSS 211, 456 (4), 475, 658 (5), 601, 602/610, 618/619, 609
- Total - 52*2+30+30 - 164 credit hours,

And taught by ...

- Abhyankar - fall CSS 210, 603/611, 470, 256 | spring 256, 256, CSS 211, 602/610
- Baker - fall 457, 479, 351(5) | spring 351(5), 456(4), 469
- Exoo - fall 617, 401/501, 671(5) | spring 475, 601, 401/501
- Kinne - fall 151, GH 101 | spring 151, BD4ISU
- Rafiey - fall 458(4), 600, 256 | spring 658(5), 618/619
- Sternfeld - fall 500, 499(2), 170, 203(4) | spring 203(4), 500, 609, 499(2)
- New CS Faculty Member - fall 202(4), 685, CSS 331 | spring 202(4), 685, 170
- Boulware - fall 260 | spring 260
- May - fall 101, 201(4) | spring 101, 201(4)
- GAs - fall 151, 151, 260 | spring 151, 151, 260
- not offered with current staffing - [420], [473], [452], [421], [471]

Note - this assumes that Math is able to offer MATH 403/503, 440/540