![](images/uva-logo.png)
SYS 3501-001: Programming for Information Engineering Fall 2024
![](images/laura_barnes.jpeg)
![](images/zhiyuan_wang.jpeg)
![](images/arafat_rahman.jpg)
![](images/ariful.jpg)
Basic Course Information
How do you scrape text data from the web and translate it to features to input into machine learning models to predict mental health? What are the contributing factors to the severity of train accidents? How do you take the contents and attributes of an e-mail to predict if it is spam? How can you harness multi-dimensional, heterogeneous data to analyze complex engineering problems? This course introduces fundamentals of programming in R and Python. In this course, you will learn essential programming concepts necessary to be proficient in R and Python from a practicing systems engineer and data scientist perspective. You will gain confidence in both reading and writing code in both languages, and the tools to build your knowledge base after this course.
Learning Objectives:- Understand essential programming concepts in R and Python and when to use different tools.
- Learn how to use packages in R (tidyverse, ggplot, dplyr) and Python (numpy, scikit-learn, pandas).
- Write code for curating, cleaning, manipulating, and preparing data for analysis.
- Perform exploratory data analysis and apply analytical tools (e.g., regression, random forests, etc.)
- Perform exploratory data analysis and apply analytical techniques to real-world datasets.
- Build and evaluate analytical models and use them for understanding, prediction, and decision making.
- Effectively test and debug source code.
- Leverage cloud-based repository, GitHub, for software version control and collaboration.
CS 1110 or equivalent.
No required textbook to purchase, but below texts will be referenced and students are encouraged to read chapters from:
- R for Data Science by Hadley Wickham et. al.
- R Programming for Data Science by Roger D. Peng
- Using R for Introductory Statistics, simpleR by John Verzani.
- Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython by Wes McKinney.
- Learning Python by Mar Lutz.
Schedule
Disclaimer: The professor reserves to right to make changes to the syllabus, including weekly lab, project, and exam due dates. These changes will be announced as early as possible.
Date | Topic | ||||||||
---|---|---|---|---|---|---|---|---|---|
Wed, Aug 28th | Course Intro & Starting R | ||||||||
Mon, Sep 2nd | Intro to Git & v Github |
Release Lab 1: Data Characteristics & R Basics
Monday August 28, 9:00am (ET).
|
|||||||
Wed, Sep 4th | R Basics | ||||||||
Mon, Sep 9th | Programming with LLMs as a Co-Pilot | ||||||||
Wed, Sep 11th | R Data Exploration & Visualization | ||||||||
Mon, Sep 16th | R Data Exploration & Visualization | ||||||||
Wed, Sep 18th | R Data Exploration & Visualization |
Release Lab 2: R Data Exploration, Visualization & Analysis
Friday September 15th, 9:00am (ET).
|
|||||||
Friday, Sep 20th, 11:59pm (ET) | Due Lab 1 | ||||||||
Mon, Sep 23rd | R Data Exploration, Visualization & RMD Notebooks | ||||||||
Wed, Sep 25th | R Data Cleaning & Missing Data | ||||||||
Mon, Sep 30th | In-Class Exercise | ||||||||
Wed, Oct 2nd | Midterm Review |
Release Lab 3: Midterm Review R
Friday September 29th, 9:00am (ET).
|
|||||||
Friday, Oct 8th, 11:59pm (ET) | Due Lab 2 | ||||||||
Mon, Oct 14th | No Class -- Fall Break | ||||||||
Wed, Oct 16th | Python Introduction | ||||||||
Mon, Oct 21st | Python Introduction | ||||||||
Wed, Oct 23th to Oct 25th | Midterm Exam: online at a time of your choice | ||||||||
Sunday, Oct 27th, 11:59pm (ET) | Due Lab 3 & Homework 1 | ||||||||
Mon, Oct 28th | Introduction to Machine Learning | ||||||||
Wed, Oct 30th | Python Exploratory Data Analysis |
Release Lab 4: Python & Intro to ML
Friday November 3rd, 9:00am (ET).
|
|||||||
Mon, Nov 4th | Python Exploratory Data Analysis & ML | ||||||||
Wed, Nov 6th | Python Exploratory Data Analysis & ML | ||||||||
Mon, Nov 11th | Python Machine Learning- DT, RF, & Ensemble Methods |
Release Final Project
Due: Wednesday December 4th, 11:59 PM (ET).
|
|||||||
Wed, Nov 13th | In-Class Activity - Kaggle Competition | ||||||||
Friday, Nov 15th, 11:59pm (ET) | Due Lab 4 | ||||||||
Mon, Nov 11th | Python Machine Learning- DT, RF, & Ensemble Methods | ||||||||
Wed, Nov 13th | In-Class Activity - Kaggle Competition |
Release Lab 5: Python ML & Text Mining
Friday December 6, 9:00am (ET).
|
|||||||
Mon, Nov 18th | Python Text Mining Basics | ||||||||
Wed, Nov 20th | Python Text Mining in GenAI Era | ||||||||
Mon, Nov 25th | Python Text Mining in GenAI Era | ||||||||
Wed, Nov 27th | No Class -- Thanksgiving | ||||||||
Mon, Dec 2nd | Course Recap & Project Work | ||||||||
Wed, Dec 6th | Final Project Presentations |
Release Lab 6: Final Exam Review (Bonus)
Friday December 8th, 9:00am (ET).
|
|||||||
Friday, Dec 6th, 11:59pm (ET) | Due Lab 5 | ||||||||
Friday, Dec 13th, 11:59pm (ET) | Due Lab 6: Final Exam Review | ||||||||
Monday, Dec 9th - Tuesday, Dec 17th | Final Exam: online at a time of your choice |
Student Evaluation and Assessment
Grading:
- Labs: 20%
- Hands-On Activities: 10%
- Homework: 20%
- Mini Exams (2): 30%
- Course Project: 20%
- Class Participation: +% (extra) -- includes in-class participation + Piazza.
Labs:
On Friday morning at 9 am ET, ~bi-weekly laboratory assignments based upon course material will be posted via the Quizzes feature on the course Canvas site.
These assignments provide exercises in R and Python programming that supplement the material covered in class and provide the foundation for the projects.
Each lab assignment requires students to program in R or Python and answer questions.
The assignments are designed to assess your knowledge on programming concepts covered in class.
These assignments must be done individually, include an honor pledge, and be completed by Friday night at 11:59 pm ET, typically two weeks later.
While there is no time limit for these assignments, they are designed not to take more than 60 minutes. Laboratory sessions are excellent practice for exams
and real-world analysis under time constraints.
Hands-On Activities:
Hands-on activities will be used throughout the course to allow you to practice the methods covered in class, recognize opportunities to apply them in your own work, and discover their shortcomings. Students will submit their activity on Canvas for pass/fail credit.
Homework:
The class will have homework assignments for some topics. While these are individual submissions, students can collaborate as long as the submitted work is their own. For these exercises, students will typically submit a PDF and their source code on Canvas and GitHub.
Exams:
The two exams are based entirely on classroom material and discussions, readings, and laboratory assignments. Each exam will contain a closed book section with short answer questions and an open book section requiring analytical problem solving. The Midterm will cover R and the Final will cover Python.
Course Project:
The course project will be a detailed data analysis of a topic and dataset of your choosing using Python and shared and usable by others on GitHub. We encourage you to do something related to your own interests and are happy to work with you in selecting a data source and defining a project. You must submit your topic description and data sources for your final project at the specified date on Canvas. In your final project, you must show competence in a subset of topics discussed in the class. Project deliverables are due on the last day of course. More information will be available at the midpoint in the semester.
Course Policies
Submission and Late Submission Policy:
On the day an assignment is due, you must submit an electronic copy in pdf (NOT doc or docx, etc.) along with source code on the Canvas site and pledge your submission.
No late assignments will be accepted in this class, unless the student has procured special accommodations for warranted circumstances.
Illness:
We try to create a safe environment, not only for our students, but also for our faculty and our staff. To that end, please stay home or in your dorm room if you are ill with or are symptomatic for any communicable disease. I would rather you stay home and work something out with me for making up work or taking an exam than for an illness to spread through the class. If you believe you are sick, please contact Student Health for appropriate treatment or testing.
Religious Accommodations:
It is the University's long-standing policy and practice to reasonably accommodate students so that they do not experience an adverse academic consequence when sincerely held religious beliefs or observances conflict with academic requirements.
Students who wish to request academic accommodation for a religious observance should submit their request to us by private message on Piazza as far in advance as possible. Students who have questions or concerns about academic accommodations for religious observance or religious beliefs may contact the University’s Office for Equal Opportunity and Civil Rights (EOCR) at UVAEOCR@virginia.edu or 434-924-3200.
Accessibility Statement:
It is my goal to create a learning experience that is as accessible as possible. If you anticipate any issues related to the format, materials, or requirements of this course, please meet with me outside of class so we can explore potential options. Students with disabilities may also wish to work with the Student Disability Access Center (SDAC) to discuss a range of options to removing barriers in this course, including official accommodations. We are fortunate to have an SDAC advisor, Courtney MacMasters, physically located in Engineering. You may email her at sdac.studenthealth.virginia.edu. If you have already been approved for accommodations through SDAC, please send me your accommodation letter and meet with me so we can develop an implementation plan together.
Academic Integrity Statement:
"The School of Engineering and Applied Science relies upon and cherishes its community of trust.
We firmly endorse, uphold, and embrace the University’s Honor principle that students will not lie,
cheat, or steal, nor shall they tolerate those who do. We recognize that even one honor infraction can
destroy an exemplary reputation that has taken years to build. Acting in a manner consistent with the principles
of honor will benefit every member of the community both while enrolled in the Engineering School and in the future.
Students are expected to be familiar with the university honor code,
including the section on academic fraud."
In summary, if assignments are individual then no two students should submit the same source code -- any overlap in source code of
sufficient similarity will be potentially flagged as failure to abide to the Honor Code. You can discuss, you can share resources, you can talk
about the assignment but not share code as this would potentially incur on an honor code violation.
Regardless of circumstances we will assume that any source code, text, or images submitted alongside reports or projects are of the authorship
of the individual students unless otherwise explicitly stated through appropriate means. Any missing information regarding sources will be regarded potentially
as a failure to abide by the academic integrity statement even if that was not the intent. Please be careful clearly stating
what is your original work and what is not in all assignments.
The Use of Generative AI:
Generative artificial intelligence tools—software that creates new text, images, computer code, audio, video, and other content—have become widely available. Well-known examples include ChatGPT for text and DALL•E for images. This policy governs all such tools, including those released during our semester together. You may use generative AI tools on assignments in this course when I explicitly permit you to do so. Otherwise, you should refrain from using such tools.
If you do use generative AI tools on assignments in this class, you must properly document and credit the tools themselves. Cite the tool you used, following the pattern for computer software given in the specified style guide. Additionally, please include a brief description of how you used the tool. If you choose to use generative AI tools, please remember that they are typically trained on limited datasets that may be out of date. Additionally, generative AI datasets are trained on pre-existing material, including copyrighted material; therefore, relying on a generative AI tool may result in plagiarism or copyright violations.
Finally, keep in mind that the goal of generative AI tools is to produce content that seems to have been produced by a human, not to produce accurate or reliable content; therefore, relying on a generative AI tool may result in your submission of inaccurate content. It is your responsibility—not the tool’s—to assure the quality, integrity, and accuracy of work you submit in any college course. If you use generative AI tools to complete assignments in this course, in ways that I have not explicitly authorized, I reserve the right to apply the Honor Code to your specific case. In addition, you must be wary of unintentional plagiarism or fabrication of data. Please act with integrity, for the sake of both your personal character and your academic record.
In this course, the following policy dictates the acceptable use of generative AI tools, such as ChatGPT and other similar technologies. This is a programming course and while I recognize that generative AI can be a tremendous learning tool, it is my expectation that these technologies do not impede you learning the programming concepts taught in class. However, these technologies can be used to enhance your learning experience much like one would use Stack Overflow on assignments with the exception of on exams and lab quizzes which must be utilized without generative AI.
Additional Resources
Support for Career Development:
Engaging in your career development is an important part of your student experience. For example, presenting at a research conference, attending an interview for a job or internship, or participating in an extern/shadowing experience are not only necessary steps on your path but are also invaluable lessons in and of themselves. I wish to encourage and support you in activities related to your career development. To that end, please notify me by email as far in advance as possible to arrange for appropriate accommodations.
Student Support Team:
You have many resources available to you when you experience academic or personal stresses. In addition to your professors, the School of Engineering and Applied Science has staff members located in Thornton Hall who you can contact to help manage academic or personal challenges. Please do not wait until the end of the semester to ask for help!
Learning:You may schedule time with the CAPS counselors through Student Health. When scheduling, be sure to specify that you are an Engineering student. You are also urged to use TimelyCare for either scheduled or on-demand 24/7 mental health care.
Community and Identity:The Center for Diversity in Engineering (CDE) is a student space dedicated to advocating for underrepresented groups in STEM. It exists to connect students with the academic, financial, health, and community resources they need to thrive both at UVA and in the world. The CDE includes an open study area, event space, and staff members on site. Through this space, we affirm and empower equitable participation toward intercultural fluency and provide the resources necessary for students to be successful during their academic journey and future careers.
Harrassment, Discrimination and Interpersonal Violence:
The University of Virginia is dedicated to providing a safe and equitable learning environment for all students. If you or someone you know has been affected by power-based personal violence, more information can be found on the UVA Sexual Violence website that describes reporting options and resources available - www.virginia.edu/sexualviolence.
The same resources and options for individuals who experience sexual misconduct are available for discrimination, harassment, and retaliation. UVA prohibits discrimination and harassment based on age, color, disability, family medical or genetic information, gender identity or expression, marital status, military status, national or ethnic origin, political affiliation, pregnancy (including childbirth and related conditions), race, religion, sex, sexual orientation, veteran status. UVA policy also prohibits retaliation for reporting such behavior.
If you witness or are aware of someone who has experienced prohibited conduct, you are encouraged to submit a report to Just Report It (justreportit.virginia.edu) or contact EOCR, the office of Equal Opportunity and Civil Rights.
If you would prefer to disclose such conduct to a confidential resource where what you share is not reported to the University, you can turn to Counseling & Psychological Services (“CAPS”) and Women’s Center Counseling Staff and Confidential Advocates (for students of all genders).
As your professors, know that we care about you and your well-being and stand ready to provide support and resources as we can. As faculty members, we are responsible employees, which means that we are required by University policy and by federal law to report certain kinds of conduct that you report to us to the University's Title IX Coordinator. The Title IX Coordinator's job is to ensure that the reporting student receives the resources and support that they need, while also determining whether further action is necessary to ensure survivor safety and the safety of the University community.