Syllabus Bulletin description COMP 116 Introduction to Scientific Programming (3). Prerequisite, MATH 231. An introduction to programming for computationally oriented scientists. Fundamental programming skills, using MATLAB or Python. Problem analysis, algorithm design, plotting and visualizing data, with examples drawn from simple numerical and discrete problems. Students can receive credit for only one of COMP 110, 116, or 121. General Course Info Term: Summer I 2018 Department: COMP Course Number: 116 Section Number: 001 Time: MTWRF 11:30-1:00 Location: Bingham 0317 Instructor Info Name: Calvin Deutschbein Office: Sitterson 141 Email: cd@cs.unc.edu Phone: 919-590-6186 Office hours: After class or by appointment Teaching Assistants None Textbook and Resources No textbook but a world of free information available on the web. The software will be a free download but will require free disk space on your CCI compatible (Windows, Mac, or Linux) computer. We will use Piazza. We will have in class coding "assignments" as part of lecture. I recommend bringing your computer. The best way to learn is to do. I will give you many opportunities in class to repeat after me and try variations. Homework (and possibly exams) will be downloaded and submitted on the class website. Course Description In this course you will learn to basics of programming using problems from the sciences as motivation. You will learn to use computers to collect, analyze, and visualize data. Target Audience This course is intended to meet the computing needs of students majoring in the sciences and to introduce computer programming to students who have no experience. Prerequisite MATH 231. We assume familiarity with univariate differential and integral calculus, and the ability to manually solve a system of simultaneous linear equations. Goals and Key Learning Objectives To teach problem analysis, algorithm design, and the elements of programming, with emphasis upon mastery of concepts, using a limited number of well-chosen language features and physically motivated driving problems. Although Python is used for instruction, the emphasis is on learning to program rather than learning a specific language. Course Requirements Every week there will be an assignment to write a program and submit it for grading. You will need a CCI compatible (Windows, Mac, or Linux) computer. Key Dates Midterm 1: 4 June Final exam: TBA Grading Criteria 40% Assignments 20% Midterm 40% Final Exam All exams are cumulative. Assignments and exams will include code to automatically check your answer and give you instant feedback. If it tells you the answer is wrong, you can be certain that you need to fix something. On the other hand, if it tells you the answer is correct it may still be incorrectly computed. When grading I will use a different dataset that will produce different numerical results. For example, suppose I ask you to write code that adds the numbers in an array. Instead of writing code, you might look at the numbers, add them on your calculator, and enter the sum. The checker in your assignment will tell you that the answer appears correct because it is correct for that particular data. But when I grade the assignment, the array will have different numbers with a different sum. If you simply entered the number you got off your calculator, it will be marked wrong and you'll get zero credit. The point is: you must write code that computes the answer from the given data. Late assignments will not be accepted for credit. Instead, the lowest assignment score will be dropped. Points for assignments and exams will first be normalized to 100% and then weighted as described above. The resulting numerical score will be converted to a letter grade using the following ranges. 95 ≤ A ≤ 100 90 ≤ A- < 95 86 ≤ B+ < 90 83 ≤ B < 86 80 ≤ B- < 83 76 ≤ C+ < 80 73 ≤ C < 76 70 ≤ C- < 73 65 ≤ D+ < 70 60 ≤ D < 65 F < 60 The instructor reserves the right to adjust these ranges down if the grades are skewed too low. Final exam special considerations If the final exam score is higher than the midterm score, the final exam score will replace the midterm score as a result of the cumulative nature of the exam. Course Policies and Honor Code My computer and I will do all grading. If you have issues with grades bring them to me. Collaboration on assignments is highly encouraged. However, what you hand in must be your own work. Good scholarship requires that all collaboration must be acknowledged. Thus, if you collaborate on the solution of a problem set, we expect you to list your collaborators in the space provided at the top of the assignment. Turning in someone else's code as your own is an Honor Code violation. Intentionally failing to acknowledge a collaborator is an Honor Code violation. Collaboration on exams is a violation of the Honor Code. This includes discussion of questions on a quiz, midterm, or final with students who have not yet taken that evaluation. No outside help of any kind is allowed on exams. Honor code violations will be addressed in accordance with University policing. Disclaimer The instructor reserves to right to make changes to the syllabus, including dates. These changes will be announced as early as possible.