CS5950 / CS6030 - Cloud, IoT and Big Data Analytics

Summer II 2018

Department of Computer Science

Western Michigan University


Instructors and their lecture sections: 

Ajay Gupta (ajay.gupta@wmich.edu)

CRNs 31854 & 31871, T Th 03:30-67:00pm, C0123, CEAS





Additional Dr. Gupta’s websits: http://www.cs.wmich.edu/~gupta



Office Hours: 

  Ajay Gupta (B-239, CEAS), T Th 11:30am-12:30pm

and by appointment.





Catalog Descriptions

CS5950: The content of this course varies. It is intended to introduce the student to advanced topics which are normally offered as separate courses. The course may be taken more than once with approval of the student's advisor.

CS6030: Advanced work organized around varying topics in computer science. Students may take CS6030 more than once provided it covers different topic(s).




By Courses: CS3310 or equivalent with a grade of C or better; or permission of the instructor.


By Topic: Advance understanding of high-level language programming - conditional structures; looping structures; arrays; program logic - to solve problems; object oriented programming - be able to create and use objects; software life cycle; validating quality of software produced; sorting and searching algorithms; data structures (linked lists, queues, stacks, hash maps); divide-and-conquer, greedy, dynamic programming, branch-and-bound and backtracking algorithm design techniques; documenting programs effectively and efficiently; team work. Proficient in Java, C, C++, or C# beyond the experience in CS3310. Low-level, systems programming, and Linux programming experience desired. Some mathematics and statistics background. Exposure to machine-learning, Python & R programming are a plus. Strong desire, self-motivation & dedication to learn and contribute to the interesting area of cloud-computing (mainly cloud services, cloud based ML and data analytics).


General Information

This course is a 3 credit hour advance undergraduate or introductory graduate level topics course, intended for students who plan to design and develop applications, or pursue research in the exciting area of cloud computing. Cloud computing comes into focus only when you think about what IT always needs: a way to increase capacity or add capabilities on the fly without investing in new infrastructure, training new personnel, or licensing new software. The primary objective is to provide the introduction to the current practices of cloud computing, often also known as the Internet as a platform. Mainly focusing on cloud computing models, techniques, architectures and data analytics using cloud based services, this course will provide students with the knowledge and hand-on experience in designing and implementing cloud-based software systems. Topics may include advanced web technologies (e.g. AJAX and Mashup), distributed computing models and technologies (Hadoop and MapReduce), Infrastructure-as-a-Service (IaaS), Software as a Service (SaaS), Platform-as-a-Service (PaaS), ML as a service (MaaS), virtualization, parallelization, security/privacy, and other issues in cloud computing. This course will also explore the current challenges facing cloud computing. Approximately three-fourths of this course will be devoted to learning applications programming using cloud infrastructures and the rest to development/understanding of systems issues in installing and implementing clouds and related systesm on different platforms.

The course is appropriate for seniors and graduate students.  Like most college courses, this course requires students to take responsibility for their own learning.  The course follows a strict schedule of reading, writing, programming & homework exercises, term project(s) and quizzes.  Each week reading will cover one or two chapters of the textbooks.  The reading, writing, homework and examination schedule is firm.  Students are required to develop the discipline to follow the schedule. I will try to follow a flipped-classroom style of teaching this term - in this a student will lead a topic and the whole class will work through the hands-on application / system building experience.

Students must bring their own laptops to every class. Ideally, you want a dual boot or a virtual machine that can work in both the windows as welll as linux-based environents. Make sure your machine is in working condition, have the latest updates etc installed before hand and that your machine batteries are fully charged as the classroom may not have enough separate power points.

As is typical of many college courses, this course will require one ot two examinations during the course, a number of quizzes and prsentations.
Classroom activities, unlike the readings and quizzes, are somewhat less structured.  This allows for tangents in discussions, the use of occasional visiting guests, unforeseen instructor absences, holidays, etc.  The flexibility of the classroom does not tie students or instructor to the textbook readings, but does complement and enhance those readings.  Students are responsible for material in the textbook, whether or not the material is addressed in the classroom.  Students are also responsible for material and skills presented or discussed in class.



Develop computational thinking to serve us well in cloud-computing challenges to come.

Course Outcomes

Students' progress and achievements towards reaching the course goals and objectives will be apparent from such measures as: the results and creativity displayed in course assignments; and the contents of and performance on certain exam portions.




Required Text

Big-Data Analytics for Cloud, IoT & Cognitive Learning by Kai Hwang and Min Chen, 2017, John Wiley & Sons Inc, ISBN: 9781119247029

We will also extensively refer to research papers, material available on the web and material from the following recommended textbooks.

Recommended Texts

AWS Certified Solutions Architect, by Joe Baron, Hisham Baz, Tim Bixter, et. al., 2016, John Wiley & Sons Inc., ISBN 9781119138556.

Cloud Computing for Machine Learning and Cognitive Applications by Kai Hwang, 2017, The MIT Press, ISBN 9780262036412

