CSD 42 |

Syllabus



Differences between Software Engineering and Computer Programming

{Bridging the gap between graduate student to professional software engineer}
Software engineering happens in an organizational context. Writing clean code vs writing clever code. Hyrum's Law. Software engineering multi-version multi-person programming. Software Engineering is about addressing design tradeoffs. Software engineering is beyond coding and development. Operational issues of software engineering.



Elements of Software Engineering

{Five P's of Software Engineering}
A Running Example. A Conceptual model to understand software engineering. (1) Process Perspective. (2) Product perspective. (3) Persona perspective. (4) Principle perspective. (5) Practice perspective. Practices at FANG and Startup




Introduction to DevOps

{A Gentle Introduction to DevOps}
DevOps: Software Development and Operations. Understanding DevOps through 5P Conceptual Framework. DevOps Industrial adoption. DevOps research opportunities




Version Control System

{Git and GitHub}
Git as a local repository. GitHub remote nature. Branching purpose and strategy. GitHub as collaborative tool




Software Testing

{Testing Python Application}
Types of Software Testing. PyTest framework. Test fixture. Unit testing for Python. User Acceptance testing




Code Review

{Reviewing Python Code}
Python Programming PEP-8 guidelines. Goals and process of Code review. Static Code Analysis. PyLint.




Virtualization

{Introduction to Virtualization}
Virtualization definition and types of virtualization. Virtual Machine. Significance of virtualization to DevOps. Hypervisors. Virtualization and Cloud computing. Virtualization and DevOps.



Containerization

{Introduction}
Introduction. Significance of Containerization to DevOps. Docker and Kubernetes




Infrastructure as a Code

{Introduction}
Significance of IaC to DevOps. Terraform




Grading Policy

  • Continuous Assessment: 20%
    • Mid Semester Examination: 20%
    • End Semester Examinations: 60%





Made by Arvind W Kiwelekar