LỜI CẢM ƠN Để có kiến thức và kết quả thực tế ngày hôm nay, trước hết em xin chân thành cảm ơn các Thầy Cô trong khoa Điện – Điện tử Trường Đại học Bách khoa Tp.HCM đã giảng dạy và trang
Trang 1KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG
-o0o -BÁO CÁO THỰC TẬP TỐT NGHIỆP
GVHD: Thầy Phạm Việt Cường SVTH: Nguyễn Bảo Kỳ
MSSV: 1811020
TP HỒ CHÍ MINH, THÁNG 12 NĂM 2022
Trang 2LỜI CẢM ƠN
Để có kiến thức và kết quả thực tế ngày hôm nay, trước hết em xin chân thành cảm
ơn các Thầy Cô trong khoa Điện – Điện tử Trường Đại học Bách khoa Tp.HCM đã giảng dạy và trang bị cho em những kiến thức cơ bản trong 4 năm Đại Học và Thầy Phạm Việt Cường, người phụ trách hướng dẫn môn thực tập tốt nghiệp của em đã tận tình chỉ dạy và truyền đạt cho em những kinh nghiệm cũng như những kiến thức quý báu trong suốt thời gian qua Bên cạnh đó, em xin gửi lời cám ơn chân thành đến các thầy cô của công ty HCL Technologies đã giảng dạy, chia sẻ kinh nghiệm và tạo mọi điều kiện thuận lợi giúp em hoàn thành tốt quá trình thực tập của mình Với thời gian thực tập còn hạn chế và sự hiểu biết thực tế còn nhiều bỡ ngỡ nên bài báo cáo của em sẽ không tránh khỏi những thiếu sót Nên em mong nhận được ý kiến đóng góp để em có thể đúc kết được nhiều bài học và kinh nghiệm cho bản thân, từ đó giúp ích được nhiều cho em khi chính thức bước vào môi trường làm việc Cuối cùng, em xin gửi đến quý Thầy Cô lời chúc sức khỏe và thành công trong sự nghiệp giảng dạy Chúc quý Công ty HCL Technologies ngày càng phát triển và thịnh vượng, đúng với thông điệp “vũng bước tiên phong”!
Tp Hồ Chí Minh, ngày 14 tháng 12 năm 2022
Nguyễn Bảo Kỳ
i
Trang 3MỤC LỤC
1 GIỚI THIỆU 1
1.1 Giới thiệu về công ty 1
1.2 Nhiệm vụ được giao thực tập 2
1.3 Thời gian và lịch trình thực tập 2
2 NỘI DUNG THỰC TẬP 3
2.1 Technical training 3
2.1.1 Foundation 3
2.1.2 Linux Basic 3
2.1.3 Shell Scripting 5
2.1.4 C Programming 5
2.1.5 Microcontroller and RTOS 5
2.1.6 Network Data 6
2.1.7 Python scripting 7
2.1.8 Testing Fundamentals 7
2.2 Communication Training 8
2.2.1 Back to Basic 8
2.2.2 Applied Communication 8
2.2.3 Behaviour Skills 9
3 TỔNG KẾT CÔNG VIỆC THỰC TẬP 9
3.1 Kết quả công việc thực tập 9
3.1.1 Thực tập sinh tự đánh giá thông qua các chủ đề: 9
3.1.2 Kết quả đánh giá thông qua các bài kiểm tra 10
3.1.3 Một số hình ảnh kết quả thực hiện bài lab 11
3.2 Kinh nghiệm học được sau khi thực tập 12
4 TÀI LIỆU THAM KHẢO 13
Trang 5Hình 1.1: Trụ sở chính của HCL Technologies tại Ấn Độ
Hình 1.2: Lễ khánh thành chi nhánh HCL tại
Việt Nam
1 GIỚI THIỆU
1.1 Giới thiệu về công ty
HCL Technologies là tập đoàn công nghệ tân tiến toàn cầu với sứ mệnh giúp đỡ doanh nghiệp tái thiết lại nghiệp vụ kinh doanh trong kỷ nguyên số Các sản phẩm, dịch vụ cũng như khoa học kỹ thuật của chúng tôi được phát triển hoàn thiện qua 04 thập kỷ không ngừng đổi mới, đi cùng với đó là một phương châm quản trị nổi tiếng trên thế giới, một văn hoá không ngừng sáng tạo, dám chấp nhận thử thách và một thái
độ cầu thị luôn hướng về khách hàng Với mạng lưới đa dạng các trung tâm nghiên cứu, phát triển, và hơn 159.000 nhân viên làm việc ở 50 quốc gia, HCL hiện đang phục vụ các doanh nghiệp hàng đầu, bao gồm 250 doanh nghiệp đứng top 500 và 650 trong bảng xếp hạng danh giá Fortune Global 2000
Trang 6
Vào tháng 7/2020, HCL bắt đầu hoạt động tại Việt Nam với 2 cơ sở tại Tp.Hà Nội
và Tp.Hồ Chí Minh Cơ hội việc làm hấp dẫn được mở ra rất nhiều cùng với mức đãi ngộ tốt, đặc biệt là đối với các bạn sinh viên sắp ra trường có niềm đam mê với công nghệ ở nhiều lĩnh vực khác nhau Cũng vì lẽ đó, em đã xin vào thực tập ở HCL Technologies và mong muốn trong tương lai sẽ trở thành nhân viên chính thức của đại gia đình HCL
1.2 Nhiệm vụ được giao thực tập
Chương trình training mảng “Embedded C” của công ty được chia làm 2 giai đoạn, có thể tóm tắt như sau:
CRT (Classroom Training): thực tập sinh sẽ được các chuyên gia người Ấn Độ giảng dạy thông qua hình thức trực tuyến Nội dung bao gồm các chủ đề technical liên quan như : hệ điều hành Linux, vi điều khiển, RTOS,… và các chủ đề về kĩ năng giao tiếp bằng tiếng Anh
OJT (On Job Training): sinh viên được tham gia vào các dự án thực tế để học hỏi thêm kinh nghiệm và phong thái làm việc
Cách thức đánh giá : mỗi giai đoạn sẽ có 3 đợt kiểm tra bằng hình thức trực tuyến, thực tập sinh sẽ phải hoàn thành các chủ đề technical (bao gồm MCQ và coding LAB)
và communication Số điểm được tính trên thang 100, mỗi người phải đạt ít nhất 60% thì mới được thông qua
1.3 Thời gian và lịch trình thực tập
Lịch trình thực tập:
Tổng thời gian thực tập: 6 tháng (từ ngày 29/8 đến ngày 1/3)
Học từ thứ 2 đến thứ 6, mỗi ngày 8 tiếng (45 phút nghỉ trưa)
Trang 72 NỘI DUNG THỰC TẬP
2.1 Technical training
2.1.1 Foundation
Computer Organization: giới thiệu sơ lược về kiến trúc máy tính
Hình 2.1: Kiến trúc máy tính
Software Engineering:
Techniques for requirement elicitation: các phương pháp khám và và nghiên cứu requirements của khách hang, doanh nghiệp
Tìm hiểu về Software Requirement Specification (SRS) document
Quản lý một Software Project
Software Development Lifecycle : waterfall, prototyping, spiral model
Tìm hiểu về các chuẩn đánh giá chất lượng như ISO 9000, SEI CMM (Software Engineering Institute – Capability Mature Model)
Introduction to Programing: giới thiệu một số khái niệm cơ bản về lập trình
2.1.2 Linux Basic
Installation: cài đặt hệ điều hành RHEL 7 lên máy ảo VMWare
Basic of Linux: tìm hiểu về lịch sử Linux và các distribution của Linux như Redhat, Fedora, Ubuntu, Raspbian,…
Trang 8Hình 2.2: Một số distribution của Linux
Linux commands: học các commands cơ bản của Linux như tạo file, xóa file,
Vim Editor: học cách sử dụng Vim Editor
File Permission: hiểu về khái niệm permission trong Linux, cách cấp quyền cho các file,…
Monitoring and Managing Linux Process: cách xem và quản lý các process
Unix Module: tìm hiểu hệ điều hành Unix, kiến trúc và các commands cơ bản
Hình 2.3: Một số commands cơ bản của Linux
Trang 92.1.3 Shell Scripting
Variables: các dạng biến trong shell scripting
Control statements: câu lệnh điều kiện (if-else) và vòng lặp (for, while),…
Function: cách sử dụng hàm trong shell scripting
Shell command: kết hợp các commands vào trong đoạn code
2.1.4 C Programming
Data types và storage class
Mảng, chuỗi trong C
Function trong C
Directive trong C
Tìm hiểu về memory
Quá trình biên dịch chương trình C
Một số cấu trúc dữ liệu cơ bản:
Linked list
Stack
Queue
2.1.5 Microcontroller and RTOS
Microcontroller
Tìm hiểu vi điều khiển STM32F4 Discovery
Memory Architecture, Bus Management
GPIO
ADC, DAC: tìm hiểu các bộ chuyển đổi tương tự - số, số - tương tự
Timer : tìm hiểu các chức năng của timer trong STM32
Interrupt: ngắt trong STM32 như ngắt timer, ngắt ngoài, UART
DMA: direct memory access
Các giao thức ngoại vi cơ bản: UART, I2C, SPI,…
RTOS
Task Operation
Task Delay
Queue
Semaphore and Mutex
Trang 10 Software Timer
2.1.6 Network Data
Hình 2.4: Mô hình mạng đơn giản hóa
Introduction to Network
Phân biệt các loại hình network như LAN, MAN, WAN, PAN, SAN
Network Topologies: bus, star, ring, mesh
Network Driver: repeater, hub, switch, router, bridge
How Network work
OSI Model Layers
Encapsulation process
TCP/IP
Internet layer header
Network access layer
Major protocol
Basic of LAN Connectivity
Giới thiệu về Ethernet, Fast Ethernet, Gigabit Ethernet
Các loại cáp Ethernet
Tìm hiểu về cáp quang: phân loại, tín hiệu, ưu điểm và nhược điểm
Overview of Data Center
Basic of Data Center
Data Center Equipment, Location, Access, Security
Power and air
Trang 11 Fire Suppression
Racks
Wiring and labeling
Communication
Console server
Data Center Configuration
Types of Servers
MAX5 memory expansion blade
Server remote and management console
Data Center overview, application, facility recommendations
Data Center hardware communication
Staffing recommendation
ANSI/TIA/EIA 606 Standard
2.1.7 Python scripting
Python là một ngôn ngữ lập trình bậc cao cho các mục đích lập trình đa năng,
do Guido van Rossum tạo ra và lần đầu ra mắt vào năm 1991 Python được thiết kế với ưu điểm mạnh là dễ đọc, dễ học và dễ nhớ Python là ngôn ngữ có hình thức rất sáng sủa, cấu trúc rõ ràng, thuận tiện cho người mới học lập trình và là ngôn ngữ lập trình dễ học; được dùng rộng rãi trong phát triển trí tuệ nhân tạo
Các nội dung được học:
Python Basic: data types, variables, operators, built-in function,…
Conditional statement, loop structure
String, list, tuple, dictionary
Iterators and generators
Data structure
File Operation
OOP Concepts
2.1.8 Testing Fundamentals
Introduction to Software testing
Trang 12 Overview of SDLC and Testing Methodologies
Software Testing Life Cycle (SDLC)
Types of Testing
Test Estimation
Functional Testing
Level of Testing
Test case preparation
Test Execution and Defect Management
Testing Metrics
2.2 Communication Training
2.2.1 Back to Basic
Ôn tập ngữ pháp
Từ loại trong tiếng Anh: động từ, danh từ, tính từ
So sánh trong tiếng Anh: so sánh hơn và so sánh nhất
Liên từ
Câu điều kiện
Câu tường thuật
Dấu câu trong tiếng Anh
Thán từ trong tiếng Anh
Listening Skill: luyện nghe tiếng Anh thông qua các trang web như listenaminute.com, breakingnewsenglish.com
Reading Skill: luyện đọc thông qua tác phẩm “Fire and Frost” free trên google book
Speaking Skill: luyện nói theo chủ đề như lễ hội, món ăn,…
Writing Skill: luyện viết theo chủ đề như lễ hội, môi trường,…
2.2.2 Applied Communication
Các kĩ thuật note taking
Cách viết email
Phân tích thông số thông qua biểu đồ
Trang 132.2.3 Behaviour Skills
Phân tích hành động thông qua việc đóng vai trong các hoàn cảnh khác nhau, cách xử
lý tình huống
Cách đưa ra nhận xét (feedback)
Cách làm việc nhóm
Cách kiểm soát cảm xúc
Phương pháp giải quyết mâu thuẫn
Cách quản lý thời gian
Cách xử lý stress
3 TỔNG KẾT CÔNG VIỆC THỰC TẬP
3.1 Kết quả công việc thực tập
3.1.1 Thự*c ta+*p sinh tự* đa-nh gia- tho+ng qua ca-c chu/ đe0:
Foundation: hiểu được các vấn đề cơ bản của kiến trúc máy tính, Software Engineering và các khái niệm cơ bản về lập trình
Linux and Shell scripting: hiểu được và áp dụng được các command cơ bản của Linux Có khả năng quản lý bộ nhớ và process ở mức độ cơ bản
C Programming: hiểu sâu các khái niệm về lập trình C Thực hành lập trình trên Coding Lab để trở nên thuần thục và áp dụng các cấu trúc dữ liệu cơ bản khác nhau
Microcontroller: hiểu được các khái niệm cơ bản về vi điều khiển Có thể lập trình ngoại vi, timer, các giao thức cơ bản cho STM32F4 sử dụng thư viện HAL
RTOS: tìm hiểu về FreeRTOS, lập trình FreeRTOS sử dụng thư viện CMSIS
Network data: hiểu được một số vấn đề cơ bản về networking và kiến trúc của chúng
Python scripting: lập trình Python và ứng dụng một số cấu trúc dữ liệu và giải thuật cơ bản
Testing fundamental: nắm vững các khái niệm về testing
Trang 143.1.2 Ke3t qua/ đa-nh gia- tho+ng qua ca-c ba5i kie6m tra
Kết quả kiểm tra trắc nghiệm MCQ
Kết quả kiểm tra thực hành lập trình trên coding LAB và trên kit STM32F4
Kết quả kiểm tra IKM
Kết quả kiểm tra Communication
Trang 15Đánh giá: các kết quả từ bài kiểm tra cho thấy em đã đạt được mức lớn hơn 60% nên đạt đủ chỉ tiêu để có thể chuyển qua giai đoạn tiếp theo của chương trình training
3.1.3 Mo+*t so3 hì5nh a/nh ke3t qua/ thự*c hie+*n ba5i lab
Hình 3.1: Mô phỏng vi điều khiển AT89C51 trên Proteus
Trang 16Hình 3.2: Sử dụng lệnh printf để debug thông qua Serial Wire Viewer
Hình 3.3: Tạo sóng bằng STM32F4 DAC
3.2 Kinh nghiệm học được sau khi thực tập
Nắm thêm được các kỷ luật cần thiết của các cán bộ và nhân viên thật sự khi đi làm:
Đi làm đúng giờ
Cần làm việc có tinh thần trách nhiệm
Biết chịu trách nhiệm trước công việc của mình đảm nhận để nếu có sai sót gì thì có hướng giải quyết và biết cách giải quyết
Trang 17Bên cạnh đó, việc thực tập còn giúp em cải thiện được kĩ năng mềm:
Biết lắng nghe nhiều hơn
Tự tin khi giao tiếp giữa cấp trên với cấp dưới, đồng nghiệp với nhau
Hòa nhã, hòa đồng giúp đỡ lẫn nhau trong công việc trong khả năng mình cho phép
Tôn trọng người khác và tôn trọng ý kiến, góp ý của người khác
4 TÀI LIỆU THAM KHẢO
[1] Richard Blum and Christine Breshnahan, “Linux Command Line and Shell
Scripting Bible”, 3rd edition, Wiley Publisher, 2015
[2] William Stallings, “Computer Organization and Architecture”, 10th edition,
Pearson Publisher, 2015