Title: Early Adopter: Integration of Parallel Topics into the Undergraduate CS Curriculum at Calvin College
1Early AdopterIntegration of Parallel Topics
into the Undergraduate CS Curriculum at Calvin
College
- Joel C. Adams
- Chair, Department of Computer Science
- Calvin College
2Calvin College
- Is a 4-year comprehensive liberal arts college
located in Grand Rapids, MI - Has about 4,000 students
- Offers ABET-accredited programs in
- Computer Science (BCS)
- 7.5 FTE faculty
- 100 students
- Engineering (BSE)
3CS Major Curriculum
Year
Fall Semester
Spring Semester
1
Intro to Computing Calculus I
Data Structures Calculus II
2
Algorithms DS Intro. Comp. Arch. Discrete Math I
Programming Lang. Discrete Math II
3
Software Engr Adv. Elective
OS Networking Statistics
4
Adv. Elective Sr. Practicum I
Adv. Elective Sr. Practicum II Perspectives on
Comp.
4CS 112 Intro to Data Structures
- Year 1, semester 2, core, 40 students
- Topics
- Single threading vs. multithreading
- Parallelizing linear search, mergesort
- Race conditions non-thread-safe structures
- Speedup, asymptotic performance analysis
- Hands on Embarrassingly parallel matrix
operations (addition, transpose) via OpenMP - Reduced Coverage of graphs
5CS 212 D. Structures Algorithms
- Year 2, semester 1, core, 12-15 students
- Topics
- Parallel vs distributed algorithms
- Parallel design (data vs task decomposition)
- Parallel algorithms (parallel sorting, max)
- Distributed graph algorithms
- Asymptotic performance analysis
- Reduced Coverage / review of elementary data
structures (stacks, queues, sets)
6Engr 220 Intro. Architecture
- Year 2, semester 1, core, 12-15 students
- Topics
- Flynn taxonomy (SISD, SIMD, MIMD)
- Multiprocessors (shared vs distributed mem.)
- Multicore, manycore processor architectures
- Memory hierarchy
- Multicore memory bandwidth issues
- Multicore caching, coherency issues
- Reduced Assembly language coverage
7CS 214 Programming Languages
- Year 2, semester 2, core, 20 students
- Topics
- Concurrency and synchronization using
- Processes / threads / tasks
- Semaphores, locks, condition variables, monitors
- Race conditions
- Communication constructs
- Message passing vs. shared memory
- Hands on Threads in C, Ruby Ada tasks
- Reduced coverage of markup languages
8CS 232 OS Networking
- Year 3, semester 2, core, 15 students
- Topics
- Concurrency synchronization implementing
- Processes, threads,
- Semaphores, locks, condition variables, monitors
- Race conditions, deadlocks
- Traditional vs. multicore scheduling
- TCP/IP and Ethernet Networking
- Sockets, message passing, RPC,
- Classic distributed systems problems
9CS 232 OS Networking (ii)
- Hands on
- Multiprocessing (fork), synchronization
- Multithreading (POSIX), synchronization
- Kernel programming
- Socket programming (client-server systems)
- Reduced coverage of
- Hardware review (from 1 week to 1 lecture)
- Batch systems
- I/O devices
10CS 374 High Perf. Computing
- Year 3 4, semester 1, elective, 8 students
- Topics
- Multiprocessor architectures
- Problem decomposition data vs task
- Parallel patterns models
- Problem types Monte Carlo, N-body, etc.
- Scalability
- Speedup, Efficiency, Amdahls L., Gustafsons L.
- Hands on MPI, OpenMP, MapReduce, OpenCL
11Summary
- By sprinkling parallel topics throughout the
core courses, students - Are exposed to parallel thinking early (year 1)
- Are exposed to parallel thinking frequently
- Are gradually exposed to increasingly difficult
aspects of parallelism - This provides a framework for gradually
increasing the parallel content as faculty become
comfortable teaching it.