software design

Computer Science Table: "The Reactive Manifesto"

At this week's Computer Science Table (at noon on Friday, December 13, in Rosenfield 224A), we will discuss a recent statement from a group of programmers about desired features of modern applications. The reading is:

From the statement:

A new architecture has evolved to let developers conceptualize and build applications that satisfy today's demands. We call these Reactive Applications. This architecture allows developers to build systems that are event-driven, scalable, resilient and responsive: delivering highly responsive user experiences with a real-time feel, backed by a scalable and resilient application stack, ready to be deployed on multicore and cloud computing architectures. The Reactive Manifesto describes these critical traits which are needed for going reactive.

CS Table, 19 March 2010: Classics: Computer

This Friday at CS Table, we will be discussing a classic in computer science, Donald Knuth's Turing Award lecture speech, "Computer Programming as an Art".

Knuth, Donald (1974). "Computer Programming as an Art". Communications of the ACM 17 (12): 667–673.

This document is available at http://fresh.homeunix.net/~luke/misc/knuth-turingaward.pdf and elsewhere.

Grinnell College's CS Table is a weekly gathering of folks on campus (students, faculty, staff, alums, etc.) to talk about issues relating to computer science. CS Table meets each Friday at noon in JRC 224A, the Day Public Dining Room (PDR) in the Joe Rosenfeld '25 Center (JRC). All are welcome, although computer science students and faculty are particularly encouraged to attend.

The Spring 2010 theme of CS Table is Software Design.

Contact Professor Rebelsky for further information or for a printed copy of the document in booklet format.

CS Table, Friday, 5 March 2010: Alumni Conversations: Scott Porter '80

On Friday, 5 March 2010, CS Table will be visited by Scott Porter '80. He writes

I assert that in software design one wants: Reduced Complexity - Reuse - Real World - Easy Deployment - Dynamic Updates - Adaptive - Transparency - Versioning - Simple - Small - Fast - Lazy - Secure - Humble - Non Intrusive - Runs Everywhere - Widely Used - Supported by Key Companies. Pretty neat trick if we could achieve all these benefits. Right? We will discuss how these are possible. Maybe there is a "silver bullet".

