Computational Modeling and Data Analysis I Syllabus#

Course Description#

A useful definition of computational science is “the use of computers to analyze and solve scientific problems.” Over the course of this semester, we will explore various aspects of computational science and will acquire a variety of practical, fundamental computational skills. In addition, we will explore application-driven modeling of various systems, with applications to the physical, life, and social sciences, and also to engineering and mathematics. While we will learn some computer programming over this semester, the goal is utilitarian – this is a course in applied computing, rather than a course intended for beginning computer science majors!

By the end of this course, you will be able to:

  1. Gain insight into physical, biological, and social systems through the use of computational algorithms and tools.

  2. Write programs to solve common problems in a variety of disciplines.

  3. Identify salient features of a system that can be codified into a model.

  4. Manipulate, analyze, and visualize datasets and use this data to evaluate models.

  5. Have an understanding of basic numerical methods (e.g., numerical integration, differential equations) and be able to use them to solve problems.

  6. Be able to take results from a scientific computing problem and present it both verbally and in writing.

  7. Develop the ability to recognize and articulate the context of data and apply that knowledge to generating and presenting data visualizations.

We will work toward the goals expressed above throughout this course using a range of activities – primarily by writing software both individually and in small groups, but also through discussion, presentations, and other types of exercises.

Topics covered#

The primary topics covered in this course include:

  • Creation of models (making mathematical representations of systems).

  • The basics of functional programming in Python (i.e., variables and types, functions, simple data structures, strings, lists, tuples)

  • Plotting and data visualization

  • File and dataset manipulation

  • Basic numerical techniques, possibly including statistics, linear regression, difference equations, agent-based modeling, numerical integration

Please note that creating models to describe and understand systems (whether they are in the physical, life, or social sciences, or in engineering) is the driving principle of this course – everything else we teach you is in service to this goal!

Course Meetings#

Class sessions will take place in-person, in Room 1220 of the Engineering Building.

Information about the instructor and office hours can be found here.

Required Course Materials#

Reading materials#

This class has no required book or course pack. Course content will be distributed via JupyterBook and can be accessed by the following link: https://msu-cmse-courses.github.io/cmse201-u26-jb.

From time to time we will direct you toward outside online resources, but the main materials will be video lectures, instructor course notes, and software.

Software#

In-class programming assignments are a critical part of the learning process in this course. To that end, you are expected to bring your laptop and its power cord to every class. If you do not have a laptop, or if your laptop won’t run the software that we need for class, please reach out to your instructor ASAP.

See the Software Setup Guide for more information about what software is needed for this course and how to set it up.

Class Attendance#

This class is held in person in room 1220 of the Engineering Building. If you are unable to attend class in person for a given class period due to ilnesss, emergencies or other concerns, let the instructor know as soon as possible. Active class participation (led both by the instructor and by students) is critical to the success of this course. As such, you are expected to attend class every week, bring the required materials and to actively participate in the in-class discussion.

Course Assignments#

Pre-Class Assignments (PCA)#

We will assign short assignments that are due prior to class. The purpose of these assignments is to introduce new material and give you some practice with it so that we can focus on experimentation and implementation in class. These assignments will typically consist of one or more short videos or reading assignments and related questions or problems. These assignments will be completed through CodeGrade, and they are due by 11:59 p.m. the night before class (unless otherwise conveyed to you by your instructor).

In-Class Assignments (ICA)#

Class sessions will be held four times a week, and will be broken up into presentations, discussions, and programming activities that will allow you to immediately implement (and get instant feedback on) what you have just learned. You are expected to make an earnest effort to complete the in-class assignments. You also MUST be present in class to receive credit on these assignments. See the Late Policy section.

Homework#

You will have four programming homework assignments spread throughout the semester that will provide a more in-depth exploration of the materials covered in class. These will be completed on CodeGrade, outside of class. See the Schedule page for due dates. In general, homework assignments will cover roughly 2 weeks worth of material. These assignments take more time to complete than a pre-class or in-class assignment, and they are worth 25% of your grade. So, it is highly encouraged to start working on them as early as they are made available to you.

Semester Project#

This class will have project(s) that will involve synthesizing the computational modeling, data analysis, and data visualization techniques that you learned over the course of the term and presenting it (them) in writing and in an oral presentation. Project proposals will be due at roughly the halfway point of the course. Project presentations will take place during the last class period(s) of the course and/or during the scheduled final exam time. More details on these projects will be available near the middle of the semester.

Exams#

