11-637: Foundations of Computational Data Science - Syllabus
Overview
Title: Foundations of Computational Data Science
Units: 12 units.
Pre-requisites:
- Significant programming experience in Python (ability to design, implement and debug non-trivial programs). Ability to pick up other programming languages as needed.
- Understanding of basic statistics (descriptive statistics, hypothesis testing, measure of central tendency).
- Understanding of basic linear algebra.
Online Learning Initiative (OLI) Torus: accessed through https://canvas.cmu.edu
Sail() Platform: accessed through https://canvas.cmu.edu
Piazza: accessed through https://canvas.cmu.edu
Course Activity Calendar: click here
Course Format: Remote Hybrid
- Synchronous:
- 1st meeting of the semester is a live session–details will be sent prior to the start of the course
- The course meets once a week synchronously via Zoom during the scheduled class time
- Asynchronous:
- Students interact with course staff asynchronously via Piazza
- Course materials, such as conceptual learning materials, primers, and tutorial videos, are delivered asynchronously via various Learning Management Systems (LMS)
Course Description
This course introduces foundational concepts, learning material, and projects related to the three core areas of Data Science: Computing Systems, Analytics, and Human-Centered Data Science. Students completing this class will be prepared for further graduate education in Data Science and/or Artificial Intelligence. Students acquire skills in solution design (e.g., architecture, framework APIs, cloud computing), analytic algorithms (e.g., classification, clustering, ranking, prediction), interactive analysis (Jupyter Notebook), applications to data science domains (e.g., Natural Language Processing, Computer Vision) and visualization techniques for data analysis, solution optimization, and performance measurement on real-world tasks.
Course Goals
This course will equip students with the foundational knowledge of computational data science. Students will learn about the Data Science Process by completing projects introducing problem identification, data gathering, exploratory data analysis, supervised and unsupervised learning techniques, model evaluation, and visualizing and interpreting results to inform decision-making. Our goal is that students will develop the skills needed to become a practitioner or carry out research projects in computational data science. Specifically, students are exposed to real-world data and scenarios to learn how to:
- Understand the Data Science Process: From problem identification to ethical data solutions, students will learn to define analytic requirements and frame appropriate questions to guide the solution design process.
- Design and Implement Data Solutions: Develop a robust data-gathering plan that incorporates data governance principles, ensures data integrity, and safeguards data security.
- Analyze and Interpret Data: Apply statistical inference, hypothesis testing, and various data analysis techniques to identify trends, patterns, and outliers in large datasets.
- Develop Data Models and Algorithms: Build and evaluate predictive models using supervised and unsupervised learning techniques, understanding the bias-variance tradeoff and conceptual complexity in model building.
- Process and Analyze Text Data: Gain proficiency in Natural Language Processing (NLP) by exploring language representation, modeling, and implementing NLP tasks and applications.
- Implement and Evaluate Advanced Models: Learn to select appropriate models, interpret their results, and deploy them effectively while understanding the nuances of model selection and interpretability.
- Harness Deep Learning Techniques: Understand the differences between CPU and GPU computation and apply deep learning methods in areas like computer vision.
- Explore Advanced NLP Techniques: Delve into advanced NLP methodologies like transformers and BERT, gaining insights from cutting-edge research in the field.
Through this process, we aspire for our students to become independent and resilient problem solvers who can overcome challenges and learn.
Course Topics
In this project-based course, we have projects and conceptual learning objectives.
Conceptual Learning Objectives
The course content will be structured into the following units:
Unit # | Title | Modules and Description |
---|---|---|
1 | From Problem Identification to Ethical Data Solutions | Problem Identification Distilling the Analytic Objective Data Science Lifecycle Data Collection Ethics of Data Science |
2 | Structures, Algorithms, and Systems | Data Structures Sparse Matrix Recommender System Matrix Factorization Linear Algebra with Numpy |
3 | Data Exploration and Preparation | Performing Exploratory Data Analysis Statistical Inference & Hypothesis Testing Feature Engineering |
4 | Analytic Algorithms and Model Building | Supervised and Unsupervised Techniques Bias/Variance Tradeoff [Research paper] Conceptual Complexity and the Bias/Variance Tradeoff |
5 | Text Data & Natural Language Processing | Introduction to Natural Language Processing Language Representation and Modeling NLP Tasks, Applications, and Practical Implementation |
6 | Model Lifecycle: Selection, Evaluation, and Deployment | Model Selection Metrics and Intepretation [Research paper] Manipulating and Measuring Model Interpretability Model Deployment |
7 | Deep Learning | CPU vs. GPU Deep Learning Computer Vision |
8 | Advanced Natural Language Processing | Language Representation and Transformers BERT [Research paper] Attention Is All You Need |
Projects
The programming projects are geared towards providing hands-on experience with the following topics:
Project 1: Data Structure Selection and Optimization for Large Data Sets
The growth of the home-sharing and short-term rental markets have presented opportunities and challenges for communities globally. While for some, it encourages tourism and provides additional income streams, for others, it exacerbates the shortage of affordable housing. Your goal is to create a website that computes and shares the relevant analyzing results by scraping a data set from the Airbnb website and implementing a helper website that provides a responsive, user-friendly interface that computes analytic results on the fly. In this project, you will get hands-on experience with different data types and data structures and will make decisions on which data structure to apply by analyzing the performance differences caused by different approaches. You will explore different caching strategies and understand time differences in read/write operations from and to different data storage implementations.
Project 2: Problem Representation
Product review is a rich source of data for any business and can be used to improve customer experience, for example, by recommending new products that cater to the customer’s preference (think Amazon or Netflix). In this project, students will use a dataset of product review ratings to implement a simple recommender system using the collaborative filtering approach. The project will help students understand different representations of the collaborative filtering problem as well as the runtime and storage tradeoff in each representation.
Project 3: Domain Analysis and Exploration
Exploratory data analysis and visualization is a critical step to analyzing data, understanding feature correlations, and ultimately preparing the data for predictive modeling. In this project, students will utilize the Climate Change and Food Production dataset to preprocess data and generate visuals such as bar charts, heatmaps, and time series analysis graphs. By merging two different data sets, students can visually observe how climate change has influenced food production over the years. This project will help with understanding how to preprocess data and generate meaningful visuals to draw inferences.
Project 4: Domain Data Preparation
Advances in the internet and in search engines have provided us with unparalleled access to data; with a simple search query, you can acquire countless data points from several sources, including social media, news articles, and even research papers. An experienced data scientist should be able to build their own dataset on any given topic by performing the necessary data collection and processing tasks. This project will introduce students to a variety of toolkits for retrieving text data and for transforming them into a format suitable for numerical computations.
Project 5: Machine Learning and Model Performance
Machine learning has become a very popular field in recent years due to its transformative applications coupled with the availability of good datasets in various domains. A large number of machine learning libraries and tutorials have also greatly reduced the entrance barriers to the field. On the other hand, one still needs a solid understanding of the underlying data and mathematics principles to properly utilize existing machine learning tools. For example, machine learning methods typically work best when the hyperparameters are tuned based on the dataset at hand, yet care must also be taken to preserve the boundary between training and testing data. This project will provide students with hands-on experience in some of these areas.
Project 6: Model Deployment and Comparison
Deep learning has transformed many modern technologies, from language translation to self-driving cars. At the same time, the abundance of deep learning libraries and frameworks now allows us to become not just users but also developers of deep learning applications. This project will provide you with hands-on experience in building and deploying convolutional network models in a practical setting, using PyTorch and Azure cloud resources.
Project 7: Evaluation Optimization
One of the major phases of any machine learning pipeline is the evaluation and optimization of models based on the results of successive evaluations. In this project, you will use the SQuAD dataset to build a question answering system, utilizing various techniques for data preprocessing and question answering tasks while understanding the strengths and weaknesses of each technique. This project will help you understand the various perspectives on how to optimize solutions in machine learning as you apply different techniques, as well as the caveats for each technique you consider.
Project Learning Objectives
The project learning objectives (LOs) are designated below. Students will be able to:
Item | Description |
---|---|
Computer Systems and Data Structures | - Implement a variety of basic data structures and algorithms in pure Python - Consider the differences between different data structures, and decide on the best one given performance limitations. - Optimize Python code to hit performance benchmarks. |
Problem Representation | - Read data and perform basic table operations in Pandas. - Use Numpy operations and sparse matrix to perform efficient computations on large datasets. - Acquire a basic understanding of recommender systems in general and collaborative filtering in particular. |
Domain Analysis and Exploration | - Formulate functional and non-functional requirements for an envisioned data-driven solution to a business/research problem. |
Domain Data Preparation | - Use HTTP request, web scraper, and pdfminer to retrieve data from a variety of sources, leveraging both structured, semi-structured, and unstructured data to build holistic views of user experience and deliver targeted analytic solutions. - Perform data cleaning and preprocessing using appropriate API to allow for the organization of the data. |
Machine Learning and Model Performance | - Build and deploy a machine learning model using the appropriate analytic algorithms (such as linear, and logistic regression, and SVM) to gain an understanding from data, make predictions to solve business problems and inform decision making. - Experiment with different corpus models to perform multi-class classification on datasets. - Interpret domain problems as instances of data science task patterns, including classification, regression, ranking, and clustering. |
Model Deployment and Comparison | - Compare the performance of (training or deployment) for a subset of solutions on CPUs vs. GPUs. - Use model evaluation metrics to assess the goodness of fit between a model and data and cross-validation frameworks to evaluate predictive models. - Select appropriate visualization techniques to facilitate understanding of model performance and support error analysis. - Gain familiarity with machine learning on Microsoft Azure. |
Optimization of Model Performance | - Develop a QA system using the SQuAD dataset. - Use various techniques to develop closed-domain QA systems ranging from unsupervised learning methods of Jaccard overlap, tf-idf vectors, and leveraging the syntactic information in the sentences through abstract syntax trees to supervised learning methods, including simple linear models like logistic regression and state of the art language models like BERT. - Gain familiarity with machine learning on Microsoft Azure. |
Course Organization
Your participation in the course will involve several forms of activity:
- Reading the online coursework content for each unit on OLI Torus.
- Completing the formative activities (practice quizzes) for each unit.
- Completing the synchronous and graded checkpoint weekly quizzes for each unit during class meetings.
- Completing and submitting projects through Sail() Platform for feedback and achievement scores.
- Participating in the synchronous online programming exercise as assigned.
Assessment
OLI Torus
Practice Quiz (Did I Get This?)
Practice quizzes (Did I Get This?) are non-graded retrieval practices found integrated into each module page on OLI Torus. These quizzes assess your understanding immediately after you engage with the reading materials. Completing the practice quizzes provides excellent signals on your weekly summative (graded) in-class quizzes.
You are strongly recommended to complete the practice quiz before the synchronous in-class quiz. If you missed many of the questions in the quiz, it is suggested that you review the material again.
Weekly In-Class Quiz
Each week, during synchronous class meeting time, students will spend 10 minutes of class time completing the quiz. The quiz assesses the reading contents on OLI Torus the preceding week and is graded. When it is time to take the quiz, students log into OLI Torus to start. A timer will activate once the quiz starts and cannot be paused. The quiz will automatically stop after the time allowance. The student’s work will automatically be submitted and graded by the OLI Torus system.
Students will have only a single attempt to complete the weekly quiz on OLI Torus.
Sail()
This course includes seven individual project themes. Each project theme consists of several project modules. A project module must be completed based on the deadlines on Sail() Platform. The write-up required to complete each project module is available on Sail() Platform. Each module has a submission process that is specific to the project module that is due. It is the student’s responsibility to ensure all project work is completed and the project module is submitted before the deadline. Students typically have multiple attempts to submit the project module on Sail() Platform.
Online Programming Exercise (OPE)
On the Sail() Platform, you will also see two OPE (Online Programming Exercise) activities: a practice OPE and an OPE after Project 3. These are synchronous team-based exercises to expand your knowledge on the topics of the preceding projects. Each OPE is associated with a project and accounts for 5% of that project’s grade. The first OPE, “OPE: Practice,” is ungraded.
Manual-graded Components
In Project 3 and the final exam, some components are manually graded questions. Students must submit a pdf or images of their work on Gradescope for manual grading. It is crucial for students to meticulously follow the submission guidelines on Gradescope, ensuring that each image or page of their write-up is accurately associated with the relevant question. Any deviation from this process, leading to an unlinked or incorrectly linked submission, will be treated as an invalid response and will automatically receive a grade of zero.
Final Exam
The final exam consists of three parts: the coding component, the write-up, and the conceptual quiz. Each of these is designed to assess different skills and knowledge acquired throughout the course.
Coding Component on Sail() (30 points):
- Similar to the format of the seven prior projects, students will work on the coding component using Sail().
- There is no limit on the number of submissions, but the final grade for this component is based on the most recent submission, not the highest score.
- The autograder on Sail() will not run your notebook code; it will only grade the model deployment part by sending POST requests to your endpoint, with a runtime limit of 70 seconds.
- Students can use Azure ML Studio exclusively for model deployment, while other steps can be completed in any chosen environment.
- After submission, students can check their model's accuracy and their score on the "My Submissions" tab in Sail().
Write-up Component on Gradescope (40 points):
- A set of write-up questions is included at the end of the coding component notebook.
- Students should type their responses directly in the notebook and submit a PDF or images of their work to Gradescope for manual grading.
- Students must adhere strictly to the Gradescope instructions to guarantee that their submitted images or pages are correctly linked to the designated question in their write-up. Failure to properly link work to the corresponding question will result in a zero grade, as our system will categorize it as an invalid response.
- Submissions can be made any number of times before the final exam deadline on Gradescope, with the final grade based on the latest submission.
- A grace period of 12 hours is available on Gradescope, but submissions in this period will incur a 20% grade penalty. Submissions after this grace period will not be accepted.
- It's important to note that the Sail() submissions will not be checked for the write-up; only submissions to Gradescope will be considered for grading.
Conceptual Component on OLI Torus (30 points):
- This comprehensive quiz covers all course modules and must be completed during class time as per the schedule found in the course calendar.
- The quiz comprises 15 questions with a 30-minute time limit and is independent of the coding and write-up components.
- All components of the final exam must be completed within the designated final exam period, and no extensions will be granted. This structure ensures a comprehensive evaluation of the skills and knowledge acquired in the course.
End-of-course Survey
An end-of-course survey will be distributed around the final exam week. The survey aims to gather constructive feedback from students for further improvement and development of the course. To thank you for your time, students will be awarded 2% of the overall course grade for survey completion.
Grade Distribution
Type | Weight |
---|---|
OLI Torus Content Checkpoint Quizzes (drop the lowest score) | 15% |
P0 | 3% |
P1 | 10% |
P2 | 10% |
P3 | 10% |
P4 | 10% |
P5 | 10% |
P6 | 10% |
P7 | 10% |
Final Exam | 12% |
End-of-course Survey | 2% |
Total Grade | 102% |
Letter Grade Thresholds
There is no fixed set of thresholds for grades. Our grading process employs the normalization of scores using statistical techniques to calculate the mean and variance. Individual grades are determined based on the standard deviations from the mean. Due to this variation, we generally do not disclose these thresholds.
Getting Help
Piazza
The best communication portal to inquire about coursework-related matters is Piazza (see the Overview for Piazza link). For urgent communication with the teaching staff, it is best to post on Piazza and then send an email for a timely response.
Office Hours (OH)
The teaching staff holds office hours weekly to assist students with any course-related matters. Students can find the office hours schedule in the Google Calendar provided in the Overview. Before joining the Zoom meeting rooms, students must join the OH Queue, as only those on the queue list will be invited to the meetings. Students attending office hours should join the OH queue, regardless of the queue’s current status. Doing so allows TAs to better prepare for students’ questions, helps maintain an orderly queue, and ensures students can track their place in line without concern.
Designated TA / Extra-help OH
Students will be assigned a designated TA who will be their primary contact for course-related matters. It is important to note that students are not limited to attending only their designated TA’s office hours; they are encouraged to interact with all course staff as needed.
Designated TAs also provide students with special extra-help OH if additional assistance is required. These extra-help sessions are separate from the regular office hours and follow a separate schedule. This offers students a valuable opportunity to receive extended support whenever needed.
Policies
Collaborations
The goal of student collaboration is to promote learning, not to impede it. Students are encouraged to study the material in groups and seek help from other students in understanding the content necessary to solve a specific coursework problem, as long as any written notes (including code) are made on an impermanent surface (e.g., whiteboard, chalkboard), and learning is facilitated rather than circumvented. Students are strictly not allowed to share or compare answers or screen share their work with each other. Each student must complete the actual solution individually.
A suitable method for collaboration is to meet with fellow students and discuss ideas at a high level, but not to copy notes from one another or a whiteboard. Any rough work during this time should be solely the student’s own. Before writing the assignment solutions, students should ensure that they work alone, put all notes away, close all computer tabs, and complete the task independently without using other resources.
Academic Integrity
The university encourages each student to thoroughly review the academic integrity policy, which details expectations regarding cheating, plagiarism, and unauthorized assistance. Every student has a responsibility to produce their own original academic work. Collaboration or assistance on graded assignments is only permitted when explicitly authorized by the course instructor. All quizzes and projects must be solely the work of the individual submitting them. As student work on the cloud is logged, submitted work will be closely monitored by automatic cheat detectors. Students may be asked to explain suspicious similarities with any code available. The following guidelines will help clarify what is considered cheating and what is not:
Cheating includes:
- Sharing code or other electronic files by copying, retyping, looking at, or providing a copy of any file. This also includes copying code from the internet (e.g., StackOverflow or GitHub). No code should be used to “test” the auto-grader – everything submitted must be the student’s original work.
- Copying answers to any checkpoint quiz from another individual, published or unpublished written or electronic sources.
- Collaborating with another student or individual on checkpoint quizzes or project modules.
- Sharing written work, looking at, copying, or providing work from another individual, published or unpublished written and electronic sources.
What is not considered cheating:
- Seeking clarification on ambiguities or vague points in-class handouts.
- Assisting others in using computer systems, networks, compilers, debuggers, profilers, or system facilities.
- Helping others with high-level design issues.
- Guiding others through code debugging but not debugging for them.
- Collaborating with other students following the aforementioned guidelines.
Cheating on projects will also be strictly monitored and penalized. Be mindful of what constitutes cheating (and what does not) when interacting with fellow students. Sharing or using written code and other electronic files from students is not allowed. If in doubt, please reach out to consult the teaching staff.
Ensure that your work is stored in secure directories. The consequences of cheating are severe and can jeopardize your future career – cheating is not worth the risk. By cheating in this course, you are only cheating yourself, missing out on valuable learning opportunities. Furthermore, cheating can result in removal from the course with a failing grade and a permanent record on the student’s record.
To ensure academic integrity, we will rigorously use cheat detection tools and other methods to identify unauthorized code use from this term, past terms, or sources available online. Any violation will result in a formal Academic Integrity Violation (AIV) report to both the university and the program. The typical consequence for such an infraction is receiving a failing grade for the course, although lesser penalties may be applied based on the severity of the infraction. For detailed information about specific penalties, please refer to your course syllabus.
P/NP Grades
MCDS students cannot take this course P/NP. Non-MCDS students could take this course P/NP should your program permit.
To be considered a passing grade in the course, all students must be met the following two conditions:
- All projects (including the final exam) must be attempted, and at least some grades before the deadline must be non-zero.
- Each of Project 2 (Problem Representation), project 6 (Model Deployment and Comparison), and Project 7 (Evaluation Optimization) must achieve at least 80%, without accounting for discussion and reflection.
These requirements are in addition to the standard grade scale evaluation criteria. Suppose you fail to fulfill these requirements by their respective deadlines. In that case, you must contact us after the deadlines to continue fulfilling them until you meet the thresholds. Only after then would you be considered to have met the threshold requirements. However, any grade you achieve after the deadlines will not be counted toward the final grade calculation.
Previously Used Assignments
It is important to note that some of the assignments (including the projects, quizzes, and the final exam) may have been utilized in previous iterations of the course. Solutions to these tasks might be accessible online or through other individuals and sources. We encourage you to embrace the challenge and complete the assignments independently. Please refrain from using external resources or consulting with individuals who have previously solved these problems. Avoid searching for these problems or their solutions on the internet. By doing so, you will truly enhance your learning experience. We will be actively supporting your journey to ensure compliance with these guidelines. Collaboration with fellow students currently enrolled in the course is permitted if it adheres to the abovementioned collaboration conditions.
You may incorporate elements of general knowledge from previous courses into your current work. This includes using pre-existing code for functions like linked lists or processing command-line arguments. However, it’s essential to provide clear attribution for any reused code, specifying the source and clearly delineating the start and end of the incorporated material.
If you have previously completed any of the previous components of the course in a prior semester, it is mandatory to discuss this with an instructor at the start of the term. Together, we will establish guidelines regarding which parts of your previous solutions are permissible for reuse. Please note that reusing any code, even your own, without explicit permission from an instructor is strictly prohibited.
Grace Days
For Projects on Sail():
Grace days provide students an extension without penalty to complete work. Each grace day extends a project deadline for 24 hours beyond the original deadline. Students can activate grace days after the original deadline and within 24 hours.
Students can use at most two (2) grace days throughout the course. Students can only use up to one (1) grace day for each project.
A tutorial on how to use the Grace Day option on Sail() can be found on Canvas.
For weekly quizzes on OLI Torus:
Weekly quizzes will be taken independently on OLI Torus during the synchronous class meetings. No grace days are available for these quizzes.
For the final exam:
Grace days are not applicable to be used for the final exam. All final exam components must be completed within the final exam period as designated in the course calendar.
AI Assistance
Seeking assistance from an artificial intelligence system (e.g., a large language model such as ChatGPT) is strictly prohibited.
“Found Code”
Students are encouraged to explore various online and offline resources, such as books and instructional materials, to deepen their understanding of the learning materials presented in class. These resources may include an example or pseudo code, which can help clarify an algorithm or implementation detail. However, when crafting a unique solution for an assignment, students must set all materials aside and develop their code entirely independently, starting “from scratch.” It is important not to use any code found or encountered in the process. If students encounter code that implements any portion of their assignment, they must disclose this in their collaboration statement. By adhering to this policy, students can ensure a rewarding and authentic learning experience.
Protect One’s Code
Students must actively protect their work from duplication and improper use by their peers. Suppose a student’s work is copied by another individual. In that case, the original author is also deemed responsible and in severe breach of course policies. This applies regardless of whether the author permitted the work to be copied or was simply careless in preventing such an act. When overlapping work is submitted by different students, both parties will face the consequences.
In the interest of supporting future students, please refrain from publicly posting your solutions, both during the course and after its completion. By taking these precautions, students contribute to maintaining a fair and inclusive learning environment for everyone.
Perpetual Compliance
The rules outlined remain applicable even after the completion of the course. Students are prohibited from sharing any code they have written for this course with future students. This includes storing your code in unsecured repositories or posting it on any web pages. Offering guidance or coaching to future students is also forbidden. Violations by students who have completed the course will still lead to AIV reports and could result in retroactive changes to their grades.
Accommodations
For Students with Disabilities
If you have a disability and have an accommodations letter from the Disability Resources office, I encourage you to discuss your accommodations and needs with me as early in the semester as possible. I will work with you to ensure that accommodations are provided as appropriate. If you suspect that you may have a disability and would benefit from accommodations but are not yet registered with the Office of Disability Resources, I encourage you to contact them at access@andrew.cmu.edu.
Medical Accommodations:
If you require accommodations for medical reasons, please contact Carnegie Mellon University’s Disability Resources to initiate the process. It is important to engage with Disability Resources directly for all accommodation requests, as they are equipped to assess and provide the necessary support in line with university procedures. Please refrain from sending any medical documentation directly to course instructors. As instructors, we are committed to implementing the accommodations approved by Disability Resources to ensure equitable access to our course.
Research to Improve the Course
For this class, we are conducting research on teaching and learning. This research will involve some student work. You will not be asked to do anything above and beyond the normal learning activities and assignments that are part of this course. You are free not to participate in this research, and your participation will have no influence on your grade for this course or your academic career at CMU. If you do not wish to participate, please send an email to Chad Hershock. Participants will not receive any compensation. The data collected as part of this research will include student grades. All analyses of data from participants’ coursework will be conducted after the course is over and final grades are submitted. The Eberly Center may provide support for this research project regarding data analysis and interpretation. The Eberly Center for Teaching Excellence and Educational Innovation is located on the CMU-Pittsburgh Campus. Its mission is to support the professional development of all CMU instructors regarding teaching and learning. To minimize the risk of breach of confidentiality, the Eberly Center will never have access to data from this course containing your personal identifiers. All data will be analyzed in de-identified form and presented in the aggregate without any personal identifiers. If you have questions pertaining to your rights as a research participant or to report concerns about this study, please contact Chad Hershock.
Take Care of Yourself
Do your best to maintain a healthy lifestyle this semester by eating well, exercising, avoiding drugs and alcohol, getting enough sleep, and taking some time to relax. This will help you achieve your goals and cope with stress.
All of us benefit from support during times of struggle. You are not alone. There are many helpful resources available on campus and an important part of the college experience is learning how to ask for help. Asking for support sooner rather than later is often helpful.
If you or anyone you know experiences any academic stress, difficult life events, or feelings like anxiety or depression, we strongly encourage you to seek support. Counseling and Psychological Services (CaPS) is here to help: call 412-268-2922 and visit their website at http://www.cmu.edu/counseling/. Consider reaching out to a friend, faculty, or family member you trust for help getting connected to the support that can help.
If you or someone you know is feeling suicidal or in danger of self-harm, call someone immediately, day or night:
CaPS: 412-268-2922
Resolve Crisis Network: 888-796-8226
If the situation is life-threatening, call the police:
- On-campus: CMU Police: 412-268-2323
- Off-campus: 911
Please let us know if you have questions about this or your coursework.