CS Curriculum Revisions 2019-2020

From Computer Science
Revision as of 15:45, 17 May 2019 by Jkinne (talk | contribs) (Learning Outcomes)
Jump to: navigation, search

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
151 Intro to CS
201 Programming Structures (4)
203 Discrete Structures / Intro Theory (4)
251 Intro Systems (5)
470 PL
499 Senior Design
Culminating Exam

27 credit hours
Math 131, 132 Calc I, II
202 Data Struc & Alg (4)
458 Algorithms (5)
456 Systems (4)
471 Op Sys
473 Networking

24 credit hours
101 Fundamentals of Computing
CSS 210 Intro to Networking
CSS 211 Intro to Security
CSS 331 Files and DB
170 Web Prog I
457 DB
469 Unix/Linux Adm/Net
479 Web Prog II

credit hours

Math 241 or 341(3) Math 131, 132, 231 Calc I, II, III
Math 313 Elem Lin Alg
202 CS II
457 DB
475 AI
401 Prog for DS - math pre/coreqs
476 Machine Learning (?) - math pre/coreqs

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 - (mostly unchanged) unix/linux / files / putty / commands / permissions, bits/bytes/binary, programming in python3 / data types, searching (binary search and linear search) and sorting algorithms (do it on paper for a few, the code in class for at least one), something fun, flow charts
  • 201 Programming Structures (4) - (mostly unchanged) python3, object-oriented programming, review of files / etc., making modules, bits / bytes / 2's complement / floating point, data types, basic data structures (lists, dictionaries, tuples, trees, arrays with numpy, stack, queue), running time in general and for basic data structures, I/O
  • 203 Discrete Structures / Intro Theory (4) - (303, more of the basics, little bit of 420) 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) - little bit of C, basic architecture (CPU, buses, cache, registers, pipelining, ALU, FPU, GPU, CISC, RISC, interrupts / polling), memory organization, makefiles, little bit of 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 - something in Python for everyone, some DS for everyone, something else (in C + algorithms) for CS only, something else (web stuff) for IS only

CS Concentration

  • Math 131, 132 Calc I, II
  • 202 Data Structures and Algorithms (4) - (the way it should be now) 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) - (also a little of 420) graph algs, string algs, dynamic programming / greedy / divide and conquer / LP / randomized, 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 to make utility programs, making a shell, makefiles / version control, x64 assembly language, (ELF), assemblers, (lex/flex and yacc/bison)
  • 471 Op Sys - (456 prereq) 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
  • Elective from - 473, 475, 457, etc.
    • 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, whatever we want them to know before CSS courses
  • CSS 210 Intro to Networking -
  • CSS 211 Intro to Security -
  • CSS 331 Files and DB - repeat of some 251 material (files / directories / file types, shell), also in Windows, little bit of sql, little bit of MS Access, bits/bytes/stuff
  • 170 Web Prog I - html, css, javascript, review of files / etc., client/server, glimpse of node / php / sql, regular expressions
  • 457 DB - (skip internally how DB's work) 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

  • Geoff fills this in...
  • 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 -
  • 476 Machine Learning -

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
600 Concrete Math
609 Web Prog and Apps
617 DB, DM, and Big Data

558 Algorithms (5)
556 Systems (4)
658 Algorithms II (5)
671 OS II (5)
695 CS Research

BIO 581 Genome Science
BIO 587 Bioinformatics
BIO 680 Seminar: Genetics and Evolution
618 Computational Bio

501 Prog for DS and Anal I
601 Prog for DS and Anal II
575 AI, 557 DB
Math 503 Lin Alg & Modeling for DS
Math 540 Stats for DS

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