Hadoop: The Definitive Guide, Third Edition, by Tom White (O'Reilly)

Data-Intensive Text Processing with MapReduce, by Jimmy Lin and Chris Dyer

Mastering Cloud Computing by Buyya, Vecchiola & Selvi, 2013, Morgan Kaufmann Publishers, ISBN 9780124114548

Notes - Summation and Recurrence Relations -- these will be helpful especially if you forrgot your algorithm analysis and basic math concepts.


Essential Student Materials

  1. Access to QwikLabs

  2. Access to Codelabs

  3. Access to Google Cloud Platform (Free Trial)

  4. Access to Amazon Web Services (Free Trial)



During the term there will be one mid-term exam and/or one additional final exam and a number of quizzes (see tentative schedule below). Pop-quizzes may be given at anytime in the lecture without prior notification. Your grade will be computed from your performance on these components using the following weights (these are tentative; we may adjust some weights roughly after one month has passed after class discussion): 


Midterm and/or Final Exam:                                                     30%  

(Tentatively Tuesday August 14 or Thursday, August 16, 2018 in class if only one exam)

Semester projects (roughly init/mid-term progress 30%, final 70% of project): 20%

Homeworks, Programming Assignments, Class Presentations, QuizQuestions Contributions:      40%

Participation and lecture quizzes:                10%



The following grading scale will be used.

A - 90; BA - 85; B - 80; CB - 75; C - 70; DC - 65; D - 60.


Missed Exams

If you miss an exam (Midterm Exams or Final Exam), the decision as to whether or not it is made up and how it is made up will be made on an individual basis. To be excused there must be significant circumstances beyond the student's control. Generally this will require documentation, such as a doctor’s note in the case of an illness. Normally, if your absence from an exam is excused, you will have to take a make up exam. Contact the instructor asking for a make up exam as soon as it is possible (if possible inform the instructor even before the exam that you will miss).



Programming, Homework Assignments and Class Presentations

Programming & homework assignments to reinforce design concepts will be given on a regularly scheduled basis. Your class presentations will also occur on a regular basis. Each assignment will have a due date/time. For each day an assignment is late, 10% of the total possible points for the assignment will be deducted. (If an assignment is more than 10 days late, it is no longer worth any points.) Weekends and holidays are all counted when calculating lateness. No assignments may be submitted after 11:59 PM on the day preceding the last day of the classes (August 15, 2018). By this time all work should be complete and submitted.



There will be regular quizzes given in the lectures. Additionally, pop-quizzes may be given at anytime in the lectures without prior notification. If you miss a quiz for any reason, you will receive a 0 on it.



Use of Electronic Devices

To fully benefit from lectures and recitations, you are expected to stay alert and pay attention to the directions/announcements in the class. Cellphones, PDAs, and other electronic devices should NOT be used during the lecture and should be turned-off. Please do bring your laptop to the class. Email checking or web-surfing of non-course related material is NOT permitted during the class. You may surf the web only when specifically told to do so. In order to maintain the integrity of the classroom and if I feel it is distracting you or others, I may ask you to turn-off your laptop/desktop or leave the room.


Incomplete Grades

Please note that the incomplete grade - I - is intended for the student who has missed a relatively small portion of work due to circumstances beyond his/her control. In general, performance on work done must be at a level of C or better in order to qualify for an incomplete.  An I grade will not be given to replace an otherwise low or failing grade in the class. 


Academic Honesty

The following statement has been approved and distributed by the Western Michigan University Faculty Senate:

"You are responsible for making yourself aware of and understanding the policies and procedures in the Undergraduate and Graduate Catalogs that pertain to Academic Honesty. These policies include cheating, fabrication, falsification and forgery, multiple submission, plagiarism, complicity and computer misuse. [The policies can be found at http://catalog.wmich.edu under Academic Policies, Student Rights and Responsibilities.] If there is reason to believe you have been involved in academic dishonesty, you will be referred to the Office of Student Conduct. You will be given the opportunity to review the charge(s). If you believe you are not responsible, you will have the opportunity for a hearing. You should consult with your instructor if you are uncertain about an issue of academic honesty prior to the submission of an assignment or test."

We also encourage you to browse http://osc.wmich.edu and www.wmich.edu/registrar to access the Code of Honor and general academic policies on such issues as diversity, religious observance, student disabilities, etc.

Some relevant links:


Unless otherwise told, you may not bring aids to exams. Submission of another person's work in part or whole is not permitted. Learning can certainly occur with discussion of class material and assignments with other students, and we will be doing considerable collaborative activity, but at all times take care that you don’t represent the work of another as your own.

If you are copying another's work in part or whole, either by hand or electronically, you are going too far.

If two or more people are working so closely together that the outcomes, particularly on significant portions of computer programs, are essentially line-by-line the same in logical structure, they are going too far.

You should not give your completed work to someone else or accept another's completed work to "review or look at" in either hardcopy or electronic form. This too easily facilitates copying.

Easy availability of information, material, source codes, lecture notes etc. on the Internet may make it possible to find solutions to your assignments on the Internet or elsewhere. It is okay to refer to those, understand them and use them to enhance your solutions, generate your own ideas etc. However, you must give proper and full credit to original authors of the work, if you include their ideas and/or solutions. Failing to do so is part of academic and professional dishonesty. It will not be tolerated in this class. Do not give in to temptations.

A student found responsible for violation of academic honesty in the course, will receive a course penalty up to and including an E grade for the class. (Note that the Office of Student Conduct can impose additional penalties.)


Course Topics

To be added.See Topics Covered page which will be updated regularly throughout the semester as it progresses.


College Success Seminars

Academic resource center at WMU offers a number of seminars to enhance your learning experiences. Check out the current offering and schedule at



WMU LIbraries

Library guide for computer science at http://libguides.wmich.edu/compsci


Dates of Interest

Source: Academic Calendar at:







Note: Calendars are subject to change. Dates and events are added or changed as information becomes available.


                                                                                                                          Last updated on 10 Sept 2015