AMSC/CMSC 663–664: Advanced Scientific Computing I and II

Course description

AMSC/CMSC 663-664 is a two-semester project course in which each student will identify and carry out a scientific computing project with focus on: 

  • Understanding of scientific computing algorithms related to the project.
  • Code  development, which could include 
    • Modularity, portability, memory management
    • Post-processing, restarting, and writing to databases
    • Interactivity and effective scientific visualization 
    • Proper documentation, version management tools, and accessibility 
    • Debugging and profiling tools
    • Validation, verification, and unit testing. 

Each project must be focused on computing and involve the development of high quality computer code implementing contemporary or original numerical techniques. 


Lectures: PHY4222 TuTh 11:00am — 12:15pm


Maria Cameron (office MATH4410, email:,

Jacob Bedrossian (offices MATH4413 and CSIC4129, email:

Course web site: mirrored at


AMSC/CMSC 660 and 661 or similar scientific computing/numerical analysis graduate classes

Course requirements

  • Each student must have a faculty advisor (desirably, not an instructor of this course)
  • Deliverables:
    • Written documents and oral presentations (see Section Presentations and proposal documents below) 
    • Project proposal (5—7 page document, due Sept. 24)
    • Proposal presentation (20 min oral presentation)
    • Mid-year report (an edition of project proposal plus current results, due Dec. 10)
    • Mid-year presentation (20 min oral presentation)
    • Code posted on GitHub and accompanied with documentation (see Section Code requirements) (due Dec. 10)


  • Projects will be graded on the quality of
    • code and documentation for it;
    • written documents: project proposal and mid-year report;
    • oral presentations: proposal presentation and mid-year presentation.
  • Oral presentations and written documents should reflect:
    • critical thinking,
    • ability to formulate and achieve research goals,
    • ability to identify and overcome difficulties,
    • newly acquired technical skills.
  • Note that a solid effort without significant technical advances will not result at a good grade.

Code requirements

  • Code should be well-organized, clean, loosely coupled, and extensible
  • Code should be tested and validated.
  • Code should be documented, well-commented, and accompanied with a user-friendly guide.
  • Code must be distributable via GitHub

A sample of a code package posted on GitHub:

Oral and written presentation requirements

  • Project proposal and presentation should include the following components.
    • Background on the problem being addressed
    • Why is this problem important?
    • What are the state-of-art methods for solving it? Provide refs.
    • Project goals: what are you hoping to achieve?
    • Approach. How will you achieve these goals? What components will need to be
    • implemented to get there? 
      • Describe specific algorithms and how they will be implemented
      • Describe hardware/software platform you target. What programming languages will be used.
    • Validation methods: how you plan to test your code.
    • Deliverables: specific components of the code you plan to develop.
    • Milestones and a rough timeline,

  • Mid-year presentation and report should include the following items.
    • Shorter versions of the first five bullet points above.
    • Detailed description of what has been accomplished.
    • Description of what has not been accomplished and why.
    • A link to the completed code and documentation for it.
    • Itemized list of deliverables such as code, data, code documentation.
    • A research plan for AMSC664

Course calendar

Fall 2019

Aug. 27: an introductory class, setting up course goals and expectations; self-intro presentations by the instructors.

Aug. 29, Sept.5: students’ self-intro presentations.

Sept. 3 — Sept. 19: individual meetings: the student, his/her project advisor, and the instructors.

Sept. 12: deadline for picking a project and an advisor.

Sept. 24: project proposal is due.

Sept. 24 — Oct. 10: project presentations.

Oct. 22 — Nov. 7: individual meetings with students for code review.

Oct. 22 —  Nov. 7:  mid-semester update seminars. The students are expected to give a 10-minutes update presentations on their projects.

Nov. 19 — Dec. 5: mid-year oral presentations.

Dec. 3 — Dec. 12: individual meetings for code review.

Dec. 10: mid-year report is due.

Academic integrity

 Copyright 2010, 2015 , 2017, 2018  by Maria Cameron