Introduction to Software Engineering
Introduction to Software Engineering
Welcome everyone!
Introduction to Software Engineering is a course designed to provide learners with the most basic knowledge about software engineering. In the first two modules, learners will have an overview of software development methods and processes, grasp and understand the stages in the software development process through building a specific software.
In the third section, learners will become acquainted with operating system concepts and principles, resource management, system security, the necessity of multitasking, process management, and memory. In addition, you can also practice with commands when working with the Linux operating system and programming the Bash Shell.
The last module will give learners an overview of computer networks, including manipulating and designing, installing and maintaining structures, hardware, protocols, and network technologies through Wireshark, a tool for measuring and analyzing network data.
Enjoy the course!
COURSE OBJECTIVES
Upon completion of this course, students will achieve the following standards of knowledge and skills:
- Compare and contrast software development methodologies with respect to environmental, organizational, and product constraints.
- Show the ability to effectively apply Agile processes/practices for software development.
- Apply techniques/methods to manipulate and work with GIT.
- Understand and manipulate basic operating system functions.
- Use basic shell commands in Linux system.
- Understand and work with process management and scheduling algorithms in the CPU.
- Understand and explain the basic concepts of computer networks, the functions and operations of several layers and control protocols in the TCP/IP model.
- Configure basic parameters for network nodes and use tools to test network connectivity.
- Use tools to test and analyze service performance.
LEARNING EXPERIENCE
To begin, take a few minutes to explore the course and its overall structure. The course is divided into 4 sections with a total of 21 lessons. Throughout the lessons and at the end of each section, practical Lab exercises and significant Assignments will help reinforce the theoretical knowledge and apply it to real-world problems. For effective learning, continuously enhance your understanding, keep learning, researching, and establish a reasonable study plan to excel in the course.
During the anticipated 6-week study period, the allocation of study time is crucial. If you have any questions, connect with the Mentor for clarification and guidance.
COURSE STRUCTURE
Module 1 - Software Development Methods and Processes
- Lesson 1 - Software Development Process
- Lesson 2 - Software Architecture
- Lesson 3 - Software Design, Implementation, and Deployment
- Lesson 4 - Software Testing
- Lesson 5 - Traditional Software Models - Part 1
- Lesson 6 - Traditional Software Models - Part 2
Part 2 - Software Development Using Agile
- Lesson 7 - Basic Agile
- Lesson 8 - Software Requirements and Planning with Agile
- Lesson 9 - Scrum
- Lesson 10 - XP
Assignment 01 - Designing FUNiX Passport
Part 3 - Overview of Operating Systems
- Lesson 11 - Overview of Operating Systems
- Lesson 12 - Processes and Multithreading
- Lesson 13 - Types of CPU Schedulers
- Lesson 14 - Types of Scheduling Algorithms
Assignment 02 - Bash Shell Programming
Part 4 - Overview of Network Systems
- Lesson 15 - Overview of Computer Networks
- Lesson 16 - Network Devices
- Lesson 17 - Physical Layer and Data Link Layer
- Lesson 18 - Network Layer
- Lesson 19 - Transport Layer
- Lesson 20 - The Application Layer and Common Internet Services
- Lesson 21 - Network Services: DNS, DHCP, and NAT
Assignment 03 - Network Data Analysis
COURSE DESIGN EXPERT
COURSE DESIGNER: MSc. Nguyen Hai Nam
- Master of Computer Science, University of Cassino, Italy
- Head of xSeries Department, FUNiX
- Online profile: https://www.linkedin.com/in/hai-nam-nguyen-474587119/
Learning Resources
In the current era, each course is accompanied by numerous learning resources, including both print and online materials. FUNiX Way does not prescribe a specific learning source but encourages students to choose the most suitable one for themselves. While studying from various sources based on personal preferences, if students have questions, they can quickly connect with a mentor for clarification. The entire assessment comprises multiple-choice questions, exercises, projects, and Q&A sessions designed, developed, and conducted by FUNiX.
FUNiX does not impose mandatory learning materials for its courses. Students are free to proactively search for and learn from any suitable source, including printed books, online learning resources (MOOCs), or websites. The responsibility for using these sources lies with the students, who must ensure compliance with the policies of the respective content owners, unless there is formal collaboration with FUNiX. If assistance is needed, students can contact FUNiX's training department for guidance.
Here are several learning resources for the course that students can refer to and utilize. It's important to note that listing these sources does not imply formal collaboration between FUNiX and the owners of the resources: Learn to Program in Java and Object Oriented Programming in Java
Feedback Channel
FUNiX welcomes and encourages all feedback and suggestions related to course materials. Please feel free to reach out to us via email at program@funix.edu.vn.