Tips for COMP116

Introduction to Scientific Programming

The below is taken from the COMP 116 syllabus (Professor John Majikes' version).

Introduction

COMP 116 is where you can learn about programming for computationally oriented scientists.

Scientists use computers to analyze, collect, and visualize data. In this course, you will learn the basics of programming and the basics of data science using problems from the sciences as motivation. You will learn to use computers to gather, analyze, and visualize data. This course will cover problem analysis, algorithm design, plotting, and visualizing data, with examples drawn from simple numerical and discrete problems.

COMP 116 satisfies the General Education, Quantitative Reasoning requirement of 3 credit hours. For students interested in computer science as a major or minor, you should take COMP 110. If after taking COMP 116, you decide you want to take COMP 210 and other computer science courses, there is a manual exception process for doing so. The manual exception process requires that you have received a COMP 116 grade of B or better as a prerequisite for COMP 210.

But be forewarned, that if you are a computer science major, you should be taking COMP 110 and receive a C or better as a prerequisite for COMP 210. Students can receive credit for only one of COMP 110 or COMP 116. COMP 116 is useful for completing the quantitative reasoning requirements of the data science BS/BA/minor.

COMP 116 has a prerequisite of MATH 231.

Textbook: The second edition of Learning Scientific Programming with Python by Christian Hill. You can read the e-book from the UNC library.

Course Learning Objectives

To teach problem analysis, algorithm design, and the elements of programming, with emphasis on 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.

Modular Learning Objectives:

  • Types and operators
    • Determine when to use different types of numbers and lists used when collecting data
    • Differentiate between when to use booleans, arrays, and multi-dimensional arrays in programming
    • Recognize simply objects like date objects and how to use them for data analysis
    • Recognize different types of files and how to analyze the data within them
    • Understand the advantages of NumPy arrays and demonstrate their use in data analysis
  • Program control
    • When doing analysis of data, demonstrate how if, else, and if-then-else statements to control data analysis paths
    • Demonstrate your understanding of iteration by use of for loops in programming
    • Demonstrate your understanding of the benefits of code reuse and code isolation by the use of Python functions
  • Data visualization via graphic
    • Analyze data to create 2D and 3D graphs
  • Scientific techniques
    • Demonstrate your understanding of hypothesis testing
    • Demonstrate your understanding of analysis of variance
    • Creating and analyzing images

Test coverage:

  • Test 1 tentatively will cover primitive data types, NumPy and NumPy arrays, and simple plotting.
  • Test 2 tentatively will cover test 1 along with complex plotting, functions, maybe for loops
  • Test 3 tentatively will cover test 2 along with for loops, sets, dictionaries
  • The final exam will cover everything throughout the semester
  • All tests and exams are cumulative

Professor Brent Munsell's version of COMP116 taught in summer may be a bit different (like he adds "Machine Learning" in the syllabus).

An old video playlist.

Check the Study Strategy.

Support the Author

Donate to the Author