EAS 503#
Welcome to EAS503! EAS503 is a course taught in the Department of Engineering & Applied Sciences at the University at Buffalo
Course Information#
Course Name: Python for Data Scientists
Course Number: EAS 503
Level: Graduate
Credits: 3
Prerequisite: None
Description: Whether you are a beginner looking to embark on a data-centric journey or an experienced programmer aiming to enhance your skill set, this course offers a complete package that covers Python programming, SQL database management, data visualization techniques, and foundational machine learning concepts.
Registration: Students interested in enrolling outside of the MS and MPS Data Science program should fill out a force registration request: https://academics.eng.buffalo.edu/
Course Content#
Quizzes (9) - 25%
Programming Assignments (9) - 45%
Individual Mini-Projects (2) - 20%
Individual Final-Project (1) - 10%
Quizzes#
Assessment Format: Throughout the course, there will be a total of 9 open-note quizzes that you will complete via UB Learns.
Quiz Availability: Quizzes will be accessible on Saturdays.
Completion Window: Once a quiz is posted, you will have a window of three days to attempt your quiz. Please ensure you manage your time effectively within this period.
Time Limit: When you begin a quiz, you will be allotted three hours to complete it. Each quiz is designed as an individual assignment, and you are expected to work independently.
Academic Integrity: Collaboration is not permitted during quizzes. Use only authorized resources, namely the course website, while working on quizzes. Any collaboration with others or unauthorized external resources will result in a score of 0 for the quiz. Cases of academic integrity violations will be reported to the Office of Academic Integrity. You will find a link to the course website accessible within the quiz through the lockdown browser.
Respondus Lockdown Browser Requirement: Quizzes must be taken using the Respondus LockDown Browser. It is important to familiarize yourself with this browser by completing the practice quiz as soon as possible. Technical issues on the day of the quiz will not warrant extensions, as you have the opportunity to practice and seek clarifications beforehand.
Camera Requirement: A functional camera is essential for the duration of the quiz. Your camera should capture you within the frame throughout the quiz. Any instances of being out of frame or displaying a black screen will result in an automatic score of 0 for the quiz.
UB ID Verification: Prior to beginning the quiz, you will undergo a verification process where you must display your UB ID. Failing to do so may result in a score of 0 for the quiz.
Quiz Location: While you have the flexibility to take the quiz from any location, it’s important to emphasize that collaboration with anyone else is strictly prohibited during the quiz. Any instances of collaboration will be reported to the Office of Academic Integrity.
These quiz policies are in place to ensure a fair and consistent assessment environment for all students. By adhering to these guidelines, you demonstrate your commitment to academic integrity and your dedication to mastering the course material. If you have any concerns or questions, please feel free to seek clarification from the course instructor. Your success in this course is a result of your individual effort and commitment to ethical academic practices.
Programming Assignments#
In this course, programming assignments are a crucial component of your learning experience. To facilitate this, please note the following guidelines:
Codio License Requirement: A Codio license, priced at $48, is necessary for completing programming assignments. This platform will be the designated environment for assignment completion and evaluation.
Assignment Platform: All programming assignments will be both assigned and evaluated exclusively on the Codio platform. It is essential to familiarize yourself with Codio’s interface and tools to ensure a seamless assignment process.
Submission Protocol: To have your programming assignments graded, you must submit them through the Codio platform. Submissions made via UB Learns will not undergo the grading process.
Submission Retries: You have the flexibility of unlimited submissions and retries for each assignment up until the specified deadline. This approach encourages iterative learning and allows you to refine your solutions over multiple attempts.
Grade Contest Period: Following the completion of the assignment evaluations, you will have a window of seven days to contest your assigned grade. This timeframe offers an opportunity to seek clarification and address any concerns you may have regarding the grading process.
The programming assignments are designed to enhance your practical skills and reinforce the theoretical concepts covered in the course. By adhering to these guidelines and utilizing the Codio platform effectively, you can make the most of these assignments and achieve a deeper understanding of the material. If you encounter any challenges or require assistance, please don’t hesitate to reach out to your instructor for support. Your success in these assignments contributes significantly to your overall mastery of the course content.
Mini-Projects#
In this course, we introduce the concept of mini-projects, which serve as extended versions of our programming assignments. Here’s what you need to know:
Nature of Mini-Projects: Mini-projects are designed to provide you with a deeper engagement with the course material. They encompass more complex tasks compared to regular programming assignments.
Codio Utilization: Similar to programming assignments, mini-projects will be both assigned and assessed using the Codio platform.
Grade Contestation Period: Following the completion of the mini-project evaluations, a window of seven days will be provided for you to contest your assigned grade. This timeframe is designed to offer you an opportunity to seek clarification and address any concerns regarding the grading process.
By engaging actively with the mini-projects, you will refine your programming skills, gain a deeper understanding of the subject matter, and apply your knowledge to real-world scenarios. If you encounter any difficulties or require guidance, feel free to communicate with your instructor for assistance. Successfully completing these mini-projects is integral to your comprehensive learning journey in this course.
Final Project Overview#
The final project is an individual, intensive endeavor designed to showcase your skills in data analysis, machine learning, and deployment. Below are the detailed requirements and steps to guide you through the project:
Project Requirements:
Data Selection:
Choose a dataset with a significant number of data points to address a classification problem. The dataset must contain more than 1,000 rows and be in CSV format.
Data Parsing:
Use basic Python (without Pandas) to parse the data. Ensure that you follow guidelines for extract and transformation structure.
Data Normalization and Database Loading:
Normalize the data and load it into a database. Ensure that your database normalization is approved by the TA.
Data Querying:
Write SQL join statements to query the necessary data and load it into Pandas for further analysis.
Machine Learning:
Utilize Python machine learning libraries to perform classification tasks.
Experiment Tracking:
Use MLFlow and DagsHub to record and track your experiments.
Deployment:
Create and deploy a Docker container for your inference/classification pipeline.
User Interface:
Develop a Streamlit app to interact with your classification pipeline.
Project Presentation:
Create a JupyterBook website to host and document your project.
Record a 12-minute presentation following a strict rubric to showcase your project.
Submission:
Submit the following on UB Learn by Wednesday, Dec. 18, 2024 11:59PM:
MLFlow/DagsHub experiments
Docker Hub link to your container
Streamlit app
JupyterBook website
UB Box link to the recorded 12-minute presentation
A completed rubric checklist sheet that aligns with the project requirements.
Late Submission Policy#
Understanding the late submission policy is crucial to managing your assignment deadlines effectively. Here’s how it works:
Late Days Allocation: You have a total of 10 late days at your disposal. These can be utilized to submit programming assignments and mini-projects after their original due date.
Maximum Delay: It’s important to note that no assignment can be submitted more than 3 days after its original due date. This ensures a fair and consistent assessment process for all students.
By utilizing your allocated late days wisely, you can navigate unexpected challenges while maintaining a balanced approach to assignment completion. Remember that efficient time management remains key to your success in the course. If you have any questions or need further clarification, don’t hesitate to seek guidance from your instructor.
Course Resources#
Throughout the course, you’ll have access to a variety of resources that are vital for your learning journey. Here’s where you can find them:
Course Book: The course book will be available on this website: Course Book.
Lecture Materials: Lecture Jupyter notebooks will be hosted on GitHub: Lecture Notebooks. These materials supplement your in-class learning and serve as valuable references.
UB Learns: UB Learns will serve multiple purposes, including:
Submission of the final project report.
Management of your course grades.
Codio: Use Codio to submit your programming assignments. This platform offers a controlled environment for coding tasks and assessments.
Piazza: Piazza will serve as a hub for various activities:
Course announcements and updates.
Queries to the instructor and Teaching Assistant (TA).
Interaction with fellow classmates.
Links to lecture and solution recordings (refer to the pinned post).
Notifications of the latest instructor and TA office hours (refer to the pinned posts).
Displaying the most recent quizzes and assignment deadlines (refer to the pinned post).
These resources are designed to support your learning, streamline communication, and provide easy access to essential materials. Regularly utilizing these platforms will help you stay on top of the course requirements and maximize your understanding of the content. If you ever need assistance or have questions, don’t hesitate to engage with the instructor, TA, or your fellow classmates through these channels. Your active participation is instrumental to your success in the course.
Preparing for the First Class#
A successful start to the course requires a few preparatory steps. Before the first class, ensure you complete the following tasks:
Access UB Learns: Confirm that you can log into the EAS503 course page on UB Learns.
Course Book Access: Ensure you can access the course book available at Course Book. Familiarize yourself with this resource to get a head start on the course content.
Codio Licensing: Verify that you have obtained a license for Codio and can successfully log into the platform.
Piazza Login: Confirm your ability to log into Piazza, where you’ll engage in course discussions, ask questions, and stay updated on course-related matters.
Software Installation:
Install Anaconda, a comprehensive data science platform, from Anaconda Individual Edition.
Install Microsoft Visual Studio Code, from website.
If you have Windows, install Python 3.12 from the App store.
Note
This website will undergo regular updates throughout the semester.
Academic Integrity#
Warning
Academic integrity stands as a cornerstone value within the university setting. By engaging in honest and authentic academic work, students uphold the integrity of the university’s mission to disseminate knowledge and foster innovative ideas. The UB graduate academic integrity policy can be accessed at UB Graduate Academic Integrity Policy.
It is imperative to note that sharing or seeking assistance through platforms such as Chegg, Stack Overflow, and Course Hero in relation to EAS 503 assignments constitutes a violation of the academic integrity policy. The consequences of violating this policy can range from receiving zero points for assignments to expulsion from the university, contingent upon the severity of the violation.
The academic integrity policies specific to this course are as follows:
Submission of identical homework solutions by multiple students will result in all parties involved earning zero points for those shared solutions.
If a student’s identity is verified as the source of uploaded content on any online platform, an automatic failure in the course will be incurred.
Any student positively identified as viewing the solution for any problem, regardless of duration, will receive a score of zero for the problem(s) viewed.
All breaches of academic integrity will be reported to the Office of Academic Integrity. Repeated violations will lead to escalated sanctions.
Embrace sound cyber-security practices. Refrain from granting physical or electronic access to your computer or accounts. Sharing access that leads to another student violating the Academic Integrity Policy makes you liable.
Example 1: Student A is identified as posting an assignment question on Chegg. The consequence is an “F” in the course, along with reporting to the University.
Example 2: Students B and C collaborate on an assignment. Student B provides code assistance to Student C, who utilizes it to complete the assignment. Both students receive a zero for the entire assignment and are reported to the University.
Example 3: Students D and E collaborate verbally but do not share code. No violation of academic integrity occurs.
Example 4: Student F’s non-functional computer leads Student G to allow access. Code copying occurs, resulting in both students earning a zero and reporting to the University.
Submission of work for grading indicates acceptance of the academic integrity policy.
Important Note: If you come across a solution on a website (Chegg), be aware that it could potentially be intentionally placed there by the instructor to identify instances of academic misconduct. Always approach your coursework with integrity and refrain from using any unauthorized resources. Your commitment to academic honesty is essential to your personal growth and the integrity of the educational process.
Codio can detect cheating: Codio’s code editor is the industry-standard editor used in the VSCode IDE. We require you to complete your assignments in Codio partly for autograding reasons but also because Codio has very advanced keystroke analysis tools for generating insights into how students complete their work, including similarity checkers, time spent in error state, external pastes and insertion/deletion tracking. So do not copy and paste your solution from another location. Do all your work inside the Codio editor. All your keystrokes and copy and pastes are recorded and can be played back. External pastes has been disabled.