Course Syllabus – Big Data
CS 677 ⋅ Spring 2023 ⋅ 4 Credits
Course Information
Lecture: Tuesday & Thursday ⋅ 9:55am – 11:40am ⋅ LM 152
Instructor: Matthew Malensek
mmalensek@usfca.edu
Office Hours:
- On Campus: T, Th 1:30pm – 2:30pm in HR 407B
- Remote: M, W 3:30pm – 4:30pm on Zoom
Prerequisites
Programming experience, preferably in Go, Java, or Python.
Required Texts/Materials
There is no textbook for this course. Instead, we will read and discuss research papers.
Nevertheless, here are some good resources:
- Data-Intensive Systems: Designing Data-Intensive Applications. Martin Kleppmann.
- Lambda Architecture: Big Data: Principles and best practices of scalable realtime data systems. Nathan Marz and James Warren.
- Distributed Systems: Distributed Systems: Principles and Paradigms. Andrew S. Tanenbaum and Maarten van Steen.
- Learn Go With Tests. Chris James.
Course Overview
This course examines the algorithmic and systems challenges associated with big data. Topics include storage frameworks (key-value, in-memory, wide-column), scalable computing paradigms (MapReduce, Spark, stream processing), and analysis techniques (sentiment analysis, predictive modeling).
Learning Outcomes
After completing the course, students will be able to:
- Explain the theory behind the I/O, memory, computational, and algorithmic trade-offs associated with big data
- Leverage big data frameworks and distributed systems to carry out analysis and gain insight
- Design and implement big data frameworks and algorithms
- Preprocess and prepare data for machine learning and visualization
- Summarize and critique research papers from the field
These outcomes will be assessed via programming assignments, scientific paper reviews, and quizzes.
Grading
The course will be graded on a A-F basis. The grade distribution is:
- Projects: 50%
- Research Papers: 20%
- Discussions: 5%
- Presentation: 15%
- Quizzes: 20%
- Participation & Labs: 10%
Grades will be assigned as follows:
Score Range | Grade |
---|---|
100 – 93.0 | A |
92.9 – 90.0 | A- |
89.9 – 87.0 | B+ |
86.9 – 83.0 | B |
82.9 – 80.0 | B- |
79.9 – 77.0 | C+ |
76.9 – 73.0 | C |
72.9 – 70.0 | C- |
69.9 – 67.0 | D+ |
66.9 – 63.0 | D |
62.9 – 60.0 | D- |
59.9 – 0 | F |
This scale is subject to change; scoring in the ranges above guarantees you will receive at least the grade listed.
Projects: The best way to learn is by putting theory into practice. This course features large projects that count for the majority of your grade. Remember to start early, ask questions, and go to office hours if necessary.
Research Papers: we will read several research papers throughout the semester. There are two parts to these assignments:
- Reading the paper and participating on the class discussion board (asking questions and posting ‘tweets’ – short, pithy summaries of the work).
- Presenting a research paper to the class. This is a group assignment (~3 students per group) that involves reading the paper, performing a thorough analysis of its strengths and weaknesses, and then explaining the concepts to the class.
Quizzes: Your knowledge of the concepts covered in class will be evaluated via quizzes.
Participation & Labs: Beyond the research paper group discussions, we will also have small lab assignments or discussions in class to help reinforce content from the lecture. While attendance is not required in this class, you are encouraged to participate. This includes asking/answering questions during lecture or on the discussion board. One of the major components of the class will be participating in system design discussions to weigh the trade-offs associated with the different types of distributed systems and data processing platforms.
Grading Policy:
- Do not cheat. Review the Honor Code, and if in doubt about whether or not something is cheating, ask the professor.
- The course staff will run cheat detection software that includes past assignments.
- “Collaboration” that involves sharing code/solutions is considered cheating.
- If you cheat, you will get a 0 on the assignment or an F in the class.
- Submit code via GitHub. Commit your changes frequently as you work on the assignments.
Late Policy:
- Due dates are posted on the course schedule page. Assignments are due at 11:59pm on the due date.
- Makeup quizzes will not be administered unless arranged at least one week in advance.
- Late lab/discussion/participation assignments are not accepted.
- Project deadlines are strong suggestions but you are granted flexibility to promote creativity and taking risks with your designs. Projects must be turned in by the end of the semester to receive credit.
Classroom Conduct
You are here to learn. Be professional and courteous toward your peers, and help create a learning environment that supports diverse thinking, experiences, perspectives, and identities. If you need to use an electronic device during a lecture, do so in a way that doesn’t distract others. And most importantly, be excellent to each other.
Important Dates
- January 23: Classes/Late Registration Begin
- January 27: Last day to add classes
- February 10: Census Date (last day to drop classes with a refund)
- February 20: No class, Presidents' Day
- March 13–17: No class, Spring Break
- April 6: Easter Holiday begins at 4:00pm
- April 7: No class, Easter
- April 10: Last day to drop classes or withdraw
- May 11: Last day of class
- May 12: Study/Review Day
Students with Disabilities
The University of San Francisco is committed to providing equal access to students with disabilities. If you are a student with a disability, or if you think you may have a disability, please contact Student Disability Services (SDS) at sds@usfca.edu or 415 422-2613, to speak with a disability specialist. (All communication with SDS is private and confidential.) If you are eligible for accommodations, please request that your accommodation letter be sent to me as soon as possible; students are encouraged to contact SDS at the beginning of the semester, as accommodations are not retroactive. Once I have been notified by SDS of your accommodations we can discuss your accommodations and ensure your access to this class or clinical setting. For more information please visit the SDS website: https://www.usfca.edu/student-disability-services.
Behavioral Expectations
All students are expected to behave in accordance with the Student Conduct Code and other University policies (see http://www.usfca.edu/fogcutter/). Students whose behavior is disruptive or who fail to comply with the instructor may be dismissed from the class for the remainder of the class period and may need to meet with the instructor or Dean prior to returning to the next class period. If necessary, referrals may also be made to the Student Conduct process for violations of the Student Conduct Code.
Academic Integrity
As a Jesuit institution committed to cura personalis – the care and education of the whole person – USF has an obligation to embody and foster the values of honesty and integrity. USF upholds the standards of honesty and integrity from all members of the academic community. All students are expected to know and adhere to the University’s Honor Code. You can find the full text of the code online at http://myusf.usfca.edu/academic-integrity/. The policy covers:
- Plagiarism – intentionally or unintentionally representing the words or ideas of another person as your own; failure to properly cite references; manufacturing references.
- Working with another person when independent work is required.
- Submission of the same paper in more than one course without the specific permission of each instructor.
- Submitting a paper written by another person or obtained from the Internet.
Counseling and Psychological Services (CAPS)
CAPS’ diverse staff offers brief individual, couple, and group counseling to student members of our community. CAPS services are confidential and free of charge. Call (415) 422-6352 for an initial consultation appointment. Telephone consultation through CAPS After Hours is available Monday - Friday from 5:00 p.m. to 8:30 a.m., 24 hours during weekends and holidays; call the above number and press 2. Further information can be found at https://myusf.usfca.edu/student-health-safety/caps.
Confidentiality, Mandatory Reporting, and Sexual Assault
As instructors, one of our responsibilities is to help create a safe learning environment on our campus. We also have a mandatory reporting responsibility related to our role as faculty. We are required to share information regarding sexual misconduct or information about a crime that may have occurred on USF’s campus with the University. Here are some useful resources related to sexual misconduct:
- To report any sexual misconduct, students may visit the Title IX coordinator (UC 5th floor) or see many other options by visiting usfca.edu/student_life/safer.
- Students may speak to someone confidentially or report a sexual assault confidentially by contacting Counseling and Psychological Services at (415) 422-6352.
- To find out more about reporting a sexual assault at USF, visit USFs Callisto website at: usfca.callistocampus.org.
- For an off-campus resource, contact San Francisco Women Against Rape (SFWAR) (415) 647-7273 (sfwar.org).