Scheme

Thursday Extra: "Re-architecturing MediaScheme"

On Thursday, January 24, Hart Russell 2014 and Prashanna Tiwaree 2014 will present the results of their summer 2012 research project:

This project sought to replace the MediaScheme console used in CSC 151 with a more versatile system that consists of DrRacket, a Scheme development environment, communicating with the GIMP through D-Bus, an inter-process communication tool that is found in modern Linux systems.

Refreshments will be served at 4:15 p.m. in the Computer Science Commons (Noyce 3817). The talk, Re-architecturing MediaScheme, will follow at 4:30 p.m. in Noyce 3821. Everyone is welcome to attend!

Thursday Extra: "Self-Disclosing GIMP with MediaScript"

On Thursday, November 15, Sarah Henney 2013 and Martha Fletcher 2015 will describe their summer internship work on the MediaScheme project:

Self-Disclosing GIMP(SDGimp) is an ongoing project with the goal of adding self-disclosure functionality tailored to the MediaScheme library into the GIMP. In short, SDGimp will allow a user to perform an action in the GIMP and then view the Scheme expression which can be used to duplicate that action.

In this Extra, we will discuss and demonstrate our work from this summer on SDGimp, including our expansion of the MediaScheme library to include more actions from the GIMP.

Refreshments will be served at 4:15 p.m. in the Computer Science Commons (Noyce 3817). The talk, Self-disclosing GIMP with MediaScript, will follow at 4:30 p.m. in Noyce 3821. Everyone is welcome to attend!

Thursday Extra: "Media scripting with Inkscape"

On Thursday, February 9, Kate Ingersoll 2013 and Kimberly Spasaro 2014 will present results from their summer 2011 research:

Our goal was to create a scripting console for the open-source vector-graphics program Inkscape. We'll explain the technical process of creating the console, specifically the method of using dbus to create intra-process communication between internal Inkscape commands and Scheme functions. The presentation will also cover the applications of scriptable media programs, both as a tool for graphic design and as an environment for teaching computer science. The talk will conclude with a thrilling demonstration of the working Inkscape console, as we walk though examples of how simple Scheme commands in the InkScript console can create complex and interesting images.

Refreshments will be served at 4:15 p.m. in the Computer Science Commons (Noyce 3817). The talk, "Media scripting with Inkscape," will follow at 4:30 p.m. in Noyce 3821. Everyone is welcome to attend!

Thursday Extra: "Software development using R6RS libraries"

On Thursday, February 2, John Stone will discuss the development of software in modern Scheme:

The Revised6 report on the algorithmic language Scheme introduces several new constructions into the language that enable programmers to impose a modular structure on their code, simplifying large-scale program development and promoting even greater flexibility in adapting the language to particular applications. This talk illustrates some of the possibilities, drawing on two examples: (0) a reimplementation in R6RS of the Smark programmable filter, and (1) an extensive algorithm library, created for the textbook Algorithms for functional programming.

Refreshments will be served at 4:15 p.m. in the Computer Science Commons (Noyce 3817). The talk, "Software development using R6RS libraries," will follow at 4:30 p.m. in Noyce 3821. Everyone is welcome to attend!

Introductory courses

Introductory Course CSC 151

Multi-paradigm Approach for Introductory Courses

Computing has become widespread in today's society, largely because it helps people solve problems. However, different types of problems require fundamentally different approaches for problem solving. Computer science recognizes at least four problem-solving approaches as being fundamental to work in the discipline. Each approach involves a distinct way of thinking, and each is supported by a range of computer languages.

Grinnell's computer science curriculum explores several of these paradigms in the beginning courses:

  • CSC 151, Functional Problem Solving, emphasizes functional problem solving using the Scheme programming language (a dialect of LISP, a language widely used for artificial intelligence, graphical manipulations, and other applications).
  • CSC 161, Imperative Problem Solving and Data Structures, studies concepts tied to the architecture of computers, compilers, and operating systems within the context of the imperative problem-solving paradigm and C (a programming language widely used in scientific applications and engineering).
  • CSC 207, Algorithms and Object-Oriented Design, explores object-oriented problem solving using the Java programming language (a language widely use for large-scale applications and systems).

Introductory Course CSC 151

Students with considerable background may take an accelerated introductory course, CSC 153, that covers the fundamentals of both CSC 151 and CSC 161 in a single semester.

Later courses build on this foundation to provide depth in each of these problem-solving paradigms and programming languages.


Syndicate content