Guiding Principles. Goals First we must agree on the goals. Several (non-exclusive) choices – Want every CS major to be educated in performance including.

Slides:



Advertisements
Similar presentations
Ada, Model Railroading, and Software Engineering Education John W. McCormick University of Northern Iowa.
Advertisements

E-Science Data Information and Knowledge Transformation Thoughts on Education and Training for E-Science Based on edikt project experience Dr. Denise Ecklund.
Fashion Design Program
CS Body of Knowledge (ACM) Discrete Structures Programming Fundamentals Algorithms & Complexity Operating Systems Architecture & Organization Social &
Which Course? Where Does Your City University Degree Lead? Dr. Sebastian Hunt Associate Dean.
1 Undergraduate Curriculum Revision Department of Computer Science February 10, 2010.
Knowledge Retention from Introductory CS Courses Anthony Baxter Paul Piwowarski University of Kentucky.
NSF/TCPP Early Adopter Experience at Jackson State University Computer Science Department.
Introductory Courses in High Performance Computing at Illinois David Padua.
Introduction to Computer Science CS 21a: Introduction to Computing I Department of Information Systems and Computer Science Ateneo de Manila University.
Teaching Software Engineering Through Game Design Kajal ClaypoolMark Claypool UMass LowellWPI.
June 13, Introduction to CS II Data Structures Hongwei Xi Comp. Sci. Dept. Boston University.
The Education of a Software Engineer Mehdi Jazayeri Presented by Matthias Hauswirth.
Advanced Compilers CSE 231 Instructor: Sorin Lerner.
Computer Science Department Program Improvement Plan December 3, 2004.
Revised MS Program in Computer Science INFORMATION AND COMPUTER SCIENCE DEPARTMENT October 2002.
Ph.D. required courses Keith Marzullo University of California, San Diego Computer Science and Engineering.
Mohammad Alshayeb 19 May Agenda Update on Computer Science Program Assessment/Accreditation Work Update on Software Engineering Program Assessment/Accreditation.
Do we need theoretical computer science in software engineering curriculum: an experience from Uni Novi Sad Bansko, August 28, 2013.
TEMPUS JEP : TEACHING BUSINESS INFORMATION SYSTEMS CURRICULUM DEVELOPMENT Information Technology courses Second Project Meeting, Belgrade, January.
Purdue University Ann Rundell, Assistant Professor Workshop on BME Teaching of Innovation, Design & Entrepreneurship.
Introduction to Computer and Programming CS-101 Lecture 6 By : Lecturer : Omer Salih Dawood Department of Computer Science College of Arts and Science.
Prof. dr Slobodanka Đorđević-Kajan Dr Dragan Stojanović
Parallel and Distributed Computing Overview and Syllabus Professor Johnnie Baker Guest Lecturer: Robert Walker.
Computer Network Fundamentals CNT4007C
1 Programming Thinking and Method (0) Zhao Hai 赵海 Department of Computer Science and Engineering Shanghai Jiao Tong University
Last Words COSC Big Data (frameworks and environments to analyze big datasets) has become a hot topic; it is a mixture of data analysis, data mining,
Competence Analysis in the Two-subject Study Program Computer Science Jože Rugelj, Irena Nančovska Šerbec Faculty of Education Univesity of Ljubljana 1Beaver.
Structure of Study Programmes
Integrating Parallel and Distributed Computing Topics into an Undergraduate CS Curriculum Andrew Danner & Tia Newhall Swarthmore College Third NSF/TCPP.
Structure of Study Programmes Bachelor of Computer Science Bachelor of Information Technology Master of Computer Science Master of Information Technology.
ISECON Feinstein1 IM’ LATE FROM THERE TO HERE – FROM HERE TO THERE A FEW BITS AND BYTES David Feinstein Educator of the year 2004.
Learning outcomes for BUSINESS INFORMATCIS Vladimir Radevski, PhD Associated Professor Faculty of Contemporary Sciences and Technologies (CST)
© 2007 Pearson Addison-Wesley. All rights reserved 0-1 Spring(2007) Instructor: Qiong Cheng © 2007 Pearson Addison-Wesley. All rights reserved.
Spreading Curricular Change in PDC: Some Practical Tools This material is based on work supported by the National Science Foundation under Grant Nos. DUE / /
Early Adopter: Integrating Concepts from Parallel and Distributed Computing into the Undergraduate Curriculum Eileen Kraemer Computer Science Department.
4.2.1 Programming Models Technology drivers – Node count, scale of parallelism within the node – Heterogeneity – Complex memory hierarchies – Failure rates.
The Balance Between Theoretical and Practical Work Within Electrical and Computer Engineering Courses Dr. Bahawodin Baha March Development Partnerships.
ScWk 242 Course Overview and Review of ScWk 240 Concepts ScWk 242 Session 1 Slides.
LIKES: Educating the Next Generation of Knowledge Society Builders Authors: Wingyan Chung, Edward A. Fox, Steven D. Sheetz, Seungwon Yang Presenter: Wingyan.
Widespread Integration of Parallelism Steven Bogaerts.
E81 CSE 532S: Advanced Multi-Paradigm Software Development Chris Gill Department of Computer Science and Engineering Washington University in St. Louis.
Last Words DM 1. Mining Data Steams / Incremental Data Mining / Mining sensor data (e.g. modify a decision tree assuming that new examples arrive continuously,
CS 460/660 Compiler Construction. Class 01 2 Why Study Compilers? Compilers are important – –Responsible for many aspects of system performance Compilers.
Computer Science 210 Computer Organization Course Introduction.
Master’s Degree in Computer Science. Why? Acquire Credentials Learn Skills –Existing software: Unix, languages,... –General software development techniques.
Revised MS Program in Computer Science INFORMATION AND COMPUTER SCIENCE DEPARTMENT December 2002.
Multi-Semester Effort and Experience to Integrate NSF/IEEE-TCPP PDC into Multiple Department- wide Core Courses of Computer Science and Technology Department.
CPSC 315 Programming Studio Spring 2008 John Keyser.
Compiler Construction (CS-636)
Race to the Top Assessment Program: Public Hearing on Common Assessments January 20, 2010 Washington, DC Presenter: Lauress L. Wise, HumRRO Aab-sad-nov08item09.
Carnegie Mellon University Computer Science Foundations for Ph.D. Students The Carnegie Mellon Perspective Computer Science Foundations for Ph.D. Students.
COMPUTER SCIENCE Computer science (CS) is The systematic study of algorithmic.
CSCE 315 Programming Studio Spring 2013 John Keyser.
1. 2 About BSIFG C++ Programming Training This practical C++ program includes a series of valuable training courses which indeed provide a through, hands-on,
What content, competencies, and skills are needed to prepare undergraduate students for graduate school and/or for future careers in the geosciences? -A.
Real-time Embedded System Lab, ASU WCAE_panel_ 1 Panel on Panel on Teaching Embedded Systems Yann-Hang Lee and Aung Oo Computer Science and Engineering.
CPSC 315 Programming Studio Spring 2009 Frank Shipman.
The Level-2 Projects for Course Clusters Haojun Sun College of Engineering Shantou University.
Advanced Database Course Syllabus 1 Advanced Database System Lecturer : H.Ben Othmen.
Computer Security Course Syllabus 1 Computer Security Lecturer : H.Ben Othmen.
Defining the Competencies for Leadership- Class Computing Education and Training Steven I. Gordon and Judith D. Gardiner August 3, 2010.
CS140 – Computer Programming 1 Course Overview First Semester – Fall /1438 – 2016/2017 CS140 - Computer Programming 11.
Computer Network Fundamentals CNT4007C
Analysis of Computing Options at ISU
CSC 221: Computer Programming I Fall 2005
COMPUTING BTEC LEVEL /17.
CSC Classes Required for TCC CS Degree
Learning to Learn via Application Cultivating Aspiration via Learning
Overview of BSSE at Rose-Hulman Institute of Technology
Presentation transcript:

Guiding Principles

Goals First we must agree on the goals. Several (non-exclusive) choices – Want every CS major to be educated in performance including power. – Want every CS major to be educated in parallel computing (for performance/for productivity). Programming = Parallel programming ? – Want those CS majors interested in performance computing to learn (more) about parallelism – Want all (some) non-CS majors interested in computational sciences and engineering to learn about parallel computing. Key question: – How fundamental is parallel computing ? – Is it a core topic ?

How is knowledge in performance and/or parallel computing to be presented ? Spread throughout the curriculum – Parallelism in the first programming course – Impact on performance of machine components and algorithmic choices with programming assignments in each other course including computer architecture, AI, datamining, … – Parallel algorithms and parallel data strcutures discussed in courses on algorithms. – This would come at a price. Some other things would be taught in less detail or not at all.

AND/OR Courses specially designed to teach performance and parallel computing. – Which ones should be required ? Which should be electives? How is knowledge in performance and/or parallel computing to be presented ? (cont.)

Principles in designing the curriculum Common set of concepts and terms: Need to identify set of common concepts, techniques, skills, that are to be taught. Universality: Curriculum based on universal, general principles with case studies to illustrate them. Top down or bottom up. Need to emphasize foundations in a rapidly evolving field. Machines, languages, etc. Breadth: Cover different approaches. Even those that are not popular today. Shared-memory, distributed memory, data parallel, data flow, functional. SIMD, MIMD, heterogenous.

Principles in designing the curriculum Practice: Theoretical discussion will not be enough. Students need to face the complexity of machine-program interaction, the frustration of optimizations. Range of machines are needed for exercises. Discuss today’s reality: Need to teach today’s reality and teach enough to deal with today’s machines and languages. History: Students need to know what happened before and why we are where we are.

Principles in designing the curriculum Identify Skills: – Ability to analyze the performance of a program. Know what to expect. Identify bottlenecks. Program optimization strategies, use of compilers, use of performance monitoring tools, empirical search. – Ability to design good parallel programs to begin with. Software engineering. Team work in parallel computing. Programming in the large (parallelism) vs programming in the small Co-routine decomposition. Language selection. Testing. Use of debugging tools including race detection. – Ability to transform programs to improve performance. Know what are the options. Program transformations. Algorithms. Ability to design or interact with runtime program optimization. – Ability to select a good target platform for a particular problem.

Practical issues Will need – Good (balanced) textbooks – Resources for experiments – Periodic revisions

Specialized sequences Define advanced course (sequences) – Parallelism for computations sciences. – Parallel machine design issues. – Parallel programming languages and their implementation. – Advanced Parallel Algorithms.