software design

Thursday Extra 2/21/19: On the design of CSC 321/22

Thursday, February 21, 2019
4:15 p.m. in Science 3821
Refreshments at 4:00 p.m. in the Computer Science Commons (Science 3817)

Developing Soft and Technical Skills Through Multi-Semester, Remotely Mentored, Community-Service Projects

Professor Samuel A. Rebelsky will present a talk discussing the design rationale for CSC 321/22 (now CSC 324/26), in preparation for a talk that he and Dr. Janet Davis will be giving at the 50th SIGCSE Technical Symposium in Computer Science Education.

Thursday Extra: "Developing Soft and Technical Skills Through Multi-Semester, Remotely Mentored Community-Service Projects"

On Thursday, February 21, 2019, Professor Samuel A. Rebelsky will present a talk discussion the design rationale for CSC 321/322 (now CSC 324/326), in preparation for a talk that he and Dr. Janet Davis will present at the 50th SIGSCE Technical Symposium in Computer Science Education:

For the past four years, we have taught a reimagined software design course with typical and atypical components. Projects form the core of the course: Students work in teams of 4–6 people to develop non-mission-critical software for local non-profits, building their engagement with the community and helping them understand the broader impact of their work. These projects require multiple semesters to complete. Since students typically enroll for the course for one semester, this model gives students the novel experience of legacy software. We also provide each team with an alumni mentor who helps them navigate not only technical problems but also the challenges of working with a real-world, non-technical client.

These aspects of the course also develop our students' soft skills. They learn to work with a team, to communicate with non-technical clients, to work with remote collaborators (or mentors), and to think ahead to those who will take on the project in the next semester. As we tell our students, these skills are often as crucial as their technical skills.

In this talk, we report on the design of the course and describe some of the challenges associated with this model (e.g., projects that inadvertently reveal information, clients who switch management or expectations, and projects that become obsolete) and provide suggestions for those who might want to adopt a similar approach.

Refreshments will be served at 4 p.m. in the Computer Science Commons (Noyce 3817). Professor Rebelsky's talk, Developing Soft and Technical Skills Through Multi-Semester, Remotely Mentored Community-Service Projects, will begin at 4:15, in Noyce 3821. Everyone is welcome to attend!

CS Extra 10/8/18: Alumni Talk Careers

Thursday, October 4, 2018
4:15 p.m. in Science 2022 (note the room is different than usual)

Careers in Computer Science and Informal Talk by Grinnell CS Alumni
Cassie Koomjian '05, Ian Young '08, Terian Koscik '12, and Alex Leach '06 talk about their careers and experiences in the software design and development field.

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

Collaborative student problem solving

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 324, Software Design and Development (software lifecycle, agile development methods, professional tools, and software design principles with application to a large-scale project for a local organization/client)
  • 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

Students working on circuits lab for Computer Organization and Architecture

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

Students discussing their project work

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 vision, computational linguistics, and evolutionary algorithms, and data visualization.

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


Syndicate content