Liberal Arts with Solid Computer Science Programs

Big universities that are not so committed to small class sizes like LACs look more likely to choose to increase class sizes at the introductory level, at least until facilities and availability of non-faculty staff (i.e. TAs, readers, lab staff) result in a hard limit.

However, they still often do run into such hard limits, so they may limit admission to the CS major to control enrollment in CS courses that way (i.e. CS majors have first priority to enroll in CS courses, and the number of CS majors is limited to the number that fills CS courses to the department’s hard limits).

Right. Not the policy of any LAC I am familiar with - generally all majors open to all students. But I think I’ve seen some ask for a certain grade in intro/foundation courses, or a GPA, somewhere…can’t recall where or which.

Many LACs have specific preferences for specific courses stated in the course descriptions - if overenrolled, freshmen or majors or sophomores or sophomores with this major etc given priority. It seems targeted to whatever level/group they think needs the course most. A freshman can bump a senior if it’s an intro course, sometimes.

I looked into this question a couple of years ago, and found that the number of electives was definitely limited at many LACs. I think you can make it work, though, so I wouldn’t let it stop you. I think the advantages of LACs can outweigh this disadvantage.

Make sure you look at the past schedules of classes and not the course catalog. A lot of LACs, including Richmond, offer great electives as Special Topics courses and Independent Studies.

@guineagirl96, have you seen any of the CS independent studies courses at Richmond end up with multiple students in them? Do the professors end up having meetings with all of the students together, or are the students all on their own?

I would second Bucknell, Union, Richmond, and Lafayette. Obviously fit will be important too. We haven’t toured Richmond, but we did see the other three. The kids at Bucknell and Union seemed similar. The kids at Lafayette seemed less preppy/jocky than the kids at Union and Bucknell, and maybe a bit more serious. This was my daughter’s impression from spending a very short amount of time on each campus, so take it with a big grain of salt.

@WalknOnEggShells yes, I have seen independent study courses with multiple students at UR. Usually when that happens, the professor does try to meet with everyone at once, if appropriate, at least that’s what I’ve observed (it depends though; sometimes the students have different backgrounds/speeds in which case they’d probably be separate since they have different needs). Sometimes if they all meet at once, its actually because the independent study is comprised of the professor’s research group.

Interesting, thanks for the info on the Independent Studies @guineagirl96. It looks like Richmond offers a lot of them.

Asking for GPA > 2.0 or grade higher than C in specified prerequisite courses is typically a way of implementing capacity limitations on a major where interest exceeds departmental capacity. I do not recall specifically offhand which, if any, LACs have such requirements for CS or any other major.

Registration priority using more sophisticated criteria than just class standing or class level is not unique to LACs or non-LACs, though there are likely many colleges in both categories that do not do such a thing.

The Association for Computing Machinery (ACM) publishes model curriculum recommendations for computer science and other, related fields (such as software engineering).
https://www.acm.org/education/curricula-recommendations
CS2013 provides a framework for comparing CS programs and course content.
It describes the coverage of some specific courses (such as CS103 at Stanford and CS256 at Williams.)

I’m not aware of any systematic, comprehensive assessment of programs at LACs with comparisons to programs at major research universities based on this framework. Doing that would take considerable effort.

In a few cases, the CS2013 document does allow head-to-head comparison of similar courses at a top RU and a top LAC. For example, it covers:
CS144: Introduction to Computer Networking, Stanford University
… 15 hours covering the NC knowledge area
… 10 hours covering other knowledge areas
… course generally taken by 120-160 students
… Professor1: Nick McKeown (full professor, PhD Berkeley 1995)
… Professor2: Philip Levis (Associate Professor, PhD Berkeley 2005)
and
Computer Networks, Williams College
… 6 hours covering the NC knowledge area
… 6 hours covering other knowledge areas
… course limited to 10 students (tutorial course: “weekly meetings in which pairs of students registered
for the course meet with the instructor to discuss their work on an assignment they received a week earlier.”)
… Professor: Thomas Murtagh (full professor, PhD Cornell 1982, AB Princeton 1974)

Although I can’t say this comparison is perfectly representative, the descriptions do seem to illustrate some of the trade-offs. The Stanford course appears to provide more in-depth coverage of network behavior. The Williams course provides 2-student engagement with a full professor in problem-solving exercises; it is much shorter than the Stanford course in total hours.

CS2013, page 492ff., provides an overview of the Stanford University program.
Page 503f.f provides an overview of the Williams College program.

Not sure if computer networks (CS 336) at Williams College is a good example, since it has not been offered since fall 2015 (i.e. less frequently than once every two years, so students cannot count on being able to take it at all).
https://catalog.williams.edu/catalog.php?strm=1161&subj=CSCI&cn=336&sctn=%20&crsid=010809

