CMSE 202#

Computational Modeling and Data Analysis II#

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 building off of lessons learned in your introductory programming class (CMSE 201). The continuation of the introduction to computational modeling and data analysis focuses on standard methods and tools used for modeling and data analysis. Topics may include statistical analysis, symbolic math, linear algebra, simulation techniques, and data mining.

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. Design and write programs to solve common problems in a variety of scientific disciplines.

  2. Identify and analyze appropriate pre-existing techniques, software packages and computing libraries to use in programs to solve scientific problems.

  3. Choose appropriate algorithms and data types to break down scientific problems into manageable components.

  4. Use modern software development methods and tools to construct reusable programs.

  5. Create computer automated workflows to manipulate, analyze and visualize datasets and use this data to evaluate scientific models.

  6. Demonstrate the ability to work in diverse groups to develop scientific software.

  7. Explain the results from a scientific computing problem and present it both verbally and in writing.

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:

  • Finding and using existing software and tools to solve scientific models.

  • Tools for collaborating with other programmers/scientists (Version Control)

  • More experience in programming in Python (i.e., variables and types, functions, simple data structures [strings, lists, dictionaries])

  • Moving beyond the Jupyter notebooks (Command Line Interfaces).

  • Tools to be better programmers and scientists

  • Plotting and data visualization

  • File and dataset manipulation

  • Introduction to scientific computing techniques, possibly including; signal processing, graph theory, machine learning, image analysis.

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!

Required reading materials#

This class has no required book or course pack. 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.

Required materials for class#

In this course, the in-class programming assignments are a critical part of the learning process in this course. To that end, you will need to ensure that you have the following when you come to class:

  • A laptop computer, its power cord, and the ability to connect with the campus wifi. If possible, it would be useful to bring whatever adapter is necessary for you to connect with the classroom monitors so that you can share your computer screen with your fellow classmates.

  • In case we are forced to go virtual, or should a situation present itself where participating virtually is the only viable option, you should also ensure that you have the ability to run the Zoom video conferencing software, which you can download here: https://msu.zoom.us/support/download

Should it become necessary, if you do not have a sufficiently reliable internet connection to log into Zoom during the designated class times to participate in the class virtually, you should notify your instructor immediately to determine how you can best participate in the course and successfully complete the required activities should this situation arise.

