Can someone evaluate Reed's new "math/CS" program for me?

http://www.reed.edu/math/requirements.html

Requirements for the Mathematics Major with Concentration in Computer Science

Mathematics 111 or the equivalent, 112, 211, and 212
Mathematics 121 or the equivalent, and 221
Mathematics 331, 382, 387, and 389
Mathematics 470
Three additional units in mathematics courses numbered higher than 300

Mathematics 111 - Calculus

Full course for one semester. This includes a treatment of limits, continuity, derivatives, mean value theorem, integration—including the fundamental theorem of calculus, and definitions of the trigonometric, logarithmic, and exponential functions. Prerequisite: three years of high school mathematics. Lecture-conference.

Mathematics 112 - Introduction to Analysis

Full course for one semester. Field axioms, the real and complex fields, sequences and series. Complex functions, continuity and differentiation; power series and the complex exponential. Prerequisite: Mathematics 111 or equivalent. Lecture-conference.

Mathematics 211 - Multivariable Calculus I

Full course for one semester. A development of the basic theorems of multivariable differential calculus, optimization, and Taylor series. Inverse and implicit function theorems may be included. Prerequisite: Mathematics 112 or consent of the instructor. Lecture-conference.

Mathematics 212 - Multivariable Calculus II

Full course for one semester. A study of line, multiple, and surface integrals, including Green’s and Stokes’s theorems and linear differential equations. Differential geometry of curves and surfaces or Fourier series may be included. Prerequisite: Mathematics 112 and 211 or consent of the instructor. Lecture-conference.

Mathematics 121 - Introduction to Computing

Full course for one semester. An introduction to computer science, covering topics such as elementary data structures, algorithms, computability, floating point computations, and programming in a high-level language. Prerequisite: three years of high school mathematics. Lecture-conference and lab.

Mathematics 221 - Computer Science Fundamentals II

Full course for one semester. A second course in computer science, an introduction to advanced structures and techniques. The course will develop the foundations of computing, providing an introduction to theoretical models of computation and also to practical computer system construction. Selected topics include: digital design, from gates to processors; the construction of interpreters, including language parsing and run-time systems; parallelism and concurrency; and universality. There will be significant programming projects exploring a number of these topics, and students will be introduced to the advanced programming techniques and data structures that support their construction. Prerequisite: Mathematics 121. Lecture-conference.

Mathematics 331 - Linear Algebra

Full course for one semester. A brief introduction to field structures, followed by presentation of the algebraic theory of finite dimensional vector spaces. Geometry of inner product spaces is examined in the setting of real and complex fields. Prerequisite: Mathematics 112 and 211, or consent of the instructor. Lecture-conference.

Mathematics 382 - Algorithms and Data Structures

Full course for one semester. An introduction to computer science covering the design and analysis of algorithms. The course will focus on various abstract data types and associated algorithms. The course will include implementation of some of these ideas on a computer. Prerequisites: Mathematics 121 and 211 or consent of the instructor. Lecture-conference.

Mathematics 387 - Computability and Complexity

Full course for one semester. Introduction to models of computation including finite automata, formal languages, and Turing machines, culminating in universality and undecidability. An introduction to resource-bounded models of computation and algorithmic complexity classes, including NP and PSPACE, and the notions of relative hardness and completeness. Prerequisite: Mathematics 121 and three semesters of college mathematics. Lecture-conference.

Mathematics 389 - Computer Systems

Full course for one semester. A study of the design and implementation of computing systems, focusing on aspects whose underpinnings are firmly based in algorithms and applied logic or whose implementation offers interesting problems in those areas. A survey of computer architecture and the hardware-software interface, compilation and run time, and concurrent and networked programming. An introduction to theoretical approaches to problems related to the synchronization and coordination of independently executing processes. Prerequisite: Mathematics 121 and additional programming experience equivalent to Mathematics 382, 384, or 385. Lecture-conference.

Presuming someone who does this major takes these electives:

Mathematics 384 - Programming Language Design and Implementation

