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

Information for Fall 2011


Dianne P. O'Leary
Tentative schedule

New! Final Course Grades

Results of 10-06-11 survey

oleary@cs.umd.edu

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

Office Hours: Monday 1:30-2:30, Tuesday 1:30-2:30, Friday 10:30-11:30, and by appointment, in AVW 3271.

New! Extra office hours Thursday December 15, 9:30-10:45 and 1:15-2:00.
Final Exam: Friday December 16, 8-10am, usual classroom.

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 may require C or Fortran, 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:

  • Present what a scientific computing person needs to know in order to write fast, accurate, and efficient software.

    In particular, we will:

  • (literally) Take a computer apart to see what is inside.
  • See what happens to your code between typing it and getting the results.
  • Discuss the influence of hardware components such as the memory bus and graphics units on speed.
  • Catalog and use data structures.
  • Give an introduction to parallel computing and a chance to write parallel programs.

  • Sprinkle in a few global issues that impact scientific computing:
  • Privacy and security.
  • Net neutrality.
  • Reproducibility of scientific computing results.
  • Open source / open access.
  • "Green computing" and programming for low power consumption.
  • Questions? Please contact me.

    2011 Homework

  • Homework 1 due Sept 13. Beware of plagairism; put everything in your own words or, if absolutely necessary, use quotation marks and citations for direct quotations.
  • Comments on Homework 1 Your grade is at the bottom of an email message to you, and any comments are interspersed with your answers. Mean = 19.1, Median = 19.5.
  • Homework 2 due Sept 27 and Answers to FAQs .
  • Comments on Homework 2 Your grade is at the top of an email message to you. Mean = 18.2, Median = 19.0.
  • copying.c example program for Homework 3.
  • Homework 3 due Oct 11 and Answers to FAQs .
  • Comments on Homework 3 Your grade is at the top of an email message to you. Mean = 18.8, Median = 19.0.
  • 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.
  • Homework 4 due Oct 25 (reposted 10/29) and Answers to FAQs .
  • Comments on Homework 4 Grades Mean = 16.6, Median = 17.0.
  • Homework 5 due Nov 8, cache.c , and Answers to FAQs .
  • Comments on Homework 5 Grades Mean = 16.9, Median = 18.0.
  • Homework 6 due Nov 22, adaptSimp.c , and zip file of template codes and Answers to FAQs .
  • New! Comments on Homework 6 Grades Mean = 15.4, Median = 16.0.
    New! 12-12-11 The link above also includes sample solution codes.
  • Homework 7: information on your in-class presentation.
  • 2011 Quizzes

  • Quiz 1: hints and questions and answers. Mean = 19, median = 20.
    (The user name and password are in the first email message I sent to you.)
  • Quiz 2: hints and questions (minor typo corrected) and answers. Mean = 17, median = 18.
  • Quiz 3: hints and questions and answers. Mean = 17, median = 18. If this one gave you trouble, let's talk about it in office hours.
  • Quiz 4: hints and questions and answers. (Reposted 11/15 to fix typo in problem 2 "x(n) = x(n) / b(n);") Mean = 12, median = 12.
  • Quiz 5: hints and questions and answers. And comments. Mean = 16, median = 15.
  • Quiz 6: hints and questions and answers. Mean = 16, median = 17.
  • Quiz 7: New! hints and New! questions and New! answers. Mean = 19, median = 19.
  • Final Exam: New! hints and New! questions and New! answers. Mean = 77, median = 77.
  • Resources:

  • Syllabus
  • Tentative schedule for the semester with links to lecture notes and readings
  • 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