You are also expected to have a Slack account (https://slack.com/) and sign up for the CMSE Courses Slack workspace (https://cmse-courses.slack.com/).

The details regarding the software needed for this course are provided in the “Software Setup Guide,” which is linked to on the homepage of the course website.

Course activities#

Class participation: Active, in-person 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 and to actively participate in the in-class discussions and programming activities. If you are unable to attend class in-person for a given class period due to COVID or other concerns, you are expected to work with your professor to determine if remote participation is possible. If it is not, you will be expected to complete the in-class programming assignment on your own and submit it via the course’s Desire2Learn page by the end of the class period (or at the time otherwise specified by your instructor). If you are unable to attend class for an extended period of time, you should contact your instructor to determine how you can best participate in the course and successfully complete the required activities, however, such extended could have a significant impact on your final course grade.

Pre-class assignments: 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 during class. These assignments will typically consist of one or more short videos or reading assignments and related questions or problems and will be due at 11:59 p.m. the night before class via the course’s Desire2Learn page. Completing these assignments will be critical for your success in this course.

In-class programming assignments: Class sessions will be held twice a week and will be broken up into group-based presentations, discussions, and programming activities that will allow you to immediately implement (and get instant feedback on) what you have just learned. In-class programming activities will be either be turned in at the end of the class session via the course’s Desire2Learn page or reviewed and “checked off” by course instructors.

Homework: You will have periodic programming assignments (due roughly every 2-3 weeks) that will provide a more in-depth exploration of the materials covered in class. These will be pursued individually and will be turned in by the given deadline via the course’s Desire2Learn page. In general, homework assignments will cover roughly 2-3 weeks’ worth of material and will be due roughly 3 business days after the last bit of material has been discussed in class. Since these assignments are only due every 2-3 weeks, you can expect that they will require 2-3 week’s worth of out-of-class effort, so you are encouraged to start your assignments as early as possible.

Homework assignments that are submitted late will be accepted for up to two days beyond the due date (i.e., 48 hours past the original deadline).If the assignment is submitted within 24 hours of the original deadline, there is a 10% penalty. This applies even if the assignment is 1 minute late. Similarly, if it is submitted in the 24-48 hour window, a 20% deduction is applied. Again, after the 48th hour, the assignment will no longer be accepted. Your instructor may be willing to provide additional extensions or withhold the late penalty for extenuating circumstances, but you must contact them before the assignment is due to discuss this.

Exams: The intended plan is for this class to have two exams over the course of the semester, a midterm and a final. However, as the semester progresses, should we find that we need to adapt to a new course format, this could be changed to multiple short quizzes which would each be worth a smaller fraction of the overall grade. Should we decide to make this change, you will be notified well in advance of any such quizzes.

Semester Project: This class will have an end-of-semester project 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. These will be group projects and they will likely be presented during the last week of classes. More details on these projects will be available near the middle of the semester.

Course meeting times and locations#

You are expected to attend all scheduled class sessions. If you need to miss class for any reason, you should notify you instructor as soon as you are able. Instructor details and contact information, along with section meeting times, are available on the front page of this website.

Other important information#

Course Website and Calendar: This course has a website where important information regarding the course will be posted (e.g. syllabus, schedule, office hours calendar, etc): https://cmse.msu.edu/cmse202

In addition, this course also uses a Desire2Learn (D2L) page for course assignment management, which can be found at https://d2l.msu.edu. All assignments will be handed in via Desire2Learn unless otherwise specified (e.g. via GitHub). If you cannot access the course D2L page, notify your instructor immediately.

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.

Class discussion: We will be using the team communication software tool Slack to facilitate class discussions. See the Software Setup Guide provided on the course website and by your instructor for information on how to install and use Slack.

Class attendance: This class is heavily based on material presented and worked on during class, and it is critical that you attend and participate fully every week! Therefore, class attendance is absolutely required. Since unexpected situations may arise, all students will be permitted to miss three class periods without penalty. After the first three, an unexcused absence will result in zero points for the day, which includes the in-class programming assignment points. Arriving late or leaving early without prior arrangement with the instructor of your session may be counted as an unexcused absence. Note that if you have a legitimate reason to miss class (such as job, graduate school, or medical school interviews) you must arrange this ahead of time to be excused from class. Six or more unexcused absences will result in the reduction of your grade by one step (e.g., from 4.0 to 3.5), with additional absences reducing your grade further at the discretion of the course instructor. As we continue to face complications created by the COVID-19 pandemic, 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 all of your courses is significantly impacted by any illness, please refer to the University policy on medical leave and withdrawal.

Inclusive classroom behavior: Respectful and responsible behavior is expected at all times, which includes not interrupting other students, refraining from non-course-related use of electronic devices or additional software during class sessions, 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.

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 papers 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 or computer code in the assignments you submit for this course. 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 risk receiving 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, this includes online tutoring services that provide exact solutions. 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.

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.”

Generative AI Policy: CMSE 202 Generative AI Policy. Please note that given the rapid evolution of generative AI technologies, this policy may evolve over time to adapt to new developments and challenges.

Learning 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 best 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 an accommodation, please contact MSU’s Resource Center for People with Disabilities (355-9642) in order to acquire current documentation.

Confidentiality and Mandatory Reporting: College students often experience issues that may interfere with academic success such as academic stress, sleep problems, juggling responsibilities, life events, relationship concerns, or feelings of anxiety, hopelessness, or depression. Our goal is to help create a safe learning environment and to support you through these situations and experiences. All instructors also have a mandatory reporting responsibility related to our roles as University employees. We hope that you feel able to share information related to your life experiences in classroom discussions, in written work, and in one-on-one meetings. We will seek to keep the information you share private to the greatest extent possible. However, under Title IX, we are required to share information regarding sexual misconduct, relationship violence, or information about criminal activity on MSU’s campus with the University including the Office of Institutional Equity (OIE).

Students may speak to someone confidentially by contacting MSU Counseling and Psychiatric Service (CAPS) (caps.msu.edu, 517-355-8270), MSU’s 24-hour Sexual Assault Crisis Line (endrape.msu.edu, 517-372-6666), or Olin Health Center (olin.msu.edu, 517-884-6546).

COVID-19 policy: MSU no longer has 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 allowed absences, but you are still responsible for the content covered. Please contact your section instructor to discuss how to make up missed work and/or adjust deadlines.

Instructor contact information#

Instructor contact information can be found on the home page of this course website.

Instructor office/help room hours and locations#

Office/help room hours will start during the second week of the semester. Office hours may be either in-person or held over Zoom based on instructor preference. The times and corresponding locations can be found here: https://cmse.msu.edu/cmse202-office-hours/

All sections are synchronized as much as is possible and will teach the same topics at roughly the same time - as a result, you can go to any office/help room hours that fit into your schedule. Any course personnel can help you with questions pertaining to the course material, including in-class and homework assignments. Technical questions, including issues with Python and/or Jupyter, should be first directed to your professor, but specific issues with JupyterHub (jupyterhub.egr.msu.edu) can be sent to jupyterhub@egr.msu.edu. If you have issues relating to class administration, including missed classes, illness, VISA issues, or school-sponsored activities please contact the instructor for your section.

Grading information#

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

Activity

Grade (% of total)

Participation, attendance, in-class assignments

15

Pre-class assignments

15

Exams (midterm and final)

20

Homework assignments

25

Semester project

25

Grading scale

4.0 ≥ 90%

3.5 ≥ 85%

3.0 ≥ 80%

2.5 ≥ 75%

2.0 ≥ 70%

1.5 ≥ 65%

1.0 ≥ 60%

0.0 < 60%

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 different from the group 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 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.

Honors project proposals must be submitted and approved before the middle of the semester.

When submitting a Honors Option request form use the following text in the description box:

This honors option requires me to complete a data science project in addition to the final semester project. The deliverables for this project are: source files for any relevant code, a jupyter notebook where the data analysis and/or computational modeling is performed, a video presentation in which I present my findings, a PDF of the slides I used in the presentation, and any other relevant files. The project topic will be discussed with the instructor and finalized after the middle of the semester. I understand than in order to earn the honors option credit, I must receive an overall grade of 3.0 or higher and an honors project grade of 80% or higher.