I suspect that if CS336 hasn’t been offered for 2 years at Williams, it’s because this is not a required course and there has not been sufficient demand for it. In my own opinion, whether it has been offered recently or not, it seems to illustrate differences in how such a CS topic might be covered at a “top” RU compared to a “top” LAC.

Interested students can look up CS2013 (https://www.acm.org/education/curricula-recommendations) and decide for themselves whether that example (or another) is helpful. The recommendations document also describes Algorithms courses at Princeton, Pomona, and Williams; Computer Graphics courses at Harvard and Williams; Operating Systems courses at Williams and at several RUs; Compiler courses at Williams and Stanford; Programming Languages courses at Pomona, Williams, UWashington, URochester, CMU, UPenn, and Brown; etc. I haven’t checked whether all of these are currently offered at each school.

If the OP is primarily interested in comparing sets of frequently offered courses, then one issue s/he might want to investigate at the LACs is the process for requesting a course such as CS336. If N students request it, what happens? How responsive can Williams (or another school) be to changing demand?

We’ve had this discussion before on numerous other CC threads. The principal differences between CS taught at an LAC and CS taught at a RU (research university) are:

  1. there are fewer prerequisites (if any) to majoring in CS at a typical LAC. It may not make a difference to some students who would fulfill them by choice anyway. But, as @Otterma stated upstream, for a lot of students who see CS as part of a well-rounded education, those extra course credits can be used for other things.

  2. There are more electives at a RU. That’s just the reality of the small pond versus big pond dichotomy. LACs try to get around it by alternating their offerings, but, the wealthier ones will ultimately step up and try to meet demand by growing. I know for a fact that Wesleyan, for example, is actively seeking to fill a new tenure-track position and with a three-course a year teaching load, they are likely to fill it:
    https://academicjobsonline.org/ajo/jobs/9599

  3. Courses at LACs are smaller (See, above.)

I know more than a few CS grads from liberal arts colleges. They had a wonderful experience, were able to pursue other academic areas of interest while completing their CS degree which I think has made them interesting people and job applicants, and have gone on to rewarding and profitable careers of their choosing. None have expressed regrets or have felt like they were stymied by choosing a LAC over a larger university.

Harvey Mudd is one of the top engineering schools in the country and is liberal arts. It’s a member of the claremont consortium. Something to keep in mind is that it is currently the most expensive college in the country and it is in California, so if you want to look anywhere besides the NE this could be an option.
Good Luck!

Definitely check out Harvey Mudd, Pomona, Amherst, Grinnell, and Colgate.

Comparing courses can be very misleading unless you want to get a general sense of core requirements, minors available. The reason colleges are good in any field is what you learn outside of class and you learn a lot more in CS outside of class in places like Stanford. The speaker talks, visiting professors from MIT, CMU, Berkeley to teach AI say, access to silicon valley VC. The campus feel is totally different between Stanford and Williams (yes, I’ve been to both) for a CS major Conversely for most Humanities majors, Williams would be the way to go.

In post #26 tk21769 wrote:

I imagine that the Stanford course is a lecture course in which 120 to 160 students sit in a darkened room and listen to a professor for 25 hours a quarter. Some pay careful attention, but others doze off or check their Facebook accounts.
The Williams course is a tutorial in which the students read relevant material and work on programming exercises before meeting 2 on 1 with the professor. Although the 12 hours of tutorial meeting time at Williams is shorter than the 25 hours of lecture at Stanford, it is possible that the Williams students achieve a more in-depth understanding of network behavior. The tutorials at Williams tend to be very challenging and effective.
As others have noted, the networking course is not always offered as a tutorial at Williams. If student demand exceeds the practical limit of the tutorial format, it is converted to a more conventional course with 36 hours of class meeting per semester plus many more hours in the computer lab.

From post #4
@crewdad

I would be really curious to hear the logic behind the statement above …

http://www.massbay.edu/Press-Releases/MassBay-Student-Named-a-Prestigious-2017-Goldwater-Scholar.aspx

https://goldwater.scholarsapply.org/staci-okada/

http://www.metrowestdailynews.com/x1431009363/MassBay-Biotech-student-wins-Goldwater-Scholarship

@Mastadon

While I can’t speak to the MassBay specific example, and they very well may be better than other community colleges, I would make a much more general point that coding competitions say little about the programs they come from and much more about the teams and specific people on them, the selection of which is usually neither the top CS students nor a significant portion of CS students. These types of competitions are not viewed favorably in CS departments as they focus on gaming solutions and the format rather than novel solutions to problems that utilize specialties in CS in any way.

I would equivocate them to coding interviews that focus on algorithms that more or less encourage rote memorization and study which encourage little of what matters for CS. This is not to disparage LAC’s or even to knock the quality of Hamilton in this specific case, but to simply point out that that type of citation does not really reflect the strength of a CS program.

It appears that the opposite occurred, in that it has not been offered at all since fall 2015.

Using MBCC as a signifier (#4) seems to have been unfair to that institution from the start.