CSE 102: Advanced Software Engineering


This hands-on course is the next level software engineering course, where you will learn professional software development practices, how to engineer software in a team environment and become familiar with advanced structures and frameworks in Python. At the end of the course, you will be able to utilize modern software development processes, collaborate with your team during development, create advanced software design and use Python frameworks to speed up your development.

This course is well suited for people who have some experience in software development and want to move to the next level. If you have already completed our basic course or have experience in other programming languages, this is the course for you. Prerequisite for this course is the CSE 101: Beginning Software Development course or completion of equivalent assessment. This course is part of the Cloud Software Engineer Learning Path.

Why Learn More Programming?

You have already learned the basics of Software Engineering and know the syntax of the Python language – why learn more? In order for you to be a professional Software Engineer, you need to be able to design software that can be used by others. You should also be able to use existing frameworks and libraries to speed up your development and complete your implementation within short timelines.

Professional Software Engineers use advanced programming constructs like classes and objects to model their software for reusability, and available Open Source or proprietary frameworks to achieve faster implementation. The software is also not developed in isolation – good Software Engineers are good team members and know how to collaborate while designing and implementing their products, applications or services.

Learning those advanced concepts is crucial for your success as Cloud Software Engineer.

What Will You Learn?

Throughout this course, you will get foundational knowledge in the following areas:

  • Object Oriented Programming (OOP) concepts
    • Object Oriented Programming in Python
    • Software Design Patterns
  • Advanced Python
    • Decorators
    • Lambdas
    • Iterators
  • Python frameworks
    • Django
    • Flask
    • Tornado
  • Distributing Python programs
    • Using PIP
  • Using modern development processes like Scrum and Kanban
  • Developing software as a team
  • Using source code repositories (Git)


Homework assignments will be given at the end of each session, and discussed at the beginning of the next session. Assignments will include solving small programming problems, topics research or functionality design.

Assignments need to be completed and submitted for evaluation before the next session starts.


Successful completion of CSE 101: Beginning Software Engineering or completion of acceptance test (see Where to Start?) is required for this course.

This is a bring-your-own-computer course! Please make sure you bring your laptop (Mac or Windows) and have it ready with the following setup:

  • Python binaries installed. We will use Python 2.7 for this course however, we will outline some differences between Python 2.x and 3.x
  • Text editor for editing configuration files. You can choose any text editor that you are familiar with. If you don’t have one we recommend Komodo Edit or Visual Studio Code which are lightweight, cross-platform (Mac and Windows) IDE
  • Git client installed. You can install the command line clients linked below. We also recommend SourceTree (available on both Mac and Windows) for people who prefer GUIs instead

Computer Requirements

Standard off-the-shelf laptop will be sufficient for this course however here are some requirements and recommendations:

  • 4GB RAM required; 8GB or more recommended
  • 50GB free disk space; SSD preferred
  • WiFi for access to the Internet (wired connectivity is not provided)
  • Chrome, Firefox or Safari browser

Also, make sure you have Admin/Root access to your machine’s OS if additional software installation is required.

Attendance Policy

No refunds will be issued for this course. Rebooking is possible no less than two weeks in advance.

This course is eligible for a professional certificate. In order to obtain the certificate, 90% attendance and 90% of the available homework points is required.

Arriving on-time, participation in discussions, and demonstration of professional courtesy to others are required.

Course Details

Duration: 50 hours
(weekend and evening schedules available)
Tuition Fee: $1,655

Related Courses