Industrial Oriented Programming and Practices
Title: Industrial Oriented Programming and Practices
Credits : 2
Lecturers/Labs: One session of two hours per week
Webpage: http://qloudcomputing.blogspot.com
This industry-oriented course will give students a theoretical foundation and hands-on experience with the various technologies and tools of the cloud computing paradigm. Cloud computing is the delivery of computing as a service, whereby distributed resources are provided by appropriate service suppliers and leased, rather than owned, by an end user as a utility (similar to electricity and water) over a network (typically the Internet). Cloud computing services are becoming ubiquitous and are being adopted by a growing number of fields. Organizations are recognizing the benefits of this new computing paradigm in terms of increased flexibility, elasticity as well as reduced upfront costs and carbon footprint.
The course will provide students with a thorough treatment of cloud computing and its applicability to commercial application development as well as research computing needs. The lectures will cover topics related to cloud infrastructure Linux Programming and Cloud Tools. Students will use the Google Docs and other cloud resource to understand different cloud computing concept such as collaboration .
ravindra.dastikop@gmail.com
The course is meant to introduce students to the field of cloud computing and tools . Students will learn how to utilize the cloud computing tools such as Google Docs, Blogs etc. They will also learn about new programming paradigms that are developed for the cloud.
The course will serve as a firm foundation on many cloud computing principles and enablers such as distributed file systems and virtualization. Students will be able to understand design needs of efficiently distribute data intensive computation over virtualized cloud platforms. As a result, students will have the foundation needed to match the future needs in the emerging field of cloud computing.
The course has three goals:
Through these objectives, the course will transform your computational thinking from designing applications for a single computer system to designing applications for a cloud distributed system.
The primary learning outcome of the course is three-fold:
Students will learn the core concepts of cloud computing. They will understand how the cloud computing paradigm evolved over the past few years as an answer to the growing needs of organizations. Cloud computing is an amalgam of various technologies. Students will be able to discuss many of these technologies including:
Traditional programming models might not work efficiently in clouds. Students will identify the two main classical programming models, shared memory and message passing, as well as apply the novel programming models that are commonly adopted in clouds. Specifically, students will:
Students will explain the fundamental concepts of virtualization, where a state of a computer is abstracted from the underlying hardware. They will describe how virtualization applies to cloud computing, and identify various capabilities provided by virtualization to cloud providers and users. Specifically, students will:
Storage technologies and distributed file systems play a major role in enabling cloud computing, by allowing for fast, reliable, and parallel access to large amounts of data distributed across multiple machines. Students will identify storage technologies suitable for clouds as well as describe the fundamental principles of distributed file systems (DFSs) and how they apply to cloud computing. Specifically, students will:
One criticism of cloud programming models is that the development cycle might take long time. For instance, writing a MapReduce program involves coding the map and reduce functions, compiling and packaging the program, submitting the job(s), and retrieving the results. Researchers and engineers might require a faster model to quickly mine huge datasets. In this course, students will:
Students will explore the applicability of different application domains to cloud computing. Specifically, students will:
While many existing techniques served in realizing the realm of cloud computing, several new research challenges swiftly emerged in an attempt to enable the full potential of the paradigm. Students will identify the following research challenges:
Your participation in the course will involve several forms of activity:
Attendance will be taken at the beginning of each lectures, it will be worth 5% of your grade. Before each class, you are required to briefly read about the topics that will be covered. You will be responsible for all material presented during the lectures.
For urgent communication with the teaching staff, it is best to send an email (preferred) or call the office phone. If you want to talk to a staff member in person, remember that our posted office hours are merely nominal times when we guarantee that we will be in our offices. You are always welcome to visit us outside of our office hours if you need help or want to talk about the course.
We ask that you follow a few simple guidelines.
We will use the course web-page as the central repository for all information about the class. Using the web-page, you can:
Exercises and hands-on session are assigned to single students should be performed individually.
as follows
1. Spoken Tutorial Linux Certification 10%
2. IA 40%
3. Semester End Exam 50%
Each project must be the sole work of the student turning it in, except for possible group projects. Projects will be closely monitored by automatic cheat checkers, and students may be asked to explain any suspicious similarities with any piece of code available. The following are guidelines on what collaboration is authorized and what is not:
What is cheating?
What is NOT cheating?
Cheating in group projects will also be strictly monitored and penalized (similar to cheating in individual exams, assignments or projects). Be aware of what constitutes cheating (and what does not) while interacting with students in other groups; same rules of cheating as above apply when collaborating between two or more groups. You cannot share or use written assignments, code, and other electronic files from students in other groups. If you are unsure, ask the teaching staff.
Be sure to store your work in protected directories. The penalty for cheating is severe, and might jeopardize your career; cheating is not worth the trouble. By cheating in the course, you are cheating yourself; the worst outcome of cheating is missing an opportunity to learn. In addition, you will be removed from the course with a failing grade. We also place a record of the incident in the student's permanent record.
See Time Table