COMP 116 - Introduction to Scientific Programming

Detailed information and course materials (lectures, handouts, etc.) will be available through Sakai.
(Log in with your onyen and select COMP 116.)



Class Hours:

Section 1 MWF 12:30pm-1:20pm by Marc Niethammer 
Section 2 MWF 9:00am-9:50am by Jeff Pool
Class Rooms

Section 1: FB009, Section 2: FB007 

(Fred Brooks building)


Jeff Pool

Office SN230 (Sitterson Hall)
Office Hours Mon 10:00pm-12:00noon, after section 2 (or by appt.)
Office Phone 976-1760 (not the best way to get in touch)
e-mail jpool -at-

Marc Niethammer

Office SN219 (Sitterson Hall)
Office Hours Wed 11:00am-12:00 noon, before section 1 (or by appt.)
Office Phone 843-7449
e-mail mn -at-

Teaching assistant: Jared Vicory

Office SN045 (Sitterson, Basement floor)
Office Hours Thu 2:30pm-3:30pm (or by appt.)
Office Phone 962-1723
e-mail jvicory -at-

Teaching assistant: Xiaojie Zhao

Office SN045 (Sitterson Hall)
Office Hours Fri 3:30pm-4:30pm (or by appt.)
Office Phone 962-1770
e-mail zhaox -at-


Catalog Description:   COMP 116  Introduction to Scientific Programming (3).

An introduction to programming for computationally oriented scientists. Fundamental programming skills, using MATLAB and another imperative programming language (such as C). Problem analysis and algorithm design, with examples drawn from simple numerical and discrete problems. Students can only receive credit for one of COMP 110, COMP 116, or COMP 121.

Prerequisites:   Please contact us if you are concerned about whether you have the background required for this course.

MATH 231:  We assume familiarity with univariate differential and integral calculus, and the ability to manually solve a system of simultaneous linear equations.  

Computer Literacy:  Basic proficiency with using a personal computer, using a mouse and keyboard, word processing, email, and finding information off the internet is assumed. 

Laptop:  Each student needs their own laptop computer for installing and using the MATLAB software during the course of the semester. 

Postrequisites:  COMP 116 satisfies the General Education, Quantitative Reasoning requirement of 3  credit hours.  For students interested in computer science as a major or minor, most upper level and graduate classes in computer science, assume that the student has learned basic programming by taking one of the following courses:  COMP 110, COMP 116, or COMP 121. 


Topics Covered

After taking this class, students will learn to do…

Numerical Computation:  Use MATLAB for doing numerical computation: including arithmetic, algebra, calculus, working with Matrices, and solving systems of linear equations.

Programming:  Create programs to solve scientific problems using MATLAB.  

Fundamentals:  Learn the fundamentals common to many programming languages (variables, data types, flow of control, modular design, etc.).  

Debugging:  Avoid and track down bugs using defensive programming techniques

I/O:  Work with user input (or file input) and transform it into 2D & 3D graphics (or file output).



Your course grade is based on your cumulative performance on programming assignments, team project, quizzes, and exams as follows:

Quizzes 20%
Assignments 30%
Midterms 25%
Final Exam 25%

Quizzes (10 x 2% = 20%)There will be a 10 minute quiz at the end of almost every Wednesday class for a total of eleven quizzes taken.  No makeup is given for missed quizzes, but the lowest quiz score will be dropped at the end of the term for a total of ten graded quizzes. The quizzes occur regularly to encourage students to stay up to date on learning the material.

Assignments (6 x 5% = 30%): There are a total of 7 programming assignments.  Typically every other week there will be an assignment to write a program.  Doing the assignments is essential for learning how to program.  Your lowest scoring assignment will be dropped for a total of 6 scored assignments.  No makeup is given for missed assignments. Assignments must be submitted before midnight on their due date, which is typically on a Wednesday. Assignments need to be turned in as Microsoft Word documents, both a hard copy (preferably printed out and handed in during the Wednesday class but you can slide it under the TA's door before midnight as well) and a soft copy (submitted via Sakai by the midnight deadline).   Once grading has begun, late assignments will not be accepted and will receive a score of zero.   Programs that do not work will have 50% of the total assignment points deducted.  Remember that programs communicate with people, not just the computer, so write readable code, use brief comments to clarify your intentions and use concise write-ups to explain how you solved the assignment.   

Exams (2 mid-terms x 12.5% = 25%, Final = 25%): There will be two mid-terms in class and one comprehensive final exam.   These are designed so that you do not need to use MATLAB or perform numerical calculations during the exams.  So computers, programmable calculators, and cell phones will not be permitted.  You may bring a simple calculator if it gives you a sense of security.  If the campus is closed for any reason during a scheduled exam, then the exam will be given during the next scheduled class instead.  The final exam will not be given back to students at the end of the semester.



Recommended: MATLAB:  A Practical Introduction to Programming and Problem Solving, by Stormy Attaway, Publisher: Elsevier, Inc, 2009.  

PDF icon COMP 116 Fall 2011 Syllabus.pdf265.71 KB