0% found this document useful (0 votes)
7 views2 pages

Linux and C++ Software Engineering Course

The document outlines a Software Engineering Diploma curriculum spanning 12 weeks, covering topics such as Linux operating system basics, file operations, C++ programming, object-oriented programming, design patterns, and software engineering principles. Key sessions include user and permissions management, system management, modular programming, and DevOps practices using Git and Jenkins. The course aims to equip students with essential software engineering skills through theoretical knowledge and practical applications.

Uploaded by

ka3585369
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views2 pages

Linux and C++ Software Engineering Course

The document outlines a Software Engineering Diploma curriculum spanning 12 weeks, covering topics such as Linux operating system basics, file operations, C++ programming, object-oriented programming, design patterns, and software engineering principles. Key sessions include user and permissions management, system management, modular programming, and DevOps practices using Git and Jenkins. The course aims to equip students with essential software engineering skills through theoretical knowledge and practical applications.

Uploaded by

ka3585369
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Software Engineering Diploma

Week 1 Introduction to Linux


Session 1 Objective: Introduce students to the Linux operating system and its core concepts.
 What is Linux?
 History of Linux and its distributions
 Linux as an open-source operating system
 Introduction to the Linux terminal
 Basic terminal commands (ls, cd, pwd, mkdir, rmdir)
 File and directory structure in Linux
 Navigating the file system

Session 2: Users and Permissions


 Objective: Teach users and permissions management in Linux.
 User accounts in Linux
 Creating and deleting user accounts
 User groups and group management
 File and directory permissions (chmod, chown)
 Understanding permission modes (rwx)
 Changing ownership and permissions
 Managing files and directories as a regular user and superuser (sudo)

Week 2: File System and operations


Session 3: File Operations and Processes
Objective: Cover file operations, text processing, and managing processes in Linux.
 Working with files (touch, cp, mv, rm)
 File archiving and compression (tar, gzip)
 Text editors in Linux (nano, vim)
 Basic text manipulation (grep, cat, less)
 Processes and process management (ps, top, kill)
 Running and managing background processes
 Redirecting input and output (>, >>, <, |)

Session 4: System Management and Basic Scripting


 Objective: Explore system management tasks and introduce basic scripting concepts.
 System information commands (uname, df, du)
 Managing services and daemons (systemctl)
 Package management (apt or yum)
 Basic shell scripting concepts
 Writing and running simple shell scripts
 Script execution permissions
 Automating repetitive tasks with scripts
 Examples of common scripting tasks (e.g., file backups)

Week 3: Basics of CPP Language


Introduction to Programming using C++
 Data Types.
 Variables.
 Operators.
 Control Flow and repetitions.
 Namespaces
week 4: Modular programming in practice
 Preprocessor
 Functions
 Pointers (pointer to every data type, pointer to functions).
 Lambda expression
 Callback.
 Reference.
 Arrays and vectors.

Week 5: Object Oriented Programming


 Object Oriented Programming
 Classes and Objects
 Advanced class features
 Inheritance
 Compile time Polymorphism
 Run-time Polymorphism and abstraction

Week 6: OOP Relationships and Templates


 UML and design concepts
 OOP Relationships
 Composite Pattern
 C++ Templates
 Strategy design pattern

Week 7: STL (Containers and Algorithms)


 Big O notation
 Linear Data structure (array, vector, linked list, stack and queue)
 Associative Containers ( set, map, unordered set and unordered map)

Week 8: Smart Pointers


 Raw Pointers problems
 Unique pointer, shared pointer and weak pointer
 Cyclic dependency problem and it’s solution
 Dependency Injection pattern

Week 9: SOLID and design patterns


 SOLID principles
 Design patterns (Observer and Factory)

Week 10: Continue Patterns and Complete Build Tools


 Design patterns (Proxy and Adaptor)
 Makefiles scripts and their benefits
 CMake for medium and large sized projects

Week 11: SW Engineering


 Requirements analysis
 SDLC, Agile and V-Model
 Unit Testing using GoogleTest framework
 Test driven development

Week 12: Git and DevOps


 Version control using git
 Rebasing and merging
 Learn about dockers
 Create a pipeline using jenkins

You might also like