CSI106Chưa đoKỳ 1Cơ sở ngành Cập nhật 2 ngày trước

Introduction to Computer Science - CSI106

Khoa học máy tính bắt đầu từ một câu hỏi đơn giản đến bất ngờ: làm sao một cỗ máy chỉ phân biệt được hai trạng thái lại xử lý nổi văn bản, hình ảnh, âm thanh và cả những suy luận phức tạp? CSI106 trả lời bằng cách đi dọc chiều sâu của một hệ máy tính, từ tầng bit lên tới tầng ứng dụng, để thấy rõ mỗi tầng được dựng trên tầng dưới nó ra sao. Chặng đầu là chuyện biểu diễn: quy số, chữ, ảnh và âm thanh về những dãy bit, các quy ước xử lý số âm và số có phần lẻ, rồi những phép toán logic tác động lên từng bit một. Chặng giữa bước vào cỗ máy thật — bộ xử lý, phân cấp bộ nhớ, đường truyền nối chúng — và vào lớp phần mềm điều phối tất cả, nơi hệ điều hành chia bộ nhớ, sắp lịch cho tiến trình và tạo ra ảo giác rằng nhiều chương trình đang chạy cùng lúc. Chặng sau mở ra ngoài phạm vi một máy đơn lẻ: nhiều máy nối nhau thành mạng theo lối phân tầng, khối dữ liệu lớn được tổ chức thành cơ sở dữ liệu quan hệ, và thông tin trên đường truyền được che bằng mã hoá. Xen giữa là bộ công cụ để viết phần mềm: cấu trúc dữ liệu, giải thuật cùng cách ước lượng chi phí chạy, các hệ hình ngôn ngữ lập trình, và quy trình làm phần mềm như một nghề có kỷ luật. Chặng cuối chạm tới trí tuệ nhân tạo cùng những ràng buộc pháp lý và đạo đức đi kèm. Cái môn này để lại là một tấm bản đồ, có trước khi người học đi sâu vào bất kỳ hướng nào. Sau đó, một dãy bit lạ, một thông báo lỗi mạng, một truy vấn chạy ì ạch hay một đoạn mã khó sửa đều thôi còn là hộp đen: người học biết hiện tượng nằm ở tầng nào, chịu ràng buộc gì, và nên tra tiếp ở đâu. Đó cũng là nền để bước tiếp vào những môn hẹp hơn về lập trình, hệ thống, mạng hay dữ liệu mà không phải quay lại học lại các khái niệm gốc.

359Câu hỏi
8Bộ đề
13Chủ đề

Câu hỏi của môn