Rather than limiting the exams to one or two high-stakes assessments, this class will have four quizzes over the course of the semester to provide multiple opportunities for you to demonstrate your mastery of the course content. The quizzes will involve active coding and will be designed to test the computational modeling and data science skills that you will learn in the course. These quizzes will take place roughly every few weeks starting a few weeks into the semester. If you have to miss a quiz for any reason, do you best to notify your instructor before you miss the quiz to determine your options for making up the quiz. Making up missed quizzes will require a clear justification or extenuating circumstances. There will be no traditional final exam for this course, but semester project presentations and the final quiz may occur during the scheduled final exam time.

Grading information#

There are a variety of course activities, with percentage of the total grade listed. More detailed descriptions of each activity can be found in the above section.

Component

Percentage of total grade

Code Porfolio

5%

Pre-Class Assignments

15%

In-Class Assignments & Attendance

15%

Homework Assignments

20%

Quizzes

20%

Semester Project

25%

Grading Scale#

At the end of the semester, your grade will be calculated using the following scale:

Percent Range

Grade

≥ 90%

4.0

85-89%

3.5

80-84%

3.0

75-79%

2.5

70-74%

2.0

65-69%

1.5

60-64%

1.0

< 60%

0.0

Note: Grades will not be curved - your grade is based on your own effort and progress, not on competition with your classmates.

Honors Option#

You can complete an honors option for this course. The honors option requires that you complete an additional project on a topic that is substantively different than the project you are already required to complete. You must receive an honors option project grade of 80% or higher and must achieve an overall grade of 3.0 or higher in the course. If you are interested in pursuing the honors option you should meet with your course instructor within the first two weeks of the course to indicate your interest and develop a project plan. Project proposals and the Honors Option Agreement Form must be submitted and approved before May 31st.

Late Assignments Policy#

Late assignments will have points deducted as shown in the below table.

Hours Late

Penalty

> 0 Hours Late

-10%

24-48 Hours Late

-25%

> 48 Hours Late

-100% (no credit)

To reiterate, if an assignment is >48 hours late, it will no longer be accepted. This is because each assignment builds off material learned in previous assignments, so it is important not to fall far behind. This is especially true during the accelerated summer semester, when there four class sessions, four PCA, and four ICA each week.

If you know that an assignment is going to be later than 48 hours, email the instructor as early as possible. Exceptions can be made at the instructor’s discretion.

Attendance Policy#

Attendance is vital to this course and to the completion of in-class assignments. As such, credit for in-class assignments is only given if you attended the class session for that day. If you arrive significantly late or leave significantly early, it may be considered an absence.

However, we understand that there are many valid reasons why you might be unable to attend, including illness, emergencies, conferences, etc. If you are unable to attend, please notify the instructor as soon as possible. If your absence is excused and you complete the ICA outside of class, it will be graded with no penalty.

If you don’t notify the instructor until after the assignment is graded, exeptions may be made entirely at the instructor’s discretion.

Asynchronous Discussion#

We will be using Microsoft Teams as our means of communicating about course content as the semester progresses. This Teams chat is primarily intended as a way for you, the students, to help each other.

Important Notes:

  1. The instructor will monitor the chat to answer questions about the course, but they will not help with homework problems. If you need help with assignments, please attend office hours.

  2. Do not post your solutions to out-of-class assignments directly into Teams unless prompted by an instructor.

  3. Be courteous to everyone on Teams. Students who are being rude or who are excessively posting might be banned from posting on the course Teams channel.

Academic Honesty#

Intellectual integrity is the foundation of the scientific enterprise. In all instances, you must do your own work and give proper credit to all sources that you use in your submitted work and oral presentations – any instance of submitting another person’s work, ideas, or wording as your own counts as plagiarism. This includes failing to cite any direct quotations in your written work, during class discuss, or oral presentation. The MSU College of Natural Science adheres to the policies of academic honesty as specified in the General Student Regulations 1.0, Protection of Scholarship and Grades, and in the all-University statement on Integrity of Scholarship and Grades, which are included in Spartan Life: Student Handbook and Resource Guide. Students who plagiarize will receive a 0.0 in the course. In addition, University policy requires that any cheating offense, regardless of the magnitude of the infraction or punishment decided upon by the professor, be reported immediately to the dean of the student’s college.

