algorithms

Thursday Extra: "What is a good recommendations algorithm?"

On Thursday, April 4, Aditi Roy 2013 will discuss the evaluation of recommendation algorithms:

While designing a recommendation algorithm for Kindle FreeTime Unlimited (a product which serves a subscription containing books, videos and apps to kids), I realized that there were many varied opinions on what the role of a good recommendation algorithm was. This talk will provide an overview of some of the popular approaches and algorithms used in the industry, the metrics used to evaluate recommendation algorithms, and the challenges involved in serving customers good recommendations.

Refreshments will be served at 4:15 p.m. in the Computer Science Commons (Noyce 3817). The talk, “What is a good recommendations algorithm?” will follow at 4:30 p.m. in Noyce 3821. Everyone is welcome to attend!

Thursday Extra: "K-selection on the GPU"

On Thursday, April 19, Tolu Alabi 2013, Brad Gordon 2012, and Russel Steinbach 2012 will discuss their work in summer 2011 on parallel algorithms for computing order statistics:

How do you select the 1,678,341st largest number out of a list of 500 million numbers? The answer is surprisingly simple, and will be the subject of our Thursday Extra. We will present two efficient, parallel algorithms for selecting the kth largest element out of very large lists, a problem known as k-selection. We will discuss how graphics processing units (GPUs) enable us to easily and efficiently implement these algorithms on single computers.

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

Friday Extra: "Video analytics"

At noon on Friday, October 9, Dr. Harold Trease of the Pacific Northwest National Laboratory will speak on Video analytics for indexing, summarization and searching streaming video and video archives:

Given streaming video or video archives, how does one effectively summarize, classify, and search the information contained within such a large amount of image data? In this presentation, we address these issues by describing a process for the automated generation of a table of contents and of keyword, topic-based index tables that can be used to catalogue, summarize, and search large amounts of video data. Having the ability to index and search the information contained within the videos, beyond just metadata tags, provides a mechanism to extract and identify useful content. During this presentation, we describe some of the mathematics, computer science and engineering, and applications of being able to use image and video keywords as the primary search criteria, much as Web browsers (such as Google) allow us to search text today.

Dr. Trease is a graduate of the University of Nebraska at Kearney and received his doctorate from the University of Illinois at Urbana-Champaign, in nuclear engineering. He has more than thirty years of research experience in the design, implementation, and application of high-throughput, high-performance computer software. He currently leads the P3D Code Development Project. P3D is a large-scale framework for modeling, simulation, and prediction in computational physics.

Pizza and soda will be served before the talk. Everyone is welcome to attend!

This lecture serves as this week's CS Table.

Thursday Extra: "Interfaces for video analytics"

On Thursday, October 8, Alex Exarhos 2010 will present the results of his summer research on analyzing videos:

I worked with a set of video indexing and searching algorithms through a Department of Homeland Security internship. These algorithms are capable of quickly providing a summary of a video by breaking it up into sections based on the content, and this method of indexing makes it possible to instantly locate other images, frames, or video segments within the indexed library. I will also talk about the web services I created for these algorithms, and the work I did implementing a mobile interface for a Google Android phone.

Refreshments will be served at 4:15 p.m. in the Computer Science Commons (Noyce 3817). The talk, Interfaces for video analytics, will follow at 4:30 p.m. in Noyce 3821.

Upper-division courses

Introductory Course CSC 151

Core Courses and Electives

Grinnell's introductory courses introduce fundamental views of problem solving and different supporting programming languages. Upper-level courses fall into two main categories:

Core Courses: Requirements for the CS Major

Introductory Course CSC 151

Core courses address fundamental topics that are recommended by national curricular guidelines. The Computer Science Major incorporates these core topics into mandated courses:


  • 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)
  • "under-the-hood" courses:
    • CSC 211, Computer Organization and Architecture (hardware basics)
    • CSC 213, Operating Systems and Parallel Algorithms (fundamentals of parallel computation)
  • upper-level, language-oriented courses:
    • CSC 302, Programming Language Concepts (design alternatives and implementation possibilities)
    • CSC 362, Compilers (utilization of langauge theory to translate high-level programs to machine-level code)
  • software development methodology and team-based software development projects:
    • CSC 323, Software Design (development of large-scale programs based on object-oriented problem solving)
    • CSC 325, Databases and Web Application Design (use of databases and scripting languages in developing Web-based systems)

To address pragmatic issues of scheduling (e.g., students considering off-campus study), the major requires only one of CSC 211 or 213, one of 302 or 362, and one of 323 or 325. Both 211 and 213 are strongly recommended, and together these courses address content areas of the national curricular guidelines.

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