This course covers the primary problem solving strategies, methods and tools needed for data-intensive programs using large collections of computers typically called "warehouse scale" or "data-center scale" computers. CSCI 4/5253 examines methods and algorithms for processing data-intensive applications, methods for deploying and managing large collections of computers in an on-demand infrastructure and issues of large-scale computer system design.
By the end of the course, students will have defined and built their own project that harnesses the scale of the cloud by utilizing a variety of cloud services.
There is no text book required for this course. Instead, various readings and webpages may be provided for reference on the Syllabus. Students are expected to be active learners, and may have to search for resources outside of class in order to learn material.
Students will be expected to implement solutions on Amazon's cloud. New accounts receive a limited amount of free cloud access, but students may be responsible for paying for cloud access if necessary. Students should apply for education credits immediately via AWS Educate. Any issues should be reported to the instructor within the first two weeks of class. Other clouds (Google, Microsoft, IBM, etc) are allowed, but due to the number of students in the course, these clouds cannot be officially supported by the course personnel. The instructor has a limited amount of Google credits.
Final grades will be decided by the following:
Letter grade assignments are listed below. Traditional rounding will be used (0.5% and above will round up to the next whole percentage, otherwise round down). Graduate students and undergraduate students will be graded separately.
We'll use moodle for grading, please find the moodle page via the link below. Course discussion is on Piazza (access Piazza through Moodle):
This is a relatively new course, with a curriculum that may be altered over the semester. The covered topics in the course syllabus may change. Given the non-traditional content of the course, there is not a standardized set of textbooks available. Students taking this course should feel comfortable finding and learning from online resources to supplement lecture material. It is very likely that lectures will cover underlying technical considerations of a given protocol, service, or application, and students will be responsible for understanding and learning APIs and design on their own via projects. Given the project-heavy nature of the course, students may be required to learn substantial amount of material on their own. The final project of the course will be open-ended. In summary, this course aims to build independence and critical thinking in students that will enable them to succeed in the post-academic world.
It is recommended that students have a familiarity with the subject matter in:
Most work in the class will be done in Python and Java. Projects will be submitted and tracked with git. It is possible that other languages may be required for small parts of the class. Students should be receptive to learning bits and pieces of a new language on the fly if needed.
There are no required textbooks for this course. If learning from a book is desired, students may want to purchase books related to core course materials. A few cursory suggestions:
|Eric Roznerfirstname.lastname@example.org||ECCR 1B26||1:45pm-2:45pm Tuesday, Thursday|
|Shipra Behera||Shipra.Behera@colorado.edu||ECCS 112||3pm-5pm Tuesday, Thursday|
|Surya Mani Deepak Kancharla||Surya.Kancharla@colorado.edu||Wed: ECCS 112A, Fri: ECCS 112B||Wed: 6pm-8pm, Fri: 5pm-7pm|
|Kamal Chaturvedi||Kamal.Chaturvedi@colorado.edu||ECOT 832||Fri: 3pm-5pm|
All students must adhere to the CU Academic Integrity Policy. Academic integrity will be strictly enforced: any student caught cheating will receive a failing course grade and be reported to the Dean's office. Any material copied from an online resource, such as code or homework answers, must be cited properly. When in doubt, seek guidance from the instructor or the TA before submitting your work.
During exams, no electronic devices are allowed unless explicitly approved by the instructor. Any usage of an electronic device during an exam will be considered cheating and an automatic failing grade will be assigned.
Do not wait to start homeworks and course projects. All deadlines should be considered final. Late assignments, homeworks and projects will receive a 10% per 24 hour period deduction. For example, assignments handed in 1-24 hours late will incur a 10% reduction in score (so a 100 score would instead be a 90), assignments handed in 25-48 hours late will incur a 20% reduction in score (so a 100 score would instead be an 80). After 72 hours, no assignment will be accepted for a grade. In the case of emergencies, contact the instructor as soon as possible.
All grading disputes must be addressed within one week of the graded material being returned. After one week, TAs and instructors will not adjust any scores. Students are responsible for carefully inspecting all graded material.
Unless explicitly stated, all work should be done individually by each student. It is likely that partnering will be allowed in some course projects, and the conditions of collaboration will be explicitly spelled out in the assignment details. Questions about collaborations should be immediately addressed with the instructor, before any joint work is performed. Note that students working together on individual assignments is considered a form of academic misconduct and will be dealt with as outlined in the Academic Integrity section. Students are not allowed to share answers in person or over electronic communication.
All students are expected to attend every lecture in person. Exam dates are posted at the beginning of the semester and students must address any date conflicts with the instructor within the first two weeks of class. Students missing an exam, or requesting a deadline extension, due to health reasons will be required to obtain a note from a medical professional.
Students with special needs or accommodations are encouraged to seek council with the course instructor as soon as possible.
Learning new material is hard, and the instructor will try to enable a safe learning environment as best as possible. Students are expected to treat one another with respect, patience, and kindness. Any reports of online or in-person harassment will be referred to the department immediately. Students should adhere to the ACM Harassment Policy.