CS Curriculum Revisions 2019-2020
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 |
---|---|---|---|
23 credit hours |
27 credit hours |
24 credit hours |
33 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 - functional programming, object-oriented programming, choices in PL design and examples, concurrent programming, logic programming
- 499 Senior Design - resume, technical interview questions, basic software engineering, project involving web / cloud / DB / mobile app, job search / applying for jobs
- 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 - resource administration/sharing by the OS - memory / CPU / disk, algorithms / tradeoffs / code for all, ext2 file system, scheduling algorithms, concurrency primitives / solutions, unix system calls
- 473 Networking - protocols (TCP, IP, UDP) - how each works / tradeoffs / issues, higher level protocols (SMTP, etc.), network programming, security (encryption, protocols, programming), client/server programming in C
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, mariadb, 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, mariadb administration, administration, networking admin
- 479 Web Prog II - review html/css/javascript, php, sql/mariadb, Ajax, authentication, web sockets
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