Detailed information and course materials (lectures, handouts, etc.) will be available through Sakai.
(Log in with your onyen and select COMP 116.)
|Class hours||MWF 2:00pm-2:50pm by Marc Niethammer|
GS G100 (Genome Science Building)
|Office||SN219 (Sitterson Hall)|
|mn -at- cs.unc.edu|
Teaching assistant: TBD
Teaching assistant: TBD
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.
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 (9 x 2% = 18%): There will be a 10 minute quiz at the end of almost every Wednesday class for a total of ten 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 nine graded quizzes. The quizzes occur regularly to encourage students to stay up to date on learning the material. These quizzes will be taken and submitted online. We will offer a practice tutorial on how to do this some time before the first quiz so that everybody will be familiar with it.
Assignments (6 x 3% = 18%): 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 online. A matlab script to do so will be provided and you will receive instructions during class on how to use it. Late assignments will not be accepted and will receive a score of zero. Remember that programs communicate with people, not just the computer, so write readable code, use brief comments to clarify your intentions and to explain how you solved the assignment.
Exams (2 mid-terms x 17% = 34%, Final = 30%): There will be two mid-terms in class and one comprehensive final exam. You will be allowed to use Matlab during these exams as they will also be taken online. If the campus is closed for any reason during a scheduled exam, then the exam will be given during the next scheduled class instead.
Recommended: MATLAB: A Practical Introduction to Programming and Problem Solving, 3rd edition, by Stormy Attaway, Publisher: Elsevier, Inc, 2013. Older editions are available for very cheap. They are fully sufficient to follow the course as far as I am concerned.