SlideShare a Scribd company logo
Cloud Computing in Systems
Programming Curriculum
Gustavo Rodriguez-Rivera, Purdue University
Enrique Kortright, IBM
CS252 Systems Programming Course
• CS252 Systems programming is part of the core courses in the CS
Curriculum.
• It is the last course the undergraduates take before going to the
specialization track.
CS252 Systems Programming
• In this course we want the students to:
• Learn how to write and manage large applications (more than
1000 lines of code).
• Advance C/C++ and Memory Allocation.
• Understand the Operating System from the User Space view.
• Shell Scripting
• Write a Shell implementation with process creation, pipes, file
redirection.
CS252 Systems Programming
• Learn thread programming, mutex locks,
semaphores, and condition variables
• Learn the basics of Internet protocols and socket
programming.
• Write a multi-threaded/multi-process web server.
• Write web applications using HTML/HTTP
• Write mobile applications using Android, iOS, and
Windows
• Learn how to use Cloud Computing in web and
mobile applications (new)
Kernel and User Mode
Kernel Mode
User Mode
Software
Interrupt
Web Applications
Web Browser
Web Services
Internet
System Calls
Libc (the C library) provides wrappers for
the system calls that eventually generate
the system calls.
User Mode:
int open(fname, mode) {
return syscall(SYS_open,
fname, mode);
}
int syscall(syscall_num, …)
{
asm(INT);
}
Kernel Mode:
Syscall interrupt handler:
Read:…
Write:…
open:
- Get file name and mode
- Check if file exists
- Verify permissions of
file against mode.
- Ask disk to Perform operation.
Make process wait until
operation is complete
- return fd (file descriptor)
Software
Interrupt
Web Applications
Browser Application provides user interface.
Security is checked in Web Service before
performing service
Web Browser
HTML &
Javascript
GET or
POST
Web Application:
- Check Login or SessionID
- Check Arguments
- Perform Service
- Return Result
JAVA/Python/Node.js/PHP
HTTPS Data Base
The Browser as an Operating System
• The web browser is becoming the new operating system.
User Space
Office
(C++)
Eclipse
(Java)
App 3
(Python)
Kernel Space
Files Auth
Network
Web Browser
Google Docs
(JScript)
Youtube
(HTML5)
Web Services
Files Auth
DBs
Traditional View of OS
App 4
(C#)
Facebook
(HTML)
Web Browser as OS
System Calls Internet (HTTP(S)/SOAP/JSON)
Technologies that allow Browser as OS
• HTML5
• Mature programming Language
• Dynamically typed
• High Performance JavaScript interpreter in Chrome, Firefox, Edge, Safari.
• Canvas allows graphical information, use of mouse, multi-touch.
• Java Script/ HTML Frameworks
• Jquery, Bootstrap, AngularJS, IONIC, ….
• WebGL
• Allows the use of the GPU (Graphic Processing Unit) in the browser
• High quality with real-time graphics
• WebGL may be difficult to program with. Libraries such as three.js have been
implemented to simply programming of WebGL.
• http://threejs.org/
Old generation Web Applications
• Old Generation Web Apps
• HTML, CSS Cascade Style Sheets, Forms
• HTTP, HTTPS
• Backend written with HTTP/HTTPS DoGet, DoPost handlers in Java, C#,
Python, Java,
• Computation and program logic is mostly done in the server.
• Browser renders HTML and pictures.
Advantage
Simple
Disadvantage
Slow Response
New generation Web Apps
• New Generation Web Apps
• HTML, CSS still used but less important
• Browser runs a HTML5 /Javascript program that provides interaction locally
• Program access web services directly.
• Advantages
• High response.
• Logic is moved to the client using web services.
• May run in mobile apps like phones without modification.
• Disadvantages
• Need to reengineer existing apps.
• Javascript is dynamically typed so apps need to be tested better.
• Javascript needs to be combined with HTML, CSS making it complicated.
• Sources are available to the browser. Obfuscation may be needed for copyright protection.
Final Projects using Bluemix
• We would like students to to write applications were
• Application runs in browser using HTML5
• Application calls web services in Bluemix
• Final Projects
• Groups of 3 students
• Students may decide what apps to implement.
• Games, Social network, Streaming
• Use Source Control with Bluemix DevOps repository or GITHUB
• Should run in both PCs and mobile devices
• Apps call Bluemix Open Cloud Architecture
• Projects are Open Sourced
Example Projects
• https://www.cs.purdue.edu/homes/cs252/lab6-webapp
Cloud Computing in Systems Programming Curriculum

More Related Content

What's hot

Project Dpilot Documentation
Project Dpilot DocumentationProject Dpilot Documentation
Project Dpilot Documentation
DeepAnshu Sharma
 
My view on XPages
My view on XPagesMy view on XPages
My view on XPages
Per Henrik Lausten
 
Online Compiler_Rajiv_Code Based Evaluation & Recruitment
Online Compiler_Rajiv_Code Based Evaluation & RecruitmentOnline Compiler_Rajiv_Code Based Evaluation & Recruitment
Online Compiler_Rajiv_Code Based Evaluation & Recruitmentrajiv kumaar
 
Introduction to ASP.NET
Introduction to ASP.NETIntroduction to ASP.NET
Introduction to ASP.NET
Peter Gfader
 
Intro To Asp Net And Web Forms
Intro To Asp Net And Web FormsIntro To Asp Net And Web Forms
Intro To Asp Net And Web Forms
SAMIR BHOGAYTA
 
Client & server side scripting
Client & server side scriptingClient & server side scripting
Client & server side scripting
baabtra.com - No. 1 supplier of quality freshers
 
CNIT 129S: Ch 5: Bypassing Client-Side Controls
CNIT 129S: Ch 5: Bypassing Client-Side ControlsCNIT 129S: Ch 5: Bypassing Client-Side Controls
CNIT 129S: Ch 5: Bypassing Client-Side Controls
Sam Bowne
 
CNIT 129S: 12: Attacking Users: Cross-Site Scripting (Part 1 of 2)
CNIT 129S: 12: Attacking Users: Cross-Site Scripting (Part 1 of 2)CNIT 129S: 12: Attacking Users: Cross-Site Scripting (Part 1 of 2)
CNIT 129S: 12: Attacking Users: Cross-Site Scripting (Part 1 of 2)
Sam Bowne
 
Evolution of Applications & Web
Evolution of Applications & WebEvolution of Applications & Web
Evolution of Applications & Web
Himanshu Jindal
 
Java selenium web driver
Java selenium web driverJava selenium web driver
Java selenium web driver
KadarkaraiSelvam
 
Asp .net web form fundamentals
Asp .net web form fundamentalsAsp .net web form fundamentals
Asp .net web form fundamentalsGopal Ji Singh
 
ASP
ASPASP
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
Richard Esplin
 
Server side scripting
Server side scriptingServer side scripting
Programming and the web for beginners
Programming and the web for beginnersProgramming and the web for beginners
Programming and the web for beginners
Son Nguyen
 
Active server pages
Active server pagesActive server pages
Active server pages
mcatahir947
 
EF Core (RC2)
EF Core (RC2)EF Core (RC2)
EF Core (RC2)
Ido Flatow
 
TypeScript and SharePoint Framework
TypeScript and SharePoint FrameworkTypeScript and SharePoint Framework
TypeScript and SharePoint Framework
Bob German
 

What's hot (20)

Project Dpilot Documentation
Project Dpilot DocumentationProject Dpilot Documentation
Project Dpilot Documentation
 
My view on XPages
My view on XPagesMy view on XPages
My view on XPages
 
Online Compiler_Rajiv_Code Based Evaluation & Recruitment
Online Compiler_Rajiv_Code Based Evaluation & RecruitmentOnline Compiler_Rajiv_Code Based Evaluation & Recruitment
Online Compiler_Rajiv_Code Based Evaluation & Recruitment
 
Introduction to ASP.NET
Introduction to ASP.NETIntroduction to ASP.NET
Introduction to ASP.NET
 
Introduction ASP
Introduction ASPIntroduction ASP
Introduction ASP
 
Intro To Asp Net And Web Forms
Intro To Asp Net And Web FormsIntro To Asp Net And Web Forms
Intro To Asp Net And Web Forms
 
Client & server side scripting
Client & server side scriptingClient & server side scripting
Client & server side scripting
 
CNIT 129S: Ch 5: Bypassing Client-Side Controls
CNIT 129S: Ch 5: Bypassing Client-Side ControlsCNIT 129S: Ch 5: Bypassing Client-Side Controls
CNIT 129S: Ch 5: Bypassing Client-Side Controls
 
CNIT 129S: 12: Attacking Users: Cross-Site Scripting (Part 1 of 2)
CNIT 129S: 12: Attacking Users: Cross-Site Scripting (Part 1 of 2)CNIT 129S: 12: Attacking Users: Cross-Site Scripting (Part 1 of 2)
CNIT 129S: 12: Attacking Users: Cross-Site Scripting (Part 1 of 2)
 
Evolution of Applications & Web
Evolution of Applications & WebEvolution of Applications & Web
Evolution of Applications & Web
 
Java selenium web driver
Java selenium web driverJava selenium web driver
Java selenium web driver
 
Asp .net web form fundamentals
Asp .net web form fundamentalsAsp .net web form fundamentals
Asp .net web form fundamentals
 
ASP
ASPASP
ASP
 
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
 
Server side scripting
Server side scriptingServer side scripting
Server side scripting
 
Asp Architecture
Asp ArchitectureAsp Architecture
Asp Architecture
 
Programming and the web for beginners
Programming and the web for beginnersProgramming and the web for beginners
Programming and the web for beginners
 
Active server pages
Active server pagesActive server pages
Active server pages
 
EF Core (RC2)
EF Core (RC2)EF Core (RC2)
EF Core (RC2)
 
TypeScript and SharePoint Framework
TypeScript and SharePoint FrameworkTypeScript and SharePoint Framework
TypeScript and SharePoint Framework
 

Viewers also liked

Data Science for Every Student at RPI
Data Science for Every Student at RPIData Science for Every Student at RPI
Data Science for Every Student at RPI
Steven Miller
 
Introduction to IBM Cognitive Business
Introduction to IBM Cognitive Business Introduction to IBM Cognitive Business
Introduction to IBM Cognitive Business
Donna M Stechey
 
Watson Guiding The Way Using cognitive computing to discover the secrets behi...
Watson Guiding The Way Using cognitive computing to discover the secrets behi...Watson Guiding The Way Using cognitive computing to discover the secrets behi...
Watson Guiding The Way Using cognitive computing to discover the secrets behi...
Steven Miller
 
Business and Higher Education Collaborating to Create Actionable Intelligence...
Business and Higher Education Collaborating to Create Actionable Intelligence...Business and Higher Education Collaborating to Create Actionable Intelligence...
Business and Higher Education Collaborating to Create Actionable Intelligence...
Steven Miller
 
Building the Data Science Profession in Europe
Building the Data Science Profession in EuropeBuilding the Data Science Profession in Europe
Building the Data Science Profession in Europe
Steven Miller
 
Deakin University’s IBM Centre of Excellence in Business Analytics
Deakin University’s IBM Centre of Excellence in Business Analytics Deakin University’s IBM Centre of Excellence in Business Analytics
Deakin University’s IBM Centre of Excellence in Business Analytics
Steven Miller
 
IBM Watson in the Cognitive Era
IBM Watson in the Cognitive EraIBM Watson in the Cognitive Era
IBM Watson in the Cognitive Era
Steven Miller
 
Watson Analytics at University of Washington Tacoma
Watson Analytics at University of Washington TacomaWatson Analytics at University of Washington Tacoma
Watson Analytics at University of Washington Tacoma
Steven Miller
 
Watson Supported Personal Digital Learning Environment – Towards New Generati...
Watson Supported Personal Digital Learning Environment – Towards New Generati...Watson Supported Personal Digital Learning Environment – Towards New Generati...
Watson Supported Personal Digital Learning Environment – Towards New Generati...
Steven Miller
 
IBM Watson Classroom Experience
IBM Watson Classroom ExperienceIBM Watson Classroom Experience
IBM Watson Classroom Experience
Steven Miller
 
Cognitive Assistant for Data Scientists (CADS)
Cognitive Assistant for Data Scientists (CADS)Cognitive Assistant for Data Scientists (CADS)
Cognitive Assistant for Data Scientists (CADS)
Steven Miller
 
Driving Data and Cognitive Sciences Curriculum at the Nexus of Society, Polic...
Driving Data and Cognitive Sciences Curriculum at the Nexus of Society, Polic...Driving Data and Cognitive Sciences Curriculum at the Nexus of Society, Polic...
Driving Data and Cognitive Sciences Curriculum at the Nexus of Society, Polic...
Steven Miller
 
The Power of Cognitive Computing for the Internet of Things
The Power of Cognitive Computing for the Internet of ThingsThe Power of Cognitive Computing for the Internet of Things
The Power of Cognitive Computing for the Internet of Things
Steven Miller
 
Merging Tech & Marketing in a Cognitive World
Merging Tech & Marketing in a Cognitive WorldMerging Tech & Marketing in a Cognitive World
Merging Tech & Marketing in a Cognitive World
Steven Miller
 
Preparing the next generation for the cognitive era - NFAIS Keynote
Preparing the next generation for the cognitive era - NFAIS KeynotePreparing the next generation for the cognitive era - NFAIS Keynote
Preparing the next generation for the cognitive era - NFAIS Keynote
Steven Miller
 
Transforming ibm in the cognitive and cloud era
Transforming ibm in the cognitive and cloud eraTransforming ibm in the cognitive and cloud era
Transforming ibm in the cognitive and cloud era
Steven Miller
 
Watson Goes to College: Cognitive as an enabler of tech entrepreneurship in S...
Watson Goes to College: Cognitive as an enabler of tech entrepreneurship in S...Watson Goes to College: Cognitive as an enabler of tech entrepreneurship in S...
Watson Goes to College: Cognitive as an enabler of tech entrepreneurship in S...
Steven Miller
 
Cognitive Computing at University Osnabrück
Cognitive Computing at University OsnabrückCognitive Computing at University Osnabrück
Cognitive Computing at University Osnabrück
Steven Miller
 
Future of AI
Future of AIFuture of AI
Future of AI
Steven Miller
 

Viewers also liked (19)

Data Science for Every Student at RPI
Data Science for Every Student at RPIData Science for Every Student at RPI
Data Science for Every Student at RPI
 
Introduction to IBM Cognitive Business
Introduction to IBM Cognitive Business Introduction to IBM Cognitive Business
Introduction to IBM Cognitive Business
 
Watson Guiding The Way Using cognitive computing to discover the secrets behi...
Watson Guiding The Way Using cognitive computing to discover the secrets behi...Watson Guiding The Way Using cognitive computing to discover the secrets behi...
Watson Guiding The Way Using cognitive computing to discover the secrets behi...
 
Business and Higher Education Collaborating to Create Actionable Intelligence...
Business and Higher Education Collaborating to Create Actionable Intelligence...Business and Higher Education Collaborating to Create Actionable Intelligence...
Business and Higher Education Collaborating to Create Actionable Intelligence...
 
Building the Data Science Profession in Europe
Building the Data Science Profession in EuropeBuilding the Data Science Profession in Europe
Building the Data Science Profession in Europe
 
Deakin University’s IBM Centre of Excellence in Business Analytics
Deakin University’s IBM Centre of Excellence in Business Analytics Deakin University’s IBM Centre of Excellence in Business Analytics
Deakin University’s IBM Centre of Excellence in Business Analytics
 
IBM Watson in the Cognitive Era
IBM Watson in the Cognitive EraIBM Watson in the Cognitive Era
IBM Watson in the Cognitive Era
 
Watson Analytics at University of Washington Tacoma
Watson Analytics at University of Washington TacomaWatson Analytics at University of Washington Tacoma
Watson Analytics at University of Washington Tacoma
 
Watson Supported Personal Digital Learning Environment – Towards New Generati...
Watson Supported Personal Digital Learning Environment – Towards New Generati...Watson Supported Personal Digital Learning Environment – Towards New Generati...
Watson Supported Personal Digital Learning Environment – Towards New Generati...
 
IBM Watson Classroom Experience
IBM Watson Classroom ExperienceIBM Watson Classroom Experience
IBM Watson Classroom Experience
 
Cognitive Assistant for Data Scientists (CADS)
Cognitive Assistant for Data Scientists (CADS)Cognitive Assistant for Data Scientists (CADS)
Cognitive Assistant for Data Scientists (CADS)
 
Driving Data and Cognitive Sciences Curriculum at the Nexus of Society, Polic...
Driving Data and Cognitive Sciences Curriculum at the Nexus of Society, Polic...Driving Data and Cognitive Sciences Curriculum at the Nexus of Society, Polic...
Driving Data and Cognitive Sciences Curriculum at the Nexus of Society, Polic...
 
The Power of Cognitive Computing for the Internet of Things
The Power of Cognitive Computing for the Internet of ThingsThe Power of Cognitive Computing for the Internet of Things
The Power of Cognitive Computing for the Internet of Things
 
Merging Tech & Marketing in a Cognitive World
Merging Tech & Marketing in a Cognitive WorldMerging Tech & Marketing in a Cognitive World
Merging Tech & Marketing in a Cognitive World
 
Preparing the next generation for the cognitive era - NFAIS Keynote
Preparing the next generation for the cognitive era - NFAIS KeynotePreparing the next generation for the cognitive era - NFAIS Keynote
Preparing the next generation for the cognitive era - NFAIS Keynote
 
Transforming ibm in the cognitive and cloud era
Transforming ibm in the cognitive and cloud eraTransforming ibm in the cognitive and cloud era
Transforming ibm in the cognitive and cloud era
 
Watson Goes to College: Cognitive as an enabler of tech entrepreneurship in S...
Watson Goes to College: Cognitive as an enabler of tech entrepreneurship in S...Watson Goes to College: Cognitive as an enabler of tech entrepreneurship in S...
Watson Goes to College: Cognitive as an enabler of tech entrepreneurship in S...
 
Cognitive Computing at University Osnabrück
Cognitive Computing at University OsnabrückCognitive Computing at University Osnabrück
Cognitive Computing at University Osnabrück
 
Future of AI
Future of AIFuture of AI
Future of AI
 

Similar to Cloud Computing in Systems Programming Curriculum

Hpc lunch and learn
Hpc lunch and learnHpc lunch and learn
Hpc lunch and learn
John D Almon
 
Meetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleMeetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech People
IT Arena
 
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem. SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
Kushan Lahiru Perera
 
AIR - Framework ( Cairngorm and Parsley )
AIR - Framework ( Cairngorm and Parsley )AIR - Framework ( Cairngorm and Parsley )
AIR - Framework ( Cairngorm and Parsley )
senthil0809
 
Mobile and IBM Worklight Best Practices
Mobile and IBM Worklight Best PracticesMobile and IBM Worklight Best Practices
Mobile and IBM Worklight Best PracticesAndrew Ferrier
 
02 intro
02   intro02   intro
02 intro
babak mehrabi
 
Web Landscape - updated in Jan 2016
Web Landscape - updated in Jan 2016Web Landscape - updated in Jan 2016
Web Landscape - updated in Jan 2016
Jack Zheng
 
Web Tools for GemStone/S
Web Tools for GemStone/SWeb Tools for GemStone/S
Web Tools for GemStone/S
ESUG
 
Porting an Open Source Lp Solver to Web Assembly
 Porting an Open Source Lp Solver to Web Assembly Porting an Open Source Lp Solver to Web Assembly
Porting an Open Source Lp Solver to Web Assembly
Fabion Kauker
 
Html5 Application Security
Html5 Application SecurityHtml5 Application Security
Html5 Application Security
chuckbt
 
Android quick talk
Android quick talkAndroid quick talk
Android quick talk
SenthilKumar Selvaraj
 
Code for Startup MVP (Ruby on Rails) Session 1
Code for Startup MVP (Ruby on Rails) Session 1Code for Startup MVP (Ruby on Rails) Session 1
Code for Startup MVP (Ruby on Rails) Session 1
Henry S
 
Web Architecture and Technologies
Web Architecture and TechnologiesWeb Architecture and Technologies
Web Architecture and Technologies
Fulvio Corno
 
Thick Application Penetration Testing - A Crash Course
Thick Application Penetration Testing - A Crash CourseThick Application Penetration Testing - A Crash Course
Thick Application Penetration Testing - A Crash CourseNetSPI
 
Normalizing x pages web development
Normalizing x pages web development Normalizing x pages web development
Normalizing x pages web development
Shean McManus
 
AOUG_11Nov2016_Challenges_with_EBS12_2
AOUG_11Nov2016_Challenges_with_EBS12_2AOUG_11Nov2016_Challenges_with_EBS12_2
AOUG_11Nov2016_Challenges_with_EBS12_2Sean Braymen
 
Learn Electron for Web Developers
Learn Electron for Web DevelopersLearn Electron for Web Developers
Learn Electron for Web Developers
Kyle Cearley
 

Similar to Cloud Computing in Systems Programming Curriculum (20)

Hpc lunch and learn
Hpc lunch and learnHpc lunch and learn
Hpc lunch and learn
 
Meetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleMeetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech People
 
introduction to web application development
introduction to web application developmentintroduction to web application development
introduction to web application development
 
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem. SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
 
AIR - Framework ( Cairngorm and Parsley )
AIR - Framework ( Cairngorm and Parsley )AIR - Framework ( Cairngorm and Parsley )
AIR - Framework ( Cairngorm and Parsley )
 
Mobile and IBM Worklight Best Practices
Mobile and IBM Worklight Best PracticesMobile and IBM Worklight Best Practices
Mobile and IBM Worklight Best Practices
 
02 intro
02   intro02   intro
02 intro
 
Web Landscape - updated in Jan 2016
Web Landscape - updated in Jan 2016Web Landscape - updated in Jan 2016
Web Landscape - updated in Jan 2016
 
Web Tools for GemStone/S
Web Tools for GemStone/SWeb Tools for GemStone/S
Web Tools for GemStone/S
 
Porting an Open Source Lp Solver to Web Assembly
 Porting an Open Source Lp Solver to Web Assembly Porting an Open Source Lp Solver to Web Assembly
Porting an Open Source Lp Solver to Web Assembly
 
Html5 Application Security
Html5 Application SecurityHtml5 Application Security
Html5 Application Security
 
Android quick talk
Android quick talkAndroid quick talk
Android quick talk
 
Code for Startup MVP (Ruby on Rails) Session 1
Code for Startup MVP (Ruby on Rails) Session 1Code for Startup MVP (Ruby on Rails) Session 1
Code for Startup MVP (Ruby on Rails) Session 1
 
Web Architecture and Technologies
Web Architecture and TechnologiesWeb Architecture and Technologies
Web Architecture and Technologies
 
Thick Application Penetration Testing - A Crash Course
Thick Application Penetration Testing - A Crash CourseThick Application Penetration Testing - A Crash Course
Thick Application Penetration Testing - A Crash Course
 
20120306 dublin js
20120306 dublin js20120306 dublin js
20120306 dublin js
 
Transforming the web into a real application platform
Transforming the web into a real application platformTransforming the web into a real application platform
Transforming the web into a real application platform
 
Normalizing x pages web development
Normalizing x pages web development Normalizing x pages web development
Normalizing x pages web development
 
AOUG_11Nov2016_Challenges_with_EBS12_2
AOUG_11Nov2016_Challenges_with_EBS12_2AOUG_11Nov2016_Challenges_with_EBS12_2
AOUG_11Nov2016_Challenges_with_EBS12_2
 
Learn Electron for Web Developers
Learn Electron for Web DevelopersLearn Electron for Web Developers
Learn Electron for Web Developers
 

More from Steven Miller

The exciting new world of code & data
The exciting new world of code & dataThe exciting new world of code & data
The exciting new world of code & data
Steven Miller
 
Where the data jobs are? A Data PDX talk
Where the data jobs are?  A Data PDX talkWhere the data jobs are?  A Data PDX talk
Where the data jobs are? A Data PDX talk
Steven Miller
 
Where are the data professionals
Where are the data professionalsWhere are the data professionals
Where are the data professionals
Steven Miller
 
Preparing the next generation for the cognitive era
Preparing the next generation for the cognitive eraPreparing the next generation for the cognitive era
Preparing the next generation for the cognitive era
Steven Miller
 
Preparing the next generation for the cognitive era
Preparing the next generation for the cognitive era Preparing the next generation for the cognitive era
Preparing the next generation for the cognitive era
Steven Miller
 
Industry and academic partnerships july 2015 final
Industry and academic partnerships july 2015 finalIndustry and academic partnerships july 2015 final
Industry and academic partnerships july 2015 final
Steven Miller
 
Big Data Careers
Big Data CareersBig Data Careers
Big Data Careers
Steven Miller
 
Big data roles overview july 2013
Big data roles overview july 2013Big data roles overview july 2013
Big data roles overview july 2013Steven Miller
 
Data Curation: Retooling the Existing Workforce
Data Curation: Retooling the Existing WorkforceData Curation: Retooling the Existing Workforce
Data Curation: Retooling the Existing Workforce
Steven Miller
 
Day of data: skills for the future
Day of data: skills for the futureDay of data: skills for the future
Day of data: skills for the future
Steven Miller
 

More from Steven Miller (10)

The exciting new world of code & data
The exciting new world of code & dataThe exciting new world of code & data
The exciting new world of code & data
 
Where the data jobs are? A Data PDX talk
Where the data jobs are?  A Data PDX talkWhere the data jobs are?  A Data PDX talk
Where the data jobs are? A Data PDX talk
 
Where are the data professionals
Where are the data professionalsWhere are the data professionals
Where are the data professionals
 
Preparing the next generation for the cognitive era
Preparing the next generation for the cognitive eraPreparing the next generation for the cognitive era
Preparing the next generation for the cognitive era
 
Preparing the next generation for the cognitive era
Preparing the next generation for the cognitive era Preparing the next generation for the cognitive era
Preparing the next generation for the cognitive era
 
Industry and academic partnerships july 2015 final
Industry and academic partnerships july 2015 finalIndustry and academic partnerships july 2015 final
Industry and academic partnerships july 2015 final
 
Big Data Careers
Big Data CareersBig Data Careers
Big Data Careers
 
Big data roles overview july 2013
Big data roles overview july 2013Big data roles overview july 2013
Big data roles overview july 2013
 
Data Curation: Retooling the Existing Workforce
Data Curation: Retooling the Existing WorkforceData Curation: Retooling the Existing Workforce
Data Curation: Retooling the Existing Workforce
 
Day of data: skills for the future
Day of data: skills for the futureDay of data: skills for the future
Day of data: skills for the future
 

Recently uploaded

一比一原版(Deakin毕业证书)迪肯大学毕业证如何办理
一比一原版(Deakin毕业证书)迪肯大学毕业证如何办理一比一原版(Deakin毕业证书)迪肯大学毕业证如何办理
一比一原版(Deakin毕业证书)迪肯大学毕业证如何办理
oz8q3jxlp
 
一比一原版(Adelaide毕业证书)阿德莱德大学毕业证如何办理
一比一原版(Adelaide毕业证书)阿德莱德大学毕业证如何办理一比一原版(Adelaide毕业证书)阿德莱德大学毕业证如何办理
一比一原版(Adelaide毕业证书)阿德莱德大学毕业证如何办理
slg6lamcq
 
Malana- Gimlet Market Analysis (Portfolio 2)
Malana- Gimlet Market Analysis (Portfolio 2)Malana- Gimlet Market Analysis (Portfolio 2)
Malana- Gimlet Market Analysis (Portfolio 2)
TravisMalana
 
原版制作(Deakin毕业证书)迪肯大学毕业证学位证一模一样
原版制作(Deakin毕业证书)迪肯大学毕业证学位证一模一样原版制作(Deakin毕业证书)迪肯大学毕业证学位证一模一样
原版制作(Deakin毕业证书)迪肯大学毕业证学位证一模一样
u86oixdj
 
一比一原版(UIUC毕业证)伊利诺伊大学|厄巴纳-香槟分校毕业证如何办理
一比一原版(UIUC毕业证)伊利诺伊大学|厄巴纳-香槟分校毕业证如何办理一比一原版(UIUC毕业证)伊利诺伊大学|厄巴纳-香槟分校毕业证如何办理
一比一原版(UIUC毕业证)伊利诺伊大学|厄巴纳-香槟分校毕业证如何办理
ahzuo
 
一比一原版(Bradford毕业证书)布拉德福德大学毕业证如何办理
一比一原版(Bradford毕业证书)布拉德福德大学毕业证如何办理一比一原版(Bradford毕业证书)布拉德福德大学毕业证如何办理
一比一原版(Bradford毕业证书)布拉德福德大学毕业证如何办理
mbawufebxi
 
一比一原版(BCU毕业证书)伯明翰城市大学毕业证如何办理
一比一原版(BCU毕业证书)伯明翰城市大学毕业证如何办理一比一原版(BCU毕业证书)伯明翰城市大学毕业证如何办理
一比一原版(BCU毕业证书)伯明翰城市大学毕业证如何办理
dwreak4tg
 
Unleashing the Power of Data_ Choosing a Trusted Analytics Platform.pdf
Unleashing the Power of Data_ Choosing a Trusted Analytics Platform.pdfUnleashing the Power of Data_ Choosing a Trusted Analytics Platform.pdf
Unleashing the Power of Data_ Choosing a Trusted Analytics Platform.pdf
Enterprise Wired
 
办(uts毕业证书)悉尼科技大学毕业证学历证书原版一模一样
办(uts毕业证书)悉尼科技大学毕业证学历证书原版一模一样办(uts毕业证书)悉尼科技大学毕业证学历证书原版一模一样
办(uts毕业证书)悉尼科技大学毕业证学历证书原版一模一样
apvysm8
 
Nanandann Nilekani's ppt On India's .pdf
Nanandann Nilekani's ppt On India's .pdfNanandann Nilekani's ppt On India's .pdf
Nanandann Nilekani's ppt On India's .pdf
eddie19851
 
哪里卖(usq毕业证书)南昆士兰大学毕业证研究生文凭证书托福证书原版一模一样
哪里卖(usq毕业证书)南昆士兰大学毕业证研究生文凭证书托福证书原版一模一样哪里卖(usq毕业证书)南昆士兰大学毕业证研究生文凭证书托福证书原版一模一样
哪里卖(usq毕业证书)南昆士兰大学毕业证研究生文凭证书托福证书原版一模一样
axoqas
 
Global Situational Awareness of A.I. and where its headed
Global Situational Awareness of A.I. and where its headedGlobal Situational Awareness of A.I. and where its headed
Global Situational Awareness of A.I. and where its headed
vikram sood
 
My burning issue is homelessness K.C.M.O.
My burning issue is homelessness K.C.M.O.My burning issue is homelessness K.C.M.O.
My burning issue is homelessness K.C.M.O.
rwarrenll
 
Machine learning and optimization techniques for electrical drives.pptx
Machine learning and optimization techniques for electrical drives.pptxMachine learning and optimization techniques for electrical drives.pptx
Machine learning and optimization techniques for electrical drives.pptx
balafet
 
STATATHON: Unleashing the Power of Statistics in a 48-Hour Knowledge Extravag...
STATATHON: Unleashing the Power of Statistics in a 48-Hour Knowledge Extravag...STATATHON: Unleashing the Power of Statistics in a 48-Hour Knowledge Extravag...
STATATHON: Unleashing the Power of Statistics in a 48-Hour Knowledge Extravag...
sameer shah
 
一比一原版(爱大毕业证书)爱丁堡大学毕业证如何办理
一比一原版(爱大毕业证书)爱丁堡大学毕业证如何办理一比一原版(爱大毕业证书)爱丁堡大学毕业证如何办理
一比一原版(爱大毕业证书)爱丁堡大学毕业证如何办理
g4dpvqap0
 
Data_and_Analytics_Essentials_Architect_an_Analytics_Platform.pptx
Data_and_Analytics_Essentials_Architect_an_Analytics_Platform.pptxData_and_Analytics_Essentials_Architect_an_Analytics_Platform.pptx
Data_and_Analytics_Essentials_Architect_an_Analytics_Platform.pptx
AnirbanRoy608946
 
Everything you wanted to know about LIHTC
Everything you wanted to know about LIHTCEverything you wanted to know about LIHTC
Everything you wanted to know about LIHTC
Roger Valdez
 
做(mqu毕业证书)麦考瑞大学毕业证硕士文凭证书学费发票原版一模一样
做(mqu毕业证书)麦考瑞大学毕业证硕士文凭证书学费发票原版一模一样做(mqu毕业证书)麦考瑞大学毕业证硕士文凭证书学费发票原版一模一样
做(mqu毕业证书)麦考瑞大学毕业证硕士文凭证书学费发票原版一模一样
axoqas
 
Adjusting primitives for graph : SHORT REPORT / NOTES
Adjusting primitives for graph : SHORT REPORT / NOTESAdjusting primitives for graph : SHORT REPORT / NOTES
Adjusting primitives for graph : SHORT REPORT / NOTES
Subhajit Sahu
 

Recently uploaded (20)

一比一原版(Deakin毕业证书)迪肯大学毕业证如何办理
一比一原版(Deakin毕业证书)迪肯大学毕业证如何办理一比一原版(Deakin毕业证书)迪肯大学毕业证如何办理
一比一原版(Deakin毕业证书)迪肯大学毕业证如何办理
 
一比一原版(Adelaide毕业证书)阿德莱德大学毕业证如何办理
一比一原版(Adelaide毕业证书)阿德莱德大学毕业证如何办理一比一原版(Adelaide毕业证书)阿德莱德大学毕业证如何办理
一比一原版(Adelaide毕业证书)阿德莱德大学毕业证如何办理
 
Malana- Gimlet Market Analysis (Portfolio 2)
Malana- Gimlet Market Analysis (Portfolio 2)Malana- Gimlet Market Analysis (Portfolio 2)
Malana- Gimlet Market Analysis (Portfolio 2)
 
原版制作(Deakin毕业证书)迪肯大学毕业证学位证一模一样
原版制作(Deakin毕业证书)迪肯大学毕业证学位证一模一样原版制作(Deakin毕业证书)迪肯大学毕业证学位证一模一样
原版制作(Deakin毕业证书)迪肯大学毕业证学位证一模一样
 
一比一原版(UIUC毕业证)伊利诺伊大学|厄巴纳-香槟分校毕业证如何办理
一比一原版(UIUC毕业证)伊利诺伊大学|厄巴纳-香槟分校毕业证如何办理一比一原版(UIUC毕业证)伊利诺伊大学|厄巴纳-香槟分校毕业证如何办理
一比一原版(UIUC毕业证)伊利诺伊大学|厄巴纳-香槟分校毕业证如何办理
 
一比一原版(Bradford毕业证书)布拉德福德大学毕业证如何办理
一比一原版(Bradford毕业证书)布拉德福德大学毕业证如何办理一比一原版(Bradford毕业证书)布拉德福德大学毕业证如何办理
一比一原版(Bradford毕业证书)布拉德福德大学毕业证如何办理
 
一比一原版(BCU毕业证书)伯明翰城市大学毕业证如何办理
一比一原版(BCU毕业证书)伯明翰城市大学毕业证如何办理一比一原版(BCU毕业证书)伯明翰城市大学毕业证如何办理
一比一原版(BCU毕业证书)伯明翰城市大学毕业证如何办理
 
Unleashing the Power of Data_ Choosing a Trusted Analytics Platform.pdf
Unleashing the Power of Data_ Choosing a Trusted Analytics Platform.pdfUnleashing the Power of Data_ Choosing a Trusted Analytics Platform.pdf
Unleashing the Power of Data_ Choosing a Trusted Analytics Platform.pdf
 
办(uts毕业证书)悉尼科技大学毕业证学历证书原版一模一样
办(uts毕业证书)悉尼科技大学毕业证学历证书原版一模一样办(uts毕业证书)悉尼科技大学毕业证学历证书原版一模一样
办(uts毕业证书)悉尼科技大学毕业证学历证书原版一模一样
 
Nanandann Nilekani's ppt On India's .pdf
Nanandann Nilekani's ppt On India's .pdfNanandann Nilekani's ppt On India's .pdf
Nanandann Nilekani's ppt On India's .pdf
 
哪里卖(usq毕业证书)南昆士兰大学毕业证研究生文凭证书托福证书原版一模一样
哪里卖(usq毕业证书)南昆士兰大学毕业证研究生文凭证书托福证书原版一模一样哪里卖(usq毕业证书)南昆士兰大学毕业证研究生文凭证书托福证书原版一模一样
哪里卖(usq毕业证书)南昆士兰大学毕业证研究生文凭证书托福证书原版一模一样
 
Global Situational Awareness of A.I. and where its headed
Global Situational Awareness of A.I. and where its headedGlobal Situational Awareness of A.I. and where its headed
Global Situational Awareness of A.I. and where its headed
 
My burning issue is homelessness K.C.M.O.
My burning issue is homelessness K.C.M.O.My burning issue is homelessness K.C.M.O.
My burning issue is homelessness K.C.M.O.
 
Machine learning and optimization techniques for electrical drives.pptx
Machine learning and optimization techniques for electrical drives.pptxMachine learning and optimization techniques for electrical drives.pptx
Machine learning and optimization techniques for electrical drives.pptx
 
STATATHON: Unleashing the Power of Statistics in a 48-Hour Knowledge Extravag...
STATATHON: Unleashing the Power of Statistics in a 48-Hour Knowledge Extravag...STATATHON: Unleashing the Power of Statistics in a 48-Hour Knowledge Extravag...
STATATHON: Unleashing the Power of Statistics in a 48-Hour Knowledge Extravag...
 
一比一原版(爱大毕业证书)爱丁堡大学毕业证如何办理
一比一原版(爱大毕业证书)爱丁堡大学毕业证如何办理一比一原版(爱大毕业证书)爱丁堡大学毕业证如何办理
一比一原版(爱大毕业证书)爱丁堡大学毕业证如何办理
 
Data_and_Analytics_Essentials_Architect_an_Analytics_Platform.pptx
Data_and_Analytics_Essentials_Architect_an_Analytics_Platform.pptxData_and_Analytics_Essentials_Architect_an_Analytics_Platform.pptx
Data_and_Analytics_Essentials_Architect_an_Analytics_Platform.pptx
 
Everything you wanted to know about LIHTC
Everything you wanted to know about LIHTCEverything you wanted to know about LIHTC
Everything you wanted to know about LIHTC
 
做(mqu毕业证书)麦考瑞大学毕业证硕士文凭证书学费发票原版一模一样
做(mqu毕业证书)麦考瑞大学毕业证硕士文凭证书学费发票原版一模一样做(mqu毕业证书)麦考瑞大学毕业证硕士文凭证书学费发票原版一模一样
做(mqu毕业证书)麦考瑞大学毕业证硕士文凭证书学费发票原版一模一样
 
Adjusting primitives for graph : SHORT REPORT / NOTES
Adjusting primitives for graph : SHORT REPORT / NOTESAdjusting primitives for graph : SHORT REPORT / NOTES
Adjusting primitives for graph : SHORT REPORT / NOTES
 

Cloud Computing in Systems Programming Curriculum

  • 1. Cloud Computing in Systems Programming Curriculum Gustavo Rodriguez-Rivera, Purdue University Enrique Kortright, IBM
  • 2. CS252 Systems Programming Course • CS252 Systems programming is part of the core courses in the CS Curriculum. • It is the last course the undergraduates take before going to the specialization track.
  • 3. CS252 Systems Programming • In this course we want the students to: • Learn how to write and manage large applications (more than 1000 lines of code). • Advance C/C++ and Memory Allocation. • Understand the Operating System from the User Space view. • Shell Scripting • Write a Shell implementation with process creation, pipes, file redirection.
  • 4. CS252 Systems Programming • Learn thread programming, mutex locks, semaphores, and condition variables • Learn the basics of Internet protocols and socket programming. • Write a multi-threaded/multi-process web server. • Write web applications using HTML/HTTP • Write mobile applications using Android, iOS, and Windows • Learn how to use Cloud Computing in web and mobile applications (new)
  • 5. Kernel and User Mode Kernel Mode User Mode Software Interrupt
  • 7. System Calls Libc (the C library) provides wrappers for the system calls that eventually generate the system calls. User Mode: int open(fname, mode) { return syscall(SYS_open, fname, mode); } int syscall(syscall_num, …) { asm(INT); } Kernel Mode: Syscall interrupt handler: Read:… Write:… open: - Get file name and mode - Check if file exists - Verify permissions of file against mode. - Ask disk to Perform operation. Make process wait until operation is complete - return fd (file descriptor) Software Interrupt
  • 8. Web Applications Browser Application provides user interface. Security is checked in Web Service before performing service Web Browser HTML & Javascript GET or POST Web Application: - Check Login or SessionID - Check Arguments - Perform Service - Return Result JAVA/Python/Node.js/PHP HTTPS Data Base
  • 9. The Browser as an Operating System • The web browser is becoming the new operating system. User Space Office (C++) Eclipse (Java) App 3 (Python) Kernel Space Files Auth Network Web Browser Google Docs (JScript) Youtube (HTML5) Web Services Files Auth DBs Traditional View of OS App 4 (C#) Facebook (HTML) Web Browser as OS System Calls Internet (HTTP(S)/SOAP/JSON)
  • 10. Technologies that allow Browser as OS • HTML5 • Mature programming Language • Dynamically typed • High Performance JavaScript interpreter in Chrome, Firefox, Edge, Safari. • Canvas allows graphical information, use of mouse, multi-touch. • Java Script/ HTML Frameworks • Jquery, Bootstrap, AngularJS, IONIC, …. • WebGL • Allows the use of the GPU (Graphic Processing Unit) in the browser • High quality with real-time graphics • WebGL may be difficult to program with. Libraries such as three.js have been implemented to simply programming of WebGL. • http://threejs.org/
  • 11. Old generation Web Applications • Old Generation Web Apps • HTML, CSS Cascade Style Sheets, Forms • HTTP, HTTPS • Backend written with HTTP/HTTPS DoGet, DoPost handlers in Java, C#, Python, Java, • Computation and program logic is mostly done in the server. • Browser renders HTML and pictures. Advantage Simple Disadvantage Slow Response
  • 12. New generation Web Apps • New Generation Web Apps • HTML, CSS still used but less important • Browser runs a HTML5 /Javascript program that provides interaction locally • Program access web services directly. • Advantages • High response. • Logic is moved to the client using web services. • May run in mobile apps like phones without modification. • Disadvantages • Need to reengineer existing apps. • Javascript is dynamically typed so apps need to be tested better. • Javascript needs to be combined with HTML, CSS making it complicated. • Sources are available to the browser. Obfuscation may be needed for copyright protection.
  • 13. Final Projects using Bluemix • We would like students to to write applications were • Application runs in browser using HTML5 • Application calls web services in Bluemix • Final Projects • Groups of 3 students • Students may decide what apps to implement. • Games, Social network, Streaming • Use Source Control with Bluemix DevOps repository or GITHUB • Should run in both PCs and mobile devices • Apps call Bluemix Open Cloud Architecture • Projects are Open Sourced