Software Engineering Curriculum
Software Engineering Curriculum
PG DIPLOMA IN
SOFTWARE ENGINEERING
50 WEEKS | ONLINE | PROGRAM STARTS: DEC 2017
UpGrad is an online education platform that enables individuals to develop their
professional potential in the most engaging learning environment. Online education
is a fundamental disruption to the traditional model and will be having a far-reaching
impact. At UpGrad, we work towards transforming this online education wave into a
tsunami! We take a full-stack approach, by leveraging content, technology,
marketing and services, to offer quality education at scale in partnership with
corporates and academia. This translates into rigorous industry relevant programs
for individuals looking for a professional upgrade.
In last 10 years, digital technology has had a profound impact on billions of lives and
thousands of businesses in India and abroad. The pace of growth is only expected to
increase further, as the $150 billion Indian IT industry is set to double its revenue in
the next 10 years. This growth will be driven by new age digital products and
services, which will create millions of new software engineering jobs. To address this
industry need, we have designed a joint Post-Graduate Diploma program in Software
Engineering, with IIIT-B.
Ronnie Screwvala
Co-Founder
UpGrad
b
As an independent institution and a deemed university, IIIT-B collaborates with the
IT industry, leading academic institutions abroad, eminent scientists and industry
leaders to offer students the best possible education. Our outstanding faculty,
curriculum and pedagogy ensures that our graduate programs are ranked among
the best in the country. Our students have been well received by industry, and have
been placed with some of the leading companies in the IT industry.
Prof. S. Sadagopan
Director
IIIT Bangalore
WHY SOFTWARE
ENGINEERING?
A software engineer sitting in his hostel room created a
software that is used by more than a billion people today.
Another software engineer created a website that built a
website which today sells items worth more than GDP of
few countries! These present day internet giants known
as Facebook and Amazon, started off as the work of a
single software engineer!
CAREER HANDS ON
SUPPORT EXPERIENCE
Access to career coaching services like Build a portfolio of industry-relevant
1-on-1 counselling sessions & personalised projects to showcase your programming
interview and CV preparation skills to potential recruiters
ON-THE GO STUDENT
LEARNING SUPPORT
Lessons condensed into easy-to-consume Round the clock academic &
30 mins sessions which you can access non-academic support along with
anywhere - anytime unparalleled peer-to-peer learning
WHO IS THIS
PROGRAM FOR?
Whether you are looking to transition to a software engineer role from a non-programming
background or an existing software engineer aspiring to grow your skill-set and become a
full-stack developer, this program has been specifically designed to cater to your needs
PROF. K V DINESHA
Professor, IIIT Bangalore
20+ years experience in software research
Ph.D. (Physics) - IIT Bombay
PROF. V N MURALIDHARA
Associate Professor, IIIT Bangalore
15+ years experience in software research
Ph.D. (Computer Science) - IIT Delhi
PROF. M DSOUZA
Associate Professor, IIIT Bangalore
7+ years experience in software industry
Ph.D. (Computer Science) - Institute of Mathematical Science
PROF. S K CHAKRABARTI
Assistant Professor, IIIT Bangalore
8+ years experience in software industry
Ph.D. (Computer Science) - Indian Institute of Science
PROGRAM
CURRICULUM
COURSE 0:
PRE-REQUISITE - INTRODUCTION TO PROGRAMMING
(Duration : 3 weeks)
Worried that your lack of programming experience will make it difficult for you to succeed in
this program? Then fear not! The pre-requisite course is here to help introduce learners
with no/little programming background to fundamental programming concepts. The course
will help provide you a solid base for the upcoming rigors of the course
Topics Covered:
Fundamentals of computational thinking
Introduction to variables
Basics of programming in Java (Loops and Control statements)
Introduction to functions
Topics Covered:
Introduction to object oriented programming
Fundamentals of using classes
Learning inheritance and polymorphism
Course Outcomes:
You will be able to plan, build and write maintainable computer programs using object oriented
programming concepts such as classes, objects, inheritance, and polymorphism
Note: IIIT-B and UpGrad reserve the right to edit/alter the curriculum at a later date based on
academic requirement and industry feedback
COURSE 2 - ALGORITHMS
(Duration - 4 weeks)
The course will help you learn and apply various algorithmic techniques in their
programs. This shall help you design and optimise proper logic for the functioning for
your programs
Topics Covered:
Analysis of Algorithm Complexity Greedy Algorithm
Divide & Conquer algorithm Dynamic Programming
Course Outcomes:
You will be able to formally analyze the performance of their computer programs and
improve the performance of the computer programs using algorithms
Topics Covered:
Arrays & Linked lists Heaps
Stacks & Queues Hash Tables
Trees & Binary search trees Graphs and graph algorithms
Course Outcomes:
You will be able to select the correct data structure for the right programming scenario helping
them write better programs, both in terms of space and time complexity
Note: IIIT-B and UpGrad reserve the right to edit/alter the curriculum at a later date based on
academic requirement and industry feedback
COURSE 4 - SOFTWARE ENGINEERING FRAMEWORKS
AND SERVER SIDE DEPLOYMENT
(Duration - 4.5 weeks)
The course will help you know about the software lifecycle, frameworks and program
deployment that will help them contribute to existing software projects and developer teams
Topics Covered:
Version control with Git Model-View-Controller (MVC) architecture
Software engineering practices Databases and ORMs
Agile software development Introduction to React JS framework
Test driven development
Course Outcomes:
You will be able to create well structured programs and also work across large projects
with teams of software engineers.
Topics Covered:
UML and UML diagrams Distributed system and scalable architecture
Software design patterns Code review and debugging
API backend
Course Outcomes:
You will be able to build scalable API servers that can sustain the highest levels of concurrency
and request rates
Note: IIIT-B and UpGrad reserve the right to edit/alter the curriculum at a later date based on
academic requirement and industry feedback
COURSE 6 - SOFTWARE DESIGN AND
FRONTEND DEVELOPMENT
(Duration - 6 weeks)
The course will help you acquire software engineering skills needed to build a software
project from scratch. The course will also cover the frontend development skills
required to build interactive web applications
Topics Covered:
Project Management and Planning Software Architecture
Software Requirements User Experience Design
Use Cases and Scenarios Frontend Development
Course Outcomes:
You will be able to manage the end-to-end process of starting and developing a new
software project - right from gathering the requirements to choosing the appropriate
architecture to model the software on.
Topics Covered:
Advanced Javascript and tools Advanced testing
React JS Intro to DevOps
Course Outcomes:
You will build upon their knowledge of frontend development and learn to use popular
Javascript tools, Javascript ES6 and React JS to build modern web apps. Using DevOps, you
will now be able to automate the deployment of their software projects
Note: IIIT-B and UpGrad reserve the right to edit/alter the curriculum at a later date based on
academic requirement and industry feedback
COURSE 8 - MOBILE APP DEVELOPMENT
(Duration - 4.5 weeks)
The course will help you build native mobile apps that run on both iOS and Android
devices, using React Native library
Topics Covered:
React Native library
Hybrid app development
Course Outcomes:
You will be able to build a hybrid mobile app that is functional on both iOS & Android
platforms
You will work on an industry relevant project creating a ready-to-use software product with a
robust backend and an engaging user interface. The projects have been decided to ensure
that you get to apply all the lessons you have covered during the 50-week program.
Note: IIIT-B and UpGrad reserve the right to edit/alter the curriculum at a later date based on
academic requirement and industry feedback
PROGRAM
DETAILS
PROGRAM STARTS
December 2017
DURATION
50 Weeks
PROGRAM FEES
Rs. 2,25,000/- (inclusive of taxes)
ELIGIBILITY
Having a minimum 3 year UG degree Minimum 50% marks or 5/10 GPA (on a
(e.g. BE, BTECH, BCA, BCOM, BA) scale of 10) or 2/4 GPA (on a scale of 4)
in undergraduate degree examination.
Final year college students enrolled in
degree types mentioned above, are also In case a student has lower than 50% marks
eligible to apply. However, in order to in UG degree but has higher than 50% marks
successfully graduate from the program and in a PG qualification (e.g. Postgraduate
receive a post-graduate diploma, they will Diploma, Master's Degree etc.), he/she will
have to provide proof of UG graduation also be eligible to apply
(e.g. provisional degree)
ADMISSIONS PROCEDURE
Post application, we have an admission process (customised to your profile) to assess your
programming aptitude