It is important to note that plagiarism in the context of this course includes, but is not limited to, directly copying another student’s solutions to assignments that are expected to be completed individually (pre-class assignments, homework problems, and exams); copying materials from online sources, textbooks, or other reference materials without citing those references in your source code or documentation, or having somebody else do your individual assignments (pre- class assignments, homework problems, and exams) on your behalf. Any work that is done in collaboration with other students should state this explicitly, and their names as well as yours should be listed clearly. When collaborating with other students, you should still be coding/writing your own solutions to the assignments and should limit your collaboration to conceptual discussions about how one might go about solving the problems, not sharing exact solutions.

Furthermore, while we do not prohibit the use of generative AI tools (chatGPT, DALL-E, Co-pilot, etc.) in this course, you are expected to use generative AI as a resource, not to produce answers in their entirety. You are asked not to use any generative AI tools until Day 7 so that we can provide you with appropriate guidance for how to use generative AI tools to support, rather than circumvent, your learning. If you use generative AI tools for any classwork, you a required to cite your usage, including any prompts/outputs. If you use used code produced by generative AI tools, you are responsible for understanding exactly how and why it works to solve the problem. Failure to demonstrate this understanding may result in a grade reduction.

As the use of generative AI tools in coursework is a rapidly evolving area, we reserve the right to adjust this policy throughout the semester. Any changes will be announced to students.

More broadly, we ask that students adhere to the Spartan Code of Honor academic pledge, as written by the Associated Students of Michigan State University (ASMSU):

“As a Spartan, I will strive to uphold values of the highest ethical standard. I will practice honesty in my work, foster honesty in my peers, and take pride in knowing that honor is worth more than grades. I will carry these values beyond my time as a student at Michigan State University, continuing the endeavor to build personal integrity in all that I do.”

Other important information#

Accommodations: If you have a university-documented learning difficulty or require other accommodations, please provide your instructor with your VISA as soon as possible and speak with them about how they can assist you in your learning. If you do not have a VISA but have been documented with a learning difficulty or other problems for which you may still require accommodation, please contact MSU’s Resource Center for People with Disabilities (355-9642) in order to acquire current documentation.

COVID-19 policy: MSU does not currently have a mask mandate in place, but any student or instructor should feel welcome to wear a mask. You should expect to follow MSU policies outlined on the Together-We-Will website.

If you have to miss class due to illness or self-isolation (as per the CDC recommended guidelines), your instructor will work to provide the necessary accommodations to ensure that your performance in class is not significantly impacted. However, should you find that your overall success in your courses is significantly impacted by any illness, please refer to the University policy on medical leave and withdrawal.

If you are testing positive for COVID or have symptoms of COVID, please isolate and do not attend class in person. Absences due to COVID will not count towards the two absences allowed class, but you are still repsonsible for the content covered. Please contact your section instructor to discuss how to make up missed work and/or adjust deadlines.

Course Website and Calendar: Content will be distributed via a JupyterBook found at this location: https://msu-cmse-courses.github.io/cmse201-u26-jb. Accompanying course information, including the official course calendar, can be found on this website as well. This course also uses a Desire2Learn (D2L) page for course organization, which can be found at http://d2l.msu.edu. All assignments will be submitted via D2L (or via CodeGrade which can be accessed through D2L).

Email: At times, we will send out important course information via email. This email is sent to your MSU email address (the one that ends in “@msu.edu”). You are responsible for all information sent out to your University email account, and for checking this account on a regular (daily) basis.

Inclusive classroom behavior: Respectful and responsible behavior is expected at all times, which includes not interrupting other students, turning your cell phone off, refraining from non-course-related use of electronic devices, and not using offensive or demeaning language in our discussions. Flagrant or repeated violations of this expectation may result in ejection from the classroom, grade-related penalties, and/or involvement of the university Ombudsperson. In particular, behaviors that could be considered discriminatory or harassing, or unwanted sexual attention, will not be tolerated and will be immediately reported to the appropriate MSU office (which may include the MSU Police Department).

In addition, MSU welcomes a full spectrum of experiences, viewpoints, and intellectual approaches because they enrich the conversation, even as they challenge us to think differently and grow. However, we believe that expressions and actions that demean individuals or groups comprise the environment for intellectual growth and undermine the social fabric on which the community is based. These demeaning behaviors are not welcome in this classroom.

Emergency Situations: In the event of an emergency, when in doubt, please dial 911. If there is an active shooter situation, be prepared to follow these recommendations provided by MSU Police for how to react given the scenario at hand. In STEM 3201, anyone can also press the Green emergency button which will lock down the classroom and contact emergency services. You should also follow any alerts or notifications you receive from the MSU alert system.