16.01.2015 Views

CS2013-final-report

CS2013-final-report

CS2013-final-report

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

CN/Processing<br />

[Elective]<br />

The processing topic area includes numerous topics from other knowledge areas. Specifically,<br />

coverage of processing should include a discussion of hardware architectures, including parallel<br />

systems, memory hierarchies, and interconnections among processors. These are covered in<br />

AR/Interfacing and Communication, AR/Multiprocessing and Alternative Architectures,<br />

AR/Performance Enhancements.<br />

Topics:<br />

• Fundamental programming concepts:<br />

o The concept of an algorithm consisting of a finite number of well-defined steps, each of which<br />

completes in a finite amount of time, as does the entire process.<br />

o Examples of well-known algorithms such as sorting and searching.<br />

o The concept of analysis as understanding what the problem is really asking, how a problem can be<br />

approached using an algorithm, and how information is represented so that a machine can process<br />

it.<br />

o The development or identification of a workflow.<br />

o The process of converting an algorithm to machine-executable code.<br />

o Software processes including lifecycle models, requirements, design, implementation, verification<br />

and maintenance.<br />

o Machine representation of data computer arithmetic.<br />

• Numerical methods<br />

o Algorithms for numerically fitting data (e.g., Newton’s method)<br />

o Architectures for numerical computation, including parallel architectures<br />

• Fundamental properties of parallel and distributed computation:<br />

o Bandwidth.<br />

o Latency.<br />

o Scalability.<br />

o Granularity.<br />

o Parallelism including task, data, and event parallelism.<br />

o Parallel architectures including processor architectures, memory and caching.<br />

o Parallel programming paradigms including threading, message passing, event driven techniques,<br />

parallel software architectures, and MapReduce.<br />

o Grid computing.<br />

o The impact of architecture on computational time.<br />

o Total time to science curve for parallelism: continuum of things.<br />

• Computing costs, e.g., the cost of re-computing a value vs. the cost of storing and lookup.<br />

Learning Outcomes:<br />

1. Explain the characteristics and defining properties of algorithms and how they relate to machine<br />

processing. [Familiarity]<br />

2. Analyze simple problem statements to identify relevant information and select appropriate processing to<br />

solve the problem. [Assessment]<br />

3. Identify or sketch a workflow for an existing computational process such as the creation of a graph based<br />

on experimental data. [Familiarity]<br />

4. Describe the process of converting an algorithm to machine-executable code. [Familiarity]<br />

5. Summarize the phases of software development and compare several common lifecycle models.<br />

[Familiarity]<br />

6. Explain how data is represented in a machine. Compare representations of integers to floating point<br />

numbers. Describe underflow, overflow, round off, and truncation errors in data representations.<br />

[Familiarity]<br />

- 72 -

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!