Full course for one semester. A study of the organization and structure of modern programming languages. This course will survey key programming language paradigms, including functional, object-oriented, and logic- and constraint-based languages. A formal approach will be taken to understanding the fundamental concepts underlying these paradigms, including their syntax, semantics, and type systems. The course will cover selected topics in the implementation of language systems such as parsers, interpreters, and compilers, and of run-time support for high-level languages. Prerequisite: Mathematics 121. Lecture-conference.

Mathematics 385 - Computer Graphics

Full course for one semester. Introduction to computer image synthesis and mathematical modeling for computer graphics applications. Topics include image processing, 2-D and 3-D modeling techniques such as curve and surface representation, geometric algorithms for intersection and hidden surface removal, 3-D rendering, and animation. Prerequisite: Mathematics 121 and 211. Mathematics 331 recommended. Lecture-conference. Offered in alternate years. Not offered 2015-16.

Something from here:

Mathematics 441 - Topics in Computer Science Theory

Full course for one semester. Exploration of topics from advanced algorithm design and theoretical computer science including complexity theory, cryptography, computational geometry, and randomized algorithms, as selected by the instructor. Prerequisite: Mathematics 382 or consent of the instructor. Lecture-conference. Offered in alternate years. Not offered 2015-16.

Mathematics 442 - Topics in Computer Science Systems

Full course for one semester. A study of the design and implementation techniques used in a particular area of computer science as selected by the instructor. Students will implement a working system in that area. Recent offerings have covered distributed and networked systems, compilers, and computer game design. Prerequisite: Mathematics 382 or consent of the instructor. Lecture-conference. Offered in alternate years.



My question, then, is how does this program compare to those of different schools, and is it sufficient preparation for work in industry/grad school? A lot of Reed students already go and work in technology, with degrees in physics, math, etc, which seems to prepare them for the field b/c of the quantitative background. Does this program do more?

It looks like Reed offers the usual frosh/soph CS foundational courses, but lacks some of the more advanced courses covering commonly used concepts in industry jobs (e.g. operating systems (may be partially covered in 389), networks (may be partially covered in 389), databases, security and cryptography; also, software engineering or project experience is desirable, but it is not clear whether 384 and 385 have term projects to give that experience, though 442 probably does). You would likely have to learn these concepts on your own on the job if you go into industry after graduation.

You could certainly get a job with that degree.

I suppose the year-long thesis could provide room to have “project experience”?

It seems like Reed has the basic courses. I agree it’s lacking advanced courses.

This isn’t a CS degree, so I don’t know if it’s fair to compare it with other CS programs that offer classes like networking, security and cryptography, and software engineering. It reminds me of a computational math degree, which would be very much in demand in the job market.

Seems like a major that covers what could be called “Computational Mathematics” or “Computer Science and Mathematics,” whichever looks better on a resume.

The order in which the classes are taken make me feel like they are likely cramming students into classes that they really might not be properly qualified to take. Being put into a real analysis course after only one semester of calculus with no coverage of functions, equivalencies, logic, proof style, etc. is not going to do favors for your ability as a mathematician. Very rushed coverage of CS that will more likely than not gloss over important basic concepts such as style and creating simple code.

It covers the basics and you would be able to go either towards CS or Math, and get most CS jobs, with that degree. On a personal/educational value level, I have more than a few objections to that program.

These are the classes that are covered as requirements for CS, more or less.
Are there more upper division math classes?

My math professor tells me that the analysis course is only an introduction to real analysis to help students learn how to write proofs (a separate real analysis course exists). That is why the mv calc course is a year long: you have to prove everything.

There are, yes. At least one 400 class exists every year that deals with the advanced coursework. Next year, for instance, they have cryptography. I guess there is only so much that 2 professors can offer.

There are areas where you can take that are not exactly CS, but will help in general. Cognitive science is one of them, for some schools, this is considered HCI. Psychology, like cognitive psychology, neural networks, etc…

Is it possible to double major in Physics and Math/CS at Reed? Reed is my top choice for Physics major but my parents want to make sure I have other options open if I change my mind about Physics.

lol math-physics as an interdisciplinary major is a possibility, and you could take up all the CS electives and get a physics/math-CS concentration ad-hoc (not double) major. I honestly do not see the point of having a piece of paper that says you majored in CS though; I feel like your portfolio/skills would matter a lot more to potential employers.

Thanks for getting back to me @International95