# AMSC 662 / CMSC 662 Computer Organization and Programming for Scientific Computing

## Information for Fall 2013

Dianne P. O'Leary

Tentative schedule

New! 12/18:
Final exam answers posted (typo
in 8b corrected) and Final Grades posted.
Have a wonderful break.

oleary@cs.umd.edu

** When and Where: **
TuTh...... 9:30am-10:45am (CSI 2107)

** Dianne O'Leary's Office Hours: **
Tuesday 11:45-1:00, Friday 9:30-10:30,
and by appointment, in AVW 3271.
E-mail is welcome anytime!

** Teaching assistant: Tyler Drombosky **
Office Hours: Monday 1-2pm and Wednesday 10-11am, CSS 3103.
drombosk at math
No office hours on Wed 11/27. Extra office hours Mon 11/25, 10-11am.

** Final Exam: **
Tuesday December 17, 8-10am, usual classroom.

New! 12/02
Office hours during the week of December 16:

**Topics: ** According to the rather dry catalog description:
"This course presents fundamental issues of computer hardware,
software, parallel computing, and scientific data management
for programming for scientific computation."

** Prerequisites: **
AMSC/CMSC/MAPL 460, AMSC/CMSC/MAPL 466,
or knowledge of basic numerical analysis and some programming
experience.

** This course does not count toward the MS or PhD
requirements for Computer Science majors. **
It is meant to be "Computer Science for Scientific Computing".

This course is offered every two years.

**Textbook: **
Bryant and O'Hallaron
Computer Systems: A Programmer's Perspective

**Programming language: **
Matlab will be assumed as a common language.
Some assignments will require C, but detailed templates
and complete instructions will be given.

** Grading: **
Based on homework (including programming projects),
quizzes, and a final exam.

** What really happens: **
This course has three goals:

** Questions? **
Please contact me.

** Programming in C: **
For Homework 3 (and some later homeworks) you will need to use
the gcc compiler.
Here is the best information I can give you.
Please let me know if you find better links or explanations.

gcc is available on the Grace machines (solaris.grace.umd.edu),
where you have an account (with your UMD password as its password)
because of your registration in this course; see information
under "Resources" below.
gcc should be available on any Unix/Linux machine.
gcc may be available on other machines, too.
If not, gcc is "freely" available under the Gnu license.
There are complete instructions
for how to install it. The process is a bit complicated.
If your machine runs Windows, try
these instructions
or search the web for 'install gcc windows'.
For Apple computers, gcc is used in `Xcode Tools' and
found in `Libcpp_kext'.
Start here.
If you find a better introduction, please let me know.
** 2013 Homework **

Homework 1:
Beware of plagiarism; put everything in your own words or,
if absolutely necessary, use quotation marks and citations for
direct quotations.
FAQs for Homework 1

Solution to Homework 1
Homework 2:
Pseudocode for the recursive version of AllSolve that we
discussed in class is here .
It may still have bugs. For your homework, you need
to implement the nonrecursive version, as discussed
in Problem 2.
FAQs for Homework 2

Solution to Homework 2
Homework 3
For help in installing gcc on your machine, see notes above.
Template code for Problem2.c
(Reposted 10/31 to correct bug)
Tyler's version of AllSolve.m
You may use either his or yours.
One of the functions used to
grade Homework 2.
Translate it to C and use it for your timings.
omp_timing.c Instructions on
computing elapsed time in C.
(The timing used in the in-class exercise on Sept 26
computed total time, not elapsed time.)
FAQs for Homework 3
Solution to Homework 3
Homework 4
FAQs for Homework 4
Solution to Homework 4
Homework 5
FAQs for Homework 5
Solution to Homework 5
Homework 6
cache.c
FAQs for Homework 6
Solution to Homework 6
Homework 7: Information on your
in-class presentation and
presentation schedule
with links to posted slides.
** 2013 Quizzes **

Quiz 1:
hints and
questions and
answers.
Mean = 17, Median = 18.
Quiz 2:
hints
and
questions and
answers.
Mean = 15, Median = 15.
Quiz 3:
hints and
questions and
answers.
Mean = 17, Median = 18.
Quiz 4:
hints and
questions and
answers.
Mean = 18, Median = 19.
Quiz 5:
hints and
questions and
answers.
Mean = 16, Median = 16.
Quiz 6:
hints and
questions and
answers.
Mean = 14, Median = 14.
Quiz 7:
hints and
questions and
answers.
Mean = 17, Median = 18.
Final Exam:
hints and
New! 12/17
questions and
answers.
** Resources: **

Syllabus
Tentative schedule for the semester
with links to lecture notes and readings
Practice Quizzes with answers
Survival Guide for Scientific Computing
UMCP Code of Academic Integrity
GRACE
Information about computer accounts.
See also the additional pointers at the bottom of
notes by Larry Herman.
For your
assignments, you may use any machine that has the necessary software.
Accessing Matlab on the GRACE machines, with
graphics.
Helpful summary of things to know, from a student.
Sources for Matlab information:
Official Matlab documentation
Matlab Primer: 39 pages of basic information
Timothy A. Davis, Kermit Sigmon, Matlab Primer,
CRC Press 2005. A 200 page version of the above reference.
D. J. Higham and N. J. Higham,
Matlab Guide, SIAM Press 2005.
Read the code samples on
the SCCS website (textbook for CMSC/AMSC 660).
How not to go about a programming assignment
by Agustin Cernuda del Rio