Printer Friendly


An Overview of the Internet Protocol, IPv6. Aby Tehranipour, Eastern Michigan University, Department of Computer Science

The Internet protocol, TCP/IP, was invented by Kahn and Cerf in the early 1970s and was adopted as a DoD standard in 1980. Inclusion of TCP/IP into the Unix BSD system releases was detrimental to its success and adoption by both academia and industry. The widespread use of LANs, workstations, and other technologies in the 1980s and the commercialization of the Internet in the early 1990s contributed to the Internet's massive growth. Consequently increased complexity revealed some weaknesses of the IPv4 such as address depletion, scalable routing, and security faults. To address these and other shortcomings, the Internet protocol version 6, IPv6, was adopted by the IETF in 1995.

This paper presents a brief history of the TCP/IP protocol, examines some of the weaknesses of the IPv4, provides an overview of IPv6, and shows how IPv6 handles these weaknesses. It also articulates the need for preparing students for the full deployment of IPv6.

Accessible GPU Programming. Susan Haynes, Eastern Michigan University, Department of Computer Science

GPU technology is driven by the unquenchable desire for a better gaming experience. Games need fast 3D dynamic graphics and GPUs do make that happen. A happy side-effect, though, is since CPUs are now programmable, their power is available for general parallel problem solving on a single desktop, laptop, mobile device, etc. GPUs are highly parallel, computationally powerful, very fast floating point number crunchers, designed for data parallel, task parallel or pipelined parallel programming--the sort of programming needed for scientific computing, simulation, animation. While these hardware and software systems are still actively evolving, we can perceive some convergence to cross-platform APIs such as OpenCL, and somewhat generalizable parallel computing architectures, such as CUDA. This exciting technology is now easily accessible to the practicing computer scientist and computer science student. This talk will demonstrate, via examples, some programming tools and environments that are largely cross-platform, and will make the case for its general incorporation in the computer science and scientific computing curricula and research.

Building a Tera-Scale Beowulf Cluster. Joel C. Adams and Jon M. Walz, Calvin College, Department of Computer Science

Multicore CPUs permit the construction of computationally dense Beowulf clusters, allowing small undergraduate colleges to build tera-scale multiprocessors. is Calvin College's newest Beowulf cluster, providing 45 nodes, 368 cores, 768 GB of RAM, Infiniband and Gigabit Ethernet networks, 23 TB of disk space, 3 KVM units, and 3.68 TFLOPS of double-precision performance (RPEAK), all in a single 47U rack. Each of its compute nodes has eight cores and 16 GB of RAM, while its head node has sixteen cores and 64 GB of RAM for memory-intensive applications. It is used for faculty and undergraduate research in computational astronomy, bioinformatics, chemistry, computer science, engineering, and physics, as well as computer science education. Dahl supports both shared-memory parallelism via OpenMP and distributed-memory parallelism via MPI, making it a flexible platform for faculty research projects and for giving undergraduates hands-on experience using different models of parallel computing. This presentation will cover the design and construction of Dahl, and how it is being used. Dahl cost roughly $150,000 to build and is funded by NSF OCI-0722819.

Should We Continue Teaching Assembly Language in a Computer Science Curriculum? Ranjan Chaudhuri, Eastern Michigan University, Department of Computer Science

Emphasis on teaching assembly language programming in a computer science curriculum has somewhat diminished over the years because of the fact that in the real world very few people program in assembly languages any more. Over the years, simulated assembly languages have become quite popular in many computer science curricula instead of assembly languages for real machines. Simulated assembly languages are much easier to learn than assembly languages for real machines and are primarily used for teaching fundamental concepts of computer organization to the students. An assembly language, however, whether it is real or simulated, helps students better understand many of the important concepts of a programming environment that are often transparent in an introductory high-level programming language course. The purpose of the paper is to address some of these issues and examine some of the concepts that are learned while programming in an assembly language that help students become better programmers.
COPYRIGHT 2012 Michigan Academy of Science Arts & Letters
No portion of this article can be reproduced without the express written permission from the copyright holder.
Copyright 2012 Gale, Cengage Learning. All rights reserved.

Article Details
Printer friendly Cite/link Email Feedback
Publication:Michigan Academician
Article Type:Author abstract
Geographic Code:1U3MI
Date:Sep 22, 2012
Previous Article:Communication.
Next Article:Education.

Terms of use | Privacy policy | Copyright © 2018 Farlex, Inc. | Feedback | For webmasters