Department of
Computer Science
Instructors and their lecture
sections: Ajay
Gupta (ajay.gupta@wmich.edu) CRNs
31854 & 31871, T Th 03:30-67:00pm, C0123, CEAS
Website: E-learning 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.
|
TA:
None |
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).
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.
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.
.
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.
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.
Access to QwikLabs
Access to Codelabs
Access to Google Cloud Platform (Free Trial)
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:
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.
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 to reinforce design concepts will be given on a
regularly scheduled basis.
Your
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.
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.
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.
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.)
To be added.See Topics Covered page which will be updated regularly throughout the semester as it progresses.
Academic resource center at WMU offers a number of seminars to enhance your learning experiences. Check out the current offering and schedule at
http://www.wmich.edu/tutoring/services/college-success-seminars.html
Library guide for computer science at http://libguides.wmich.edu/compsci
Note: Calendars are subject to
change. Dates and events are added or changed as information becomes available.
Last updated on 10 Sept 2015