Potential readings. (Don't stress over the all the details. The following Wikipedia links will give an overview and way more than we can cover.)

Grinnell College's CS Table is a weekly gathering of folks on campus (students, faculty, staff, alums, etc.) to talk about issues relating to computer science. CS Table meets each Friday at noon in JRC 224A, the Day Public Dining Room (PDR) in the Joe Rosenfeld '25 Center (JRC). All are welcome, although computer science students and faculty are particularly encouraged to attend.

The Spring 2010 theme of CS Table is Software Design.

CS Table, 19 February 2010: OWASP Guidelines

For Friday's CS Table, we will examine some Web security guidelines in some depth.

The Open Web Application Security Project (2010). OWASP Top 10 - 2010 rc1: The Ten Most Critical Web Application Security Risks. Online document available at http://www.owasp.org/index.php/File:OWASP_T10_-_2010_rc1.pdf.

The reading is a bit longer than most, but can be skimmed fairly quickly by those who just want an overview.

Grinnell College's CS Table is a weekly gathering of folks on campus (students, faculty, staff, alums, etc.) to talk about issues relating to computer science. CS Table meets each Friday at noon in JRC 224A, the Day Public Dining Room (PDR) in the Joe Rosenfeld '25 Center (JRC). All are welcome, although computer science students and faculty are particularly encouraged to attend.

The Spring 2010 theme of CS Table is Software Design.

Contact Professor Rebelsky for further information or for a printed copy of the document in booklet format.

CS Table, 12 February 2010: Code Review

At noon on Friday, 12 February 2010, Computer Science table will consider the topic of Code Review. Our reading will be a code review document provided to us by a Grinnell alum. Note that the reading is proprietary, but not confidential. Hence, you are free to read and discuss it, but you should not distribute it to others. Contact Sam Rebelsky for a printed copy of the document.

Grinnell College's CS Table is a weekly gathering of folks on campus (students, faculty, staff, alums, etc.) to talk about issues relating to computer science. CS Table meets each Friday at noon in JRC 224A, the Day Public Dining Room (PDR) in the Joe Rosenfeld '25 Center (JRC). All are welcome, although computer science students and faculty are particularly encouraged to attend.

The Spring 2010 theme of CS Table is Software Design.

CS Table, 5 February 2010: Pair Programming, Revisited

At noon on Friday, 5 February 2010, Computer Science table will consider the topic of Pair Programming. Our reading will be
Wray, Stewart (2010). How Pair Programming Really Works. IEEE Software 27 (1), pp. 50-55. Available online at http://www.computer.org/cms/Computer.org/ComputingNow/homepage/2010/0110/W_SW_PairProgramming.pdf.

Grinnell College's CS Table is a weekly gathering of folks on campus (students, faculty, staff, alums, etc.) to talk about issues relating to computer science. CS Table meets each Friday at noon in JRC 224A, the Day Public Dining Room (PDR) in the Joe Rosenfeld '25 Center (JRC). All are welcome, although computer science students and faculty are particularly encouraged to attend.

The Spring 2010 theme of CS Table is Software Design.

Upper-division courses and the computer science major

Introductory Course CSC 151

Core Courses, Electives, and the Computer Science Major

Grinnell's introductory courses introduce fundamental views of problem solving and different supporting programming languages. Upper-level courses include several core courses and many elective courses. The major provides some flexibility to allow students to follow their personal interests and career goals.

Requirements for the CS Major

The Computer Science Major balances requirements in foundational areas with some flexibility.

  • Algorithms and theory
    • CSC 301, Analysis of Algorithms (fundamental problem-solving techniques, corresponding data structures, and analysis of efficiency)
    • CSC 341, Automata, Formal Languages, and Computational Complexity (the theory of computation— connecting with perspectives of the liberal arts)
  • "Systems" courses: (one required, both strongly recommended)
    • CSC 211, Computer Organization and Architecture (hardware basics)
    • CSC 213, Operating Systems and Parallel Algorithms (fundamentals of parallel computation)
  • Software development
    • CSC 321, Software development principles and practices (software lifecycle, agile development methods, professional tools, and software design principles)
    • CSC 322, Team software development for community organizations (application of software development principles and practices to a large-scale project to help a community organization/client) (may be repeated for credit)
  • Electives (4 credits)
  • Supporting mathematics
    • CSC 208/MAT 208 Discrete Structures or MAT 218 Combinatorics (foundational mathematics used throughout computing)
    • Math elective to support specific student interests and goals

Introductory Course CSC 151

Computer Science Major to meet international curricular guidelines

Grinnell's regular Computer Science Major requires 32 credits of computer science and 8 credits in supporting mathematics. This level of background supports many student interests and career goals. However, students interested in careers in computing are advised that the following courses should be taken either as Electives for the Computer Science Major or as additional courses:


  • CSC 211 - Computer Organization and Architecture 4 credits
  • CSC 213 - Operating Systems and Parallel Algorithms 4 credits
  • CSC 214 - Computer and Network Security 2 credits
  • CSC 216 - Computer Networks 2 credits
  • CSC 312 - Programming Language Implementation 2 credits

With these selections, students cover the full range of recommendations recommended by Association for Computer Machinery (ACM), the Computer Society of the Institute of Electrical and Electronics Engineers (IEEE-CS). This extended major includes 32 credits of computer science and 8 credits in supporting mathematics and is identified by the professional societies as a curricular exemplar.

Electives, Mentored Advanced Projects (MAPs), Special Topics

Introductory Course CSC 151

The Computer Science Department offers a range of electives to extend student backgrounds beyond the undergraduate core. In addition to regularly scheduled courses, special topics courses address particular interests of both students and faculty.

Some recently-offered electives have included artificial intelligence, computer networks, computer graphics, computational linguistics, and human-computer interfaces.

Complementing regular courses, students work with faculty on a wide range of guided reading courses, independent projects, and mentored advanced projects.


Syndicate content