359/359 câuHết danh sách
APhysical layer
BData link layer
CSession layer
DPresentation layer
Lời giải
Đáp án đúng: "Presentation layer". Tầng trình diễn lo cách dữ liệu được biểu diễn trước khi trao cho ứng dụng, nên ba việc đặc trưng của nó là chuyển đổi khuôn dạng, nén và mã hoá; mã hoá được đặt ở đây để hai đầu thống nhất cách biến đổi nội dung mà không cần ứng dụng tự xử lý. Phương án "Physical layer" chỉ biến bit thành tín hiệu điện, quang hay sóng trên đường truyền, không hiểu nội dung nên không thể mã hoá. Phương án "Data link layer" đóng khung dữ liệu, dùng địa chỉ vật lý và kiểm soát lỗi trên từng chặng; nó có thể bảo vệ đường truyền cục bộ nhưng không phụ trách mã hoá nội dung đầu cuối. Phương án "Session layer" thiết lập, duy trì, đồng bộ và kết thúc phiên đối thoại giữa hai bên, tức quản lý cuộc trao đổi chứ không biến đổi dữ liệu.
Mở trang câu hỏi này →
ABus topology is a sophisticated structure and robust with high traffic.
BRing topology is a high risk for collision between 2 nodes.
CStar topology is a structure that has a central switch.
DMesh topology is the most complicated structure.
Lời giải
Đáp án đúng: "Star topology is a structure that has a central switch.". Trong cấu trúc hình sao, mỗi nút có một đường riêng nối tới thiết bị trung tâm và mọi lưu lượng đều đi qua thiết bị đó, nên phát biểu này là định nghĩa và không thể bác bỏ. Cần nói thẳng rằng đề gốc để lọt hai phát biểu đều có lý: phương án "Mesh topology is the most complicated structure." cũng hợp lý vì lưới cần rất nhiều đường nối, nhưng phức tạp nhất là một so sánh phụ thuộc tiêu chí như số cáp hay chi phí, nên nó không chắc bằng một định nghĩa; câu hỏi đòi phát biểu đúng nhất nên lấy phát biểu định nghĩa. Phương án "Bus topology is a sophisticated structure and robust with high traffic." sai cả hai vế: bus là cấu trúc đơn giản nhất và kém chịu tải vì mọi nút chia nhau một đường trục. Phương án "Ring topology is a high risk for collision between 2 nodes." sai vì vòng truyền theo một chiều và quyền truyền được chuyển lần lượt nên gần như không có xung đột.
Mở trang câu hỏi này →
AFrame
BSegment
CPacket
DData
Lời giải
Đáp án đúng: "Packet". Ở tầng mạng của chồng giao thức TCP/IP, dữ liệu nhận từ tầng trên được bọc thêm tiêu đề chứa địa chỉ nguồn và địa chỉ đích để định tuyến qua nhiều mạng, và đơn vị dữ liệu mang tiêu đề đó gọi là gói. Phương án "Frame" là khung, đơn vị của tầng truy nhập mạng ở dưới, nơi gói được bọc tiếp bằng địa chỉ vật lý để đi trên một chặng cụ thể. Phương án "Segment" là đơn vị của tầng vận chuyển khi dùng giao thức có kết nối, nơi dữ liệu được chia khúc và đánh số thứ tự để phát lại khi mất. Phương án "Data" chỉ là cách gọi chung nội dung ở tầng ứng dụng, chưa mang tiêu đề nào của tầng dưới, nên không phải một đơn vị dữ liệu có cấu trúc ở tầng mạng.
Mở trang câu hỏi này →
A10 ms
B1 ms
C10 000 ms
D100 ms
Lời giải
Đáp án đúng: "10 ms". Tốc độ 1000 bps nghĩa là mỗi giây thiết bị phát được 1000 bit, nên một bit chiếm một phần nghìn giây. Thời gian để phát 10 bit bằng số bit chia cho tốc độ, tức 10 chia 1000 bằng 0,01 giây, đổi ra là 10 milli giây. Phương án "1 ms" chỉ ứng với đúng một bit, tức quên nhân với số bit cần gửi. Phương án "10 000 ms" là mười giây, sai chừng một nghìn lần và xuất hiện khi nhân 10 với 1000 thay vì chia, một dấu hiệu cho thấy đã lẫn chiều của công thức. Phương án "100 ms" là thời gian cần để phát 100 bit ở cùng tốc độ, nên nó lớn gấp mười lần kết quả đúng. Mẹo kiểm nhanh là so sánh thứ nguyên: bit chia cho bit mỗi giây phải cho ra giây.
Mở trang câu hỏi này →
AP2P systems inherently offer stronger encryption methods.
BDedicated servers are more susceptible to distributed denial-of-service attacks leading to infamous cybercrimes.
CSecuring communication is more complex when services are distributed.
DUser authentication is simpler to manage in P2P environments.
Lời giải
Đáp án đúng: "Securing communication is more complex when services are distributed.". Trong mô hình ngang hàng, dịch vụ nằm rải trên nhiều nút không ai kiểm soát, nên không có một điểm duy nhất để đặt tường lửa, kiểm toán hay chính sách; an toàn phải bảo đảm trên từng kết nối với những đối tác không đáng tin. Phương án "P2P systems inherently offer stronger encryption methods." gán tính chất của thuật toán cho kiến trúc, nhưng độ mạnh của mã hoá do giao thức và cách triển khai quyết định, không do mô hình. Phương án "Dedicated servers are more susceptible to distributed denial-of-service attacks leading to infamous cybercrimes." chỉ nói tới một hệ quả về khả dụng của điểm tập trung, chưa phải khác biệt cốt lõi về an ninh, và mạng ngang hàng cũng bị lợi dụng làm nguồn tấn công. Phương án "User authentication is simpler to manage in P2P environments." ngược sự thật, vì thiếu máy chủ giữ danh tính thì các nút phải tự xác thực lẫn nhau.
Mở trang câu hỏi này →
A1A
B2B
C1F
D2A
Lời giải
Đáp án đúng: "1A". Đổi 26 sang hệ mười sáu bằng cách chia liên tiếp cho 16: 26 chia 16 được 1 dư 10, chữ số dư 10 viết là A, thương 1 là chữ số kế tiếp, nên kết quả đọc theo chiều ngược là 1A. Kiểm lại: 1 nhân 16 cộng 10 bằng 26. Phương án "2B" có giá trị 2 nhân 16 cộng 11 bằng 43, lớn hơn hẳn. Phương án "1F" có giá trị 16 cộng 15 bằng 31, do lấy chữ số dư lớn nhất của hệ mười sáu thay vì phần dư thật. Phương án "2A" có giá trị 2 nhân 16 cộng 10 bằng 42, đúng phần dư nhưng sai thương của phép chia. Cách nhớ nhanh là một byte chia thành hai nửa bốn bit: 26 ở hệ hai là 0001 1010, nửa cao 0001 cho 1 và nửa thấp 1010 cho A.
Mở trang câu hỏi này →
Adivide by b
Bmultiply by b
Cadd to b
Dsubtract from b
Lời giải
Đáp án đúng: "divide by b". Giải thuật đổi một số nguyên hệ mười sang cơ số b là chia liên tiếp số đó cho b, mỗi lần giữ lại phần dư làm một chữ số, lấy thương làm số bị chia cho bước sau, tới khi thương bằng 0; dãy dư đọc theo chiều ngược chính là biểu diễn ở cơ số b. Phương án "multiply by b" là cách làm cho phần lẻ sau dấu phẩy, nơi ta nhân liên tiếp với cơ số rồi lấy phần nguyên, nên không áp dụng cho phần nguyên. Phương án "add to b" không tách được chữ số nào, vì cộng chỉ dịch giá trị chứ không bóc ra phần dư theo trọng số của cơ số. Phương án "subtract from b" cũng vậy: trừ lặp lại là cách làm chậm của phép chia nhưng bản thân nó không sinh ra dãy chữ số, và với số lớn thì không thể tiến hành.
Mở trang câu hỏi này →
AThe value of each symbol is fixed regardless of its position
BIt uses a limited number of symbols where each symbol has a fixed value
CThe position a symbol occupies in the number determines the value it represents
DIt represents numbers using Roman numerals or similar symbols.
Lời giải
Đáp án đúng: "The position a symbol occupies in the number determines the value it represents". Trong hệ đếm theo vị trí, mỗi chữ số được nhân với một trọng số là lũy thừa của cơ số ứng với chỗ nó đứng, nên cùng một ký hiệu mang giá trị khác nhau ở hai vị trí khác nhau; ví dụ chữ số 5 trong 52 đáng 50 còn trong 25 chỉ đáng 5. Phương án "The value of each symbol is fixed regardless of its position" tả đúng hệ không theo vị trí, tức điều ngược lại với câu hỏi. Phương án "It uses a limited number of symbols where each symbol has a fixed value" vừa nêu một điều kiện chung mà cả hai loại hệ đều có là bộ ký hiệu hữu hạn, vừa khẳng định giá trị cố định nên lại phủ nhận vai trò của vị trí. Phương án "It represents numbers using Roman numerals or similar symbols." lấy đúng ví dụ tiêu biểu của hệ không theo vị trí để gán cho hệ theo vị trí.
Mở trang câu hỏi này →
ATo efficiently store and process data
BTo standardize communication protocols
CTo confuse data
DTo complicate mathematical operations
Lời giải
Đáp án đúng: "To efficiently store and process data". Máy tính làm việc với hệ hai vì mạch điện chỉ phân biệt hai mức tin cậy, trong khi con người đọc số hệ mười, và lập trình viên dùng hệ mười sáu hay hệ tám để viết gọn mẫu bit; việc đổi qua lại giữa các hệ cho phép mỗi phía dùng cách biểu diễn phù hợp nhất mà dữ liệu bên trong vẫn được lưu và xử lý gọn, nhanh. Phương án "To standardize communication protocols" lẫn sang việc của các tổ chức tiêu chuẩn, chuẩn hoá giao thức không phải lý do tồn tại của phép đổi cơ số. Phương án "To confuse data" vô lý về mục đích, vì đổi cơ số không che giấu gì cả, giá trị vẫn như cũ và ai biết cơ số đều đọc được. Phương án "To complicate mathematical operations" đi ngược động cơ thiết kế, bởi người ta chọn hệ hai chính vì nó làm mạch tính toán đơn giản hơn chứ không rắc rối hơn.
Mở trang câu hỏi này →
AFirst-Come, First-Served (FCFS)
BShortest Job Next (SJN)
CRound-Robin (RR)
DPriority Scheduling
Lời giải
Đáp án đúng: "Shortest Job Next (SJN)". Giải thuật này mỗi lần chọn tiến trình có thời gian xử lý dự kiến ngắn nhất trong số đang chờ, nhờ đó thời gian chờ trung bình nhỏ nhất, nhưng đổi lại cần ước lượng được độ dài công việc và dễ làm các công việc dài bị bỏ lại mãi. Phương án "First-Come, First-Served (FCFS)" phục vụ theo đúng thứ tự tới, không hề xét độ dài, nên một công việc rất dài đứng trước sẽ chặn cả hàng. Phương án "Round-Robin (RR)" chia cho mỗi tiến trình một lát thời gian bằng nhau rồi xoay vòng, nên nó công bằng theo lượt chứ không ưu tiên việc ngắn. Phương án "Priority Scheduling" chọn theo mức ưu tiên được gán từ bên ngoài, thường theo tầm quan trọng hoặc theo loại người dùng, và mức đó có thể không liên quan gì tới thời gian chạy dự kiến.
Mở trang câu hỏi này →
AMemory manager
BProcess manager
CDevice manager
DFile manager
Lời giải
Đáp án đúng: "Device manager". Bộ quản lý thiết bị theo dõi mọi thiết bị vào ra, xếp hàng các yêu cầu truy cập, quyết định yêu cầu nào được phục vụ trước và gọi trình điều khiển tương ứng, nhờ đó nhiều tiến trình cùng muốn dùng một máy in hay một ổ đĩa vẫn không tranh chấp. Phương án "Memory manager" lo cấp phát và thu hồi bộ nhớ cho các tiến trình, theo dõi vùng trống và dùng các kỹ thuật như phân trang. Phương án "Process manager" lo tạo, lập lịch, chuyển trạng thái và kết thúc tiến trình, cùng việc xử lý bế tắc giữa chúng. Phương án "File manager" lo tệp và thư mục ở mức logic: tên, quyền truy cập, cấu trúc cây và chỗ lưu dữ liệu trên thiết bị, nhưng khi cần thao tác thật trên thiết bị thì chính nó phải nhờ bộ quản lý thiết bị.
Mở trang câu hỏi này →
APartitioning
BPaging
CSegmentation
DSwapping
Lời giải
Đáp án đúng: "Paging". Trong kỹ thuật phân trang, bộ nhớ vật lý được chia thành các phần bằng nhau gọi là khung, còn không gian của chương trình chia thành các trang cùng kích thước đó, nên mỗi trang nạp được vào bất kỳ khung trống nào mà không cần cả chương trình nằm liền một dải. Phương án "Partitioning" chia bộ nhớ thành các vùng để cấp cả khối cho một chương trình, các vùng có thể không bằng nhau và cách này sinh ra phân mảnh. Phương án "Segmentation" chia theo đơn vị logic của chương trình như mã, dữ liệu, ngăn xếp, nên các đoạn có kích thước khác nhau theo nhu cầu chứ không đều. Phương án "Swapping" không phải cách chia bộ nhớ mà là kỹ thuật đưa chương trình từ bộ nhớ ra thiết bị lưu trữ rồi nạp lại khi cần để nhiều chương trình dùng chung bộ nhớ hạn hẹp.
Mở trang câu hỏi này →
AUNIX
BLinux
CWindows
DAndroid
Lời giải
Đáp án đúng: "UNIX". Hệ này được thiết kế ngay từ đầu cho máy phục vụ nhiều người cùng đăng nhập: đa người dùng, đa nhiệm, cơ chế quyền theo chủ sở hữu và nhóm, tiến trình cách ly nhau, nên nó là hệ gắn với tiêu chí ổn định trong môi trường nhiều người dùng. Phải nói thẳng rằng đề gốc để lọt hai lựa chọn khó phân định, vì phương án "Linux" là hệ cùng họ, thừa hưởng đúng mô hình nhiều người dùng đó và cũng nổi tiếng ổn định; chốt theo bản gốc đặt ra chuẩn ấy chứ không phải vì bản sao kém hơn. Phương án "Windows" hướng tới máy cá nhân với giao diện đồ hoạ là trọng tâm, khả năng nhiều người dùng đến sau và phát triển mạnh ở dòng dành riêng cho máy phục vụ. Phương án "Android" là hệ cho thiết bị di động, mỗi máy gắn với một chủ và được tối giản để tiết kiệm pin, nên không nhắm tới môi trường nhiều người dùng.
Mở trang câu hỏi này →
ATo design and develop software applications and tools for various purposes
BTo manage system hardware and software resources efficiently
CTo establish connections and facilitate communication between multiple computers in a network
DTo encrypt user data and protect it from unauthorized access and threats
Lời giải
Đáp án đúng: "To manage system hardware and software resources efficiently". Hệ điều hành là lớp trung gian giữa phần cứng và chương trình người dùng: nó cấp phát bộ xử lý, bộ nhớ, thiết bị vào ra và tệp cho các tiến trình, giải quyết tranh chấp giữa chúng, đồng thời che chi tiết phần cứng sau các hàm hệ thống. Phương án "To design and develop software applications and tools for various purposes" là việc của người lập trình cùng bộ công cụ phát triển, hệ điều hành chỉ cung cấp môi trường để các công cụ đó chạy. Phương án "To establish connections and facilitate communication between multiple computers in a network" là chức năng của chồng giao thức mạng và các dịch vụ mạng, một phần việc mà hệ điều hành hỗ trợ nhưng không phải mục đích tồn tại của nó. Phương án "To encrypt user data and protect it from unauthorized access and threats" chỉ là một phần trong nhiệm vụ bảo vệ, hẹp hơn nhiều so với việc quản lý toàn bộ tài nguyên.
Mở trang câu hỏi này →
AJob
BProcess
CDeadlock
DPartition
Lời giải
Đáp án đúng: "Job". Theo cách gọi tên trạng thái trong môn này, một chương trình nằm trên bộ lưu trữ trở thành công việc từ lúc được hệ điều hành chọn và đưa vào trạng thái chờ, rồi vẫn là công việc suốt thời gian xếp hàng đợi được cấp bộ nhớ và tài nguyên. Phương án "Process" chỉ đúng ở bước sau: chương trình thành tiến trình khi đã được nạp vào bộ nhớ và cấp đủ tài nguyên để chuyển sang trạng thái sẵn sàng chạy, nên dùng từ này cho trạng thái chờ là đi trước một nhịp. Phương án "Deadlock" không phải một dạng của chương trình mà là tình trạng nhiều tiến trình giữ tài nguyên của nhau và chờ nhau vô tận. Phương án "Partition" là vùng bộ nhớ được chia ra để cấp cho một công việc, tức một thứ tài nguyên mà công việc chờ nhận, chứ không phải tên gọi của bản thân chương trình.
Mở trang câu hỏi này →