Early Adopter: Integrating Concepts from Parallel and Distributed Computing into the Undergraduate Curriculum Eileen Kraemer Computer Science Department.

Slides:



Advertisements
Similar presentations
PROGRAMMING LANGUAGE (JAVA) UNIT 42 BY ROBERT BUTTERFIELD TELEPHONE Data Structures and Algorithms.
Advertisements

50s Computer Software and Software Engineering
Programming Paradigms Introduction. 6/15/2005 Copyright 2005, by the authors of these slides, and Ateneo de Manila University. All rights reserved. L1:
1 Undergraduate Curriculum Revision Department of Computer Science February 10, 2010.
Compiler Construction by Muhammad Bilal Zafar (AP)
The University of Georgia Department of Computer Science Department of Computer Science Introducing Parallelism through Sorting Integrating Concepts from.
NSF/TCPP Early Adopter Experience at Jackson State University Computer Science Department.
Revisiting a slide from the syllabus: CS 525 will cover Parallel and distributed computing architectures – Shared memory processors – Distributed memory.
Parallel and Distributed Algorithms (CS 6/76501) Spring 2010 Johnnie W. Baker.
CMSC 132: Object-Oriented Programming II
CSCE156: Introduction to Computer Science II Instructor Stephen Scott Website
CSCI 3 Introduction to Computer Science. CSCI 3 Course Description: –An overview of the fundamentals of computer science. Topics covered include number.
CMSC 132: Object-Oriented Programming II Nelson Padua-Perez William Pugh Department of Computer Science University of Maryland, College Park.
Impact of Alternative Introductory Courses on Programming Concept Understanding Allison Elliott Tew W. Michael McCracken Mark Guzdial College of Computing.
CS565 Advanced Software Development (1 unit) Lecturer: Adrian O’Riordan Contact: is Office: prefab, behind.
Systems Programming Course Gustavo Rodriguez-Rivera.
Early Adopter: ASU - Intel Collaboration in Parallel and Distributed Computing Yinong Chen, Eric Kostelich, Yann-Hang Lee, Alex Mahalov, Gil Speyer, and.
CSinParallel Modules and the Topics in the Curriculum 2013 Core Libby Shoop Math, Statistics, and Computer Science Macalester College.
Early Adopter Introduction to Parallel Computing: Research Intensive University: 4 th Year Elective Bo Hong Electrical and Computer Engineering Georgia.
Long-term Evolution of AP® CS A Renee Ciezki SIGCSE 2013.
Prof. dr Slobodanka Đorđević-Kajan Dr Dragan Stojanović
Teaching Teaching Discrete Mathematics and Algorithms & Data Structures Online G.MirkowskaPJIIT.
Parallel and Distributed Computing Overview and Syllabus Professor Johnnie Baker Guest Lecturer: Robert Walker.
Quan Yuan and Sasithorn Zuge Dept. of Computing and New Media Technologies University of Wisconsin-Stevens Point.
Advanced Java New York University School of Continuing and Professional Studies.
1 Programming Thinking and Method (0) Zhao Hai 赵海 Department of Computer Science and Engineering Shanghai Jiao Tong University
Thinking in Parallel Adopting the TCPP Core Curriculum in Computer Systems Principles Tim Richards University of Massachusetts Amherst.
1 CSC 427: Data Structures and Algorithm Analysis Fall 2011 See online syllabus (also available through BlueLine): Course goals:
B.Ramamurthy9/19/20151 Operating Systems u Bina Ramamurthy CS421.
Integrating Parallel and Distributed Computing Topics into an Undergraduate CS Curriculum Andrew Danner & Tia Newhall Swarthmore College Third NSF/TCPP.
CSCA48 Course Summary.
Sadegh Aliakbary Sharif University of Technology Fall 2012.
Introduction to Distributed Systems Slides for CSCI 3171 Lectures E. W. Grundke.
Fall 2012: Early Adopter Plan for Teaching Concurrent and Distributed Systems Jawwad Shamsi FAST NU, Pakistan.
Guiding Principles. Goals First we must agree on the goals. Several (non-exclusive) choices – Want every CS major to be educated in performance including.
1 CSC 222: Computer Programming II Spring 2004 See online syllabus at: Course goals:
1 CSC 427: Data Structures and Algorithm Analysis Fall 2010 See online syllabus (also available through BlueLine): Course goals:
Practices of Integrating Parallel and Distributed Computing Topics into CS Curriculum at UESTC Guoming Lu University of Electronic Science and Technology.
1 CSC 222: Object-Oriented Programming Spring 2013 Course goals:  To know and use basic Java programming constructs for object- oriented problem solving.
30 October Agenda for Today Introduction and purpose of the course Introduction and purpose of the course Organization of a computer system Organization.
Operating System 2 Overview. OPERATING SYSTEM OBJECTIVES AND FUNCTIONS.
Fault-Tolerant Parallel and Distributed Computing for Software Engineering Undergraduates Ali Ebnenasir and Jean Mayo {aebnenas, Department.
Early Adopter: Integration of Parallel Topics into the Undergraduate CS Curriculum at Calvin College Joel C. Adams Chair, Department of Computer Science.
{ Applying the NSF/TCPP Curriculum Recommendations to a Liberal Arts Curriculum Akshaye Dhawan, Ursinus College.
Theory of Programming Languages Introduction. What is a Programming Language? John von Neumann (1940’s) –Stored program concept –CPU actions determined.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Fall-11: Early Adoption of NSF/TCPP PDC Curriculum at Texas Tech University and Beyond Yong Chen Yu Zhuang Noe Lopez-Benitez May 10 th, 2013.
1 CSC 221: Computer Programming I Spring 2008 course overview  What did we set out to learn?  What did you actually learn?  Where do you go from here?
Florida State UniversityCOP5570 – Advanced Unix Programming COP 5570 Advanced Unix Programming Instructor: Xin Yuan.
1 CSC 427: Data Structures and Algorithm Analysis Fall 2006 See online syllabus (also available through Blackboard): Course goals:
Multi-Semester Effort and Experience to Integrate NSF/IEEE-TCPP PDC into Multiple Department- wide Core Courses of Computer Science and Technology Department.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Parallel and Distributed Computing Overview and Syllabus Professor Johnnie Baker Guest Lecturer: Robert Walker.
MNP1163/MANP1163 (Software Construction).  Minimizing complexity  Anticipating change  Constructing for verification  Reuse  Standards in software.
CS 162 Introduction to Computer Science II Winter, 2014: 60 Spring, 2014: 60 Summer, 2014: 71.
Cheating The School of Network Computing, the Faculty of Information Technology and Monash as a whole regard cheating as a serious offence. Where assignments.
CSci6702 Parallel Computing Andrew Rau-Chaplin
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 4: Threads.
COT 4600 Operating Systems Fall 2010 Dan C. Marinescu Office: HEC 439 B Office hours: Tu-Th 3:30-4:30 PM.
Computer Science and Engineering Parallel and Distributed Processing CSE 8380 April 28, 2005 Session 29.
Defining the Competencies for Leadership- Class Computing Education and Training Steven I. Gordon and Judith D. Gardiner August 3, 2010.
Scott C. Johnson Lecturer Rochester Institute of Technology Spring 2016.
CSC 222: Computer Programming II
Accelerators to Applications
Parallel and Distributed Algorithms (CS 6/76501) Spring 2007
Inculcating “Parallel Programming” in UG curriculum
Ap computer science 2 AP COMPUTER SCIENCE A EXAM SPRING OF EVERY YEAR
CSC Classes Required for TCC CS Degree
Introduction to Computer Science for Majors II
Operating Systems Lecture 1.
Presentation transcript:

Early Adopter: Integrating Concepts from Parallel and Distributed Computing into the Undergraduate Curriculum Eileen Kraemer Computer Science Department The University of Georgia The University of Georgia is a Research Intensive University. With a faculty of 21, the Computer Science Department currently enrolls roughly 250 undergraduate majors, 60 MS students and 60 PhD students. Using a phased approach to the inclusion of PDC concepts in the undergraduate Computer Science curriculum, we will integrate across 4 core undergraduate courses. Guest lectures are employed in Intro to Computing, Software Development, and Data Structures courses. Curriculum revision of the Systems Programming class provides pervasive inclusion of PDC concepts. Evaluation in each course involves both pre- and post-test evaluations of concepts, as well as subjective satisfaction surveys. Status: Lecture 1 in the CSCI 1301 course took place on April 21 st. Video of the student participation and lecture were recorded and are available for viewing. Pre-test, post-test and survey data has been collected and analysis is under way. Data Structures, in Spring 2012, will add lectures on complexity analyses of parallel and distributed algorithms. Spring 2011 Fall 2011 Spring 2012 Intro to Computing and Programming (CSCI 1301) Typical Enrollment: 175 Description: This course covers fundamental techniques of program development and supporting software tools and focuses on the object-oriented programming language Java. Includes fundamentals of the object-oriented paradigm (classes, objects, encapsulation, inheritance and polymorphism), basic data structures (arrays and linked lists), and basic algorithms (searching and sorting). PDC topics: definition and rationale for parallel and distributed computing parallel and distributed searching and sorting algorithms discussion of range and precision of data representation Approach: Students “act out” sorting algorithms (BubbleSort and MergeSort), in playing roles of processor, array element, and counters for compare, swap, and step. Use physical representations of cost (candy) to motivate a discussion of costs and computational complexity. Use “slack time” in MergeSort to motivate Parallel Mergesort. Compare costs and discuss factors that affect run-time and benefits and limitations of parallelism. Evaluation: Pre-test/post-test evaluations of concepts & problem- solving ability; subjective satisfaction surveys. Software Development (CSCI 1302) Typical Enrollment: 90 Description: This course focuses on software development techniques in an object oriented computer language and emphasizes systems methods, top down design, testing, modularity, and structured techniques. Provides intensive introduction to the design and implementation of significant software projects, using the object-oriented programming language Java. PDC topics: multi-threading, synchronization and mutual exclusion implementation of P&D searching & sorting algorithms design and implementation of simple client-server system discussion of cluster computing, cloud/grid computing, P2P Approach: Online course materials have been developed and can be found at: The modules on “Concurrency Concepts” and “Implementing Concurrency” are relevant here and will be refined for use in this course. One lecture will introduce the materials and discuss a programming project to a parallel sort algorithm, as acted out in Another lecture will discuss client-server, p2p, and cluster and grid computing and introduce a programming project involving a simple-client server system. Evaluation: Pre-test/post-test evaluation of concepts. Evaluation of implementations produced in 2 programming projects. C++ and Unix Systems Programming (CSCI 1730) Typical Enrollment: 45 Description: This course covers the basics of UNIX systems programming, including file and directory structures, basic and advanced file i/o, process creation, and interprocess communication. An initial unit on "C++ for Java programmers“ familiarizes students with the use of C and C++ in systems programming. Introduces templates and file processing. The Systems Programming unit addresses file systems, directories, processes, signals, pipes/fifos, and sockets. PDC topics: programming with pthreads, ACE, MPI threads/shared memory v. multi-processing v. distributed implementation of classic problems in synch & concurrency use of tools to detect concurrency defects, evaluate performance. Approach: We will make use of course materials found at: and develop additional modules focused on pthreads, ACE, and MPI. Hands-on approach involving implementation of classic problems in synchronization and concurrency using C++ libraries, Java threads, MPI, and low-level Unix systems primitives. A final project will involve evaluations of these different approaches for performance, ease of implementation, etc. Evaluation: Pre-test/post-test evaluations of concepts, comparative evaluation of approaches, ability to design and implement (synthesize) solutions.