6
$\begingroup$

My university has decided that it should give a core (that is compulsory) statistics class to its computer science undergraduates. This opens the interesting question of what should be in such a class that everyone has to take.

As far as I know most CS degrees don't currently contain statistics classes so it's hard to compare to what already exists.

Does anyone have any experience of this and what would people recommend for a new statistics class for computer science students?

$\endgroup$
  • $\begingroup$ Welcome to Computer Science Educators! Just to be clear, you are designing the curriculum for this new class that is being mandated? Have you received a rationale or any other sort of guidance, or is this just coming from left field somewhere? $\endgroup$ – Ben I. Jun 21 '17 at 18:46
  • $\begingroup$ @BenI. It is being mandated and I have been asked to advise on the curriculum. I also just find the question interesting. The rationale is not spelled out very clearly but I think it goes like this. Students will do projects in their degree, many of which will involve testing some hypothesis (e.g. does my computer vision/ML system detect the sharks well, does my new robot control work better than the old one etc) or at the very least evaluation of some user feedback of their software. In general, many CS jobs are data heavy these days and stats is a core data analysis discipline. $\endgroup$ – donald Jun 22 '17 at 6:18
  • 1
    $\begingroup$ I can't be much help with course design but I did the 'standard' first year statistics class in the Mathematics department as part of my CS degree and have found it hugely useful over the years since. So I think it's a good idea to mandate, for CS and probably for all science degrees. I don't think it's necessary to tailor the class just for CS; a broad introduction to stats generally will be helpful. The areas of stats that will/won't be useful will depend highly on what field students end up in, and it's hard to foresee that in year 1 of a degree. $\endgroup$ – Rory Jun 22 '17 at 9:46
  • $\begingroup$ What level of statistics? Often times the basic "intro to stats" class (STA2023 when I took it) is required for a STEM related AA degree or if "skipping" the AA then as a pre-req before entering the college the CompSci department is part of (I know ufl.edu works this way - CISE is part of the College of Engineering and any type of engineering has the basic stats as a pre-req for admittance, along with 2 terms each of chemistry and physics, and math through calc2 w/ diff eq.). $\endgroup$ – ivanivan Jun 24 '17 at 0:12
  • $\begingroup$ Can calculus be a prerequisite, or don't you require that? $\endgroup$ – Ellen Spertus Jun 24 '17 at 1:51
5
$\begingroup$

My first thought to provide a bit of something for you to go on was CS2013: The ACM/IEEE Joint Curriculum Guidelines for Undergraduate Degree Programs in Computer Science. This is available at https://www.acm.org/education/CS2013-final-report.pdf. I've copied out two relevant passages from that here:

"Computer science curricula should be designed to provide students with the flexibility to work across many disciplines. Computing is a broad field that connects to and draws from many disciplines, including mathematics, electrical engineering, psychology, statistics, fine arts, linguistics, and physical and life sciences. Computer Science students should develop the flexibility to work across disciplines." (p.20)

"Similarly, while we do note a growing trend in the use of probability and statistics in computing (reflected by the increased number of core hours on these topics in the Body of Knowledge) and believe that this trend is likely to continue in the future, we still believe it is not necessary for all CS programs to require a full course in probability theory for all majors. (p.50)".

It is worth searching that document for 'statistics'. It is mentioned in many other areas, but mostly as something learned in other areas such as Networks, HCI, Cryptography, etc.

The December 2013 issue of ACM Inroads had a good article (http://dl.acm.org/citation.cfm?id=2537777) on the role of mathematics in CS. This included a section on "The Current State of Mathematics in Computer Science Curricula". The article states that "The most-connected mathematical topic [to CS] by far is probability and statistics" and has some references to such. They also present the mathematics requirements of 25 'high quality' CS programs. Stats and Prob was required for 15, Calculus for 21 and Discrete Mathematics for 22.

http://dl.acm.org/citation.cfm?id=1240202 discusses statistics in liberal arts CS curricula.

Searching the CITIDEL syllabus collection (citidel.villanova.edu/ then look for syllabus collection) for 'statistics' might be worth a try, although the website has been varying between unresponsive to slow to responsive lately. Also, some of the material in there is a bit dated, but then again, statistics dates fairly well!

Given that in 2013 60% of sampled 'high quality' CS programmes had statistics, maybe it is more prevalent than you think. Perhaps the best way to obtain the most up to date information is to check the websites of several good CS programmes and hope that if they include statistics, the syllabi are available online.

$\endgroup$
  • $\begingroup$ Since video is probably the single biggest use of the Internet, let's hear more about Fine Arts in the curriculum. $\endgroup$ – user737 Sep 1 '17 at 13:26
5
$\begingroup$

I recently completed the MITx MOOC 6.00.2x, which is modeled after an introductory programming class in Python at MIT. The course addressed the following topics from statistics that integrate nicely with computer science (especially data science and machine learning):

  • Confidence Intervals
  • Variation
  • Distributions
  • Probability
  • Sample Sizes
  • Standard Error
  • Central Limit Theorem
  • Goodness of Fit
  • Model Predictions and Overfitting
  • Cross-Validation

Depending on the level of students and their familiarity with some basic concepts from statistics, I would also recommend looking at HackerRank's 10 Day of Statistics challenge. While the pedagogy isn't the greatest, it does scaffold nicely from mean, median, and mode through standard deviation and distributions to end up at linear regression and correlation coefficients. There is also some discussion of probability along the way.

Taken together, these two examples provide some big picture concepts to address that are fundamental to stats and that have relevance for computer science and programming.

$\endgroup$
  • $\begingroup$ Yes these concepts should be taught, but I don't think that an entire course is necessary. Just tack it on after covering Aggregates in SQL, along with some Analysis basics. $\endgroup$ – user737 Sep 1 '17 at 13:28
4
$\begingroup$

I think that statistics courses are most useful for computer scientists who are anticipating a career in research. While statistics can be useful for professional developers that knowledge is not as critical as it is for researchers. The CS2013: The ACM/IEEE Joint Curriculum Guidelines for Undergraduate Degree Programs in Computer Science breaks knowledge units into three broad categories.

  1. Things every CS department should offer
  2. Things that every CS Department should offer 85-90% of
  3. Electives

Statistics falls into the third category. I would not make statistics a required course but if you are going to do so I would suggest you look at the sort of topics you most want researchers to know. Ideally you are providing your students with the knowledge to properly evaluate research so that they can make informed decisions based on it. You'd probably want a deeper level for people actually doing research.

FWIW I was on the CS2013 task force but opinions here are my own and I am not speaking for the task force.

$\endgroup$
  • $\begingroup$ Thank you for this. Do you know if there is a plan for an update on CS2013? $\endgroup$ – donald Jun 28 '17 at 8:30
  • 1
    $\begingroup$ These documents from ACM and IEEE tend to be updated about every 10 years. $\endgroup$ – Alfred Thompson Jul 15 '17 at 18:23
4
$\begingroup$

I got my CS degree in the 1990's and at the time (and perhaps still today) there was a lot of crossover between math and CS. By just taking the minimum math requirements to meet my CS degree I was one math class away from a math minor.

Subsequently in 25+ years as a software engineer I have never used most of that math, the only math I've actually used is geometry, trig, and probability/statistics. Especially these days with "big data" being a popular topic in computer science, and map/reduce being a primary technique, the concepts of frequency, concentration, correlation, regression, distribution, expected values, etc. are very applicable to problems that you see every day.

Also the type of thinking and reasoning you need for stats and probability is much more applicable to real-world problems since it has more to do with estimation, approximation and trends. One of the faults in my opinion with math is that you are often expected to arrive at a single clear and concise answer, when in fact few real world problems are solved that way.

Conversely I've never once used all of that calculus (which is a shame because I liked it) and related math. It was fun to take and probably a good (extended) mental exercise and weed-out for students but I think the stats and probability should have been emphasized a lot more than it was.

$\endgroup$
  • $\begingroup$ For business programming, you could probably get by with a little algebra. My students often look surprised when I show three ways to do a percentage discount calculation. Gosh. $\endgroup$ – user737 Sep 1 '17 at 13:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.