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

244/359 câuCòn 115
AAn array defines attributes of an element, while a record defines a collection of similar elements
BAn array defines a combination of elements, while a record defines the identifiable parts (attributes) of a single element.
CArrays store data on disk, while records store data in main memory
DRecords can only store numerical data, while arrays store all data types.
Lời giải
Đáp án đúng: "An array defines a combination of elements, while a record defines the identifiable parts (attributes) of a single element.". Mảng và bản ghi khác nhau ở chỗ gom cái gì: mảng là tập nhiều phần tử cùng kiểu, truy cập bằng chỉ số; bản ghi gom các thuộc tính có thể khác kiểu của cùng một đối tượng, truy cập bằng tên trường. "An array defines attributes of an element, while a record defines a collection of similar elements" sai vì nói ngược hai vai trò, gán việc mô tả thuộc tính cho mảng và việc gom phần tử đồng dạng cho bản ghi. "Arrays store data on disk, while records store data in main memory" sai vì cả hai đều là kiểu dữ liệu trong chương trình, nơi lưu trên đĩa hay trong bộ nhớ chính không phải tiêu chí phân biệt chúng. "Records can only store numerical data, while arrays store all data types." sai vì bản ghi sinh ra chính để chứa nhiều kiểu khác nhau, còn mảng mới là thứ đòi các phần tử phải cùng kiểu.
Mở trang câu hỏi này →
AWhen a new record's key maps to an occupied address.
BThe process of converting a key into an address.
CThe method of sorting records alphabetically.
DThe use of an index file to find records.
Lời giải
Đáp án đúng: "When a new record's key maps to an occupied address.". Trong tệp băm, hàm băm biến khoá của bản ghi thành địa chỉ lưu trữ. Xung đột là tình huống hai khoá khác nhau cùng cho ra một địa chỉ, nên khi ghi bản ghi mới thì chỗ đó đã bị bản ghi khác chiếm và phải xử lý bằng vùng tràn, dò tuyến tính hay băm kép. "The process of converting a key into an address." sai vì đó là mô tả của chính hàm băm, công việc bình thường diễn ra ở mọi lần truy nhập chứ không phải một sự cố. "The method of sorting records alphabetically." sai vì sắp xếp bản ghi theo thứ tự chữ cái là cách tổ chức tệp tuần tự, không liên quan tới cơ chế băm. "The use of an index file to find records." sai vì dùng tệp chỉ mục để tìm bản ghi là một tổ chức tệp khác, nó tránh được chuyện trùng địa chỉ chứ không phải định nghĩa của chuyện đó.
Mở trang câu hỏi này →
APerforming calculations for a space mission
BCalculating the total sales of a small business
CDetermining the average temperature of a city
DCounting the number of students in a university.
Lời giải
Đáp án đúng: "Performing calculations for a space mission". Lỗi cắt sinh ra khi một số thực không biểu diễn hết được bằng số bit hữu hạn nên phần đuôi bị bỏ; sai số nhỏ ấy tích luỹ qua hàng loạt phép tính và có thể lệch rất xa kết quả thật. Tính toán cho một chuyến bay vũ trụ vừa đòi độ chính xác cao vừa phải thực hiện cực nhiều phép tính liên tiếp, nên cần ô nhớ dài hơn và cách biểu diễn chính xác hơn. "Calculating the total sales of a small business" sai vì cộng doanh thu chỉ cần hai chữ số thập phân, hoặc tốt hơn là tính theo đơn vị nhỏ nhất dưới dạng số nguyên. "Determining the average temperature of a city" sai vì nhiệt độ trung bình chỉ cần một hai chữ số thập phân, sai số nhỏ không gây hậu quả. "Counting the number of students in a university." sai vì đếm sinh viên cho ra số nguyên, không có phần phân nên không phát sinh lỗi cắt.
Mở trang câu hỏi này →
228In a singly linked list, each node has:4 lựa chọn
AData and a link
BData and an index code
CData and a hash code
DData and a value
Lời giải
Đáp án đúng: "Data and a link". Nút của danh sách liên kết đơn gồm hai phần: phần dữ liệu chứa giá trị cần lưu, và phần liên kết chứa địa chỉ của nút kế tiếp; nút cuối mang liên kết rỗng để đánh dấu hết danh sách. Nhờ phần liên kết mà danh sách lớn lên hay co lại không cần vùng nhớ liền mạch. "Data and an index code" sai vì chỉ số là cách định vị phần tử của mảng, mà mảng không lưu đường tới phần tử sau. "Data and a hash code" sai vì mã băm thuộc bảng băm hay tệp băm, nơi địa chỉ được tính ra từ khoá. "Data and a value" sai vì giá trị chính là phần dữ liệu đã nói, nhắc lại nó không cho ta thành phần dẫn tới nút tiếp theo nên các nút sẽ không nối được với nhau.
Mở trang câu hỏi này →
AO(n)
BO(log n)
CO(n^2)
DO(n log n)
Lời giải
Đáp án đúng: "O(n)". Muốn biết chiều cao thì phải so chiều cao của hai cây con tại mỗi nút, nghĩa là thăm mọi nút đúng một lần và làm một lượng việc hằng số ở mỗi nút, cho chi phí tỉ lệ với số nút. "O(log n)" sai vì đây là chiều cao của một cây nhị phân cân bằng, tức là giá trị kết quả có thể nhỏ, chứ không phải chi phí tìm ra nó; hơn nữa cây có thể suy biến thành một chuỗi dài. "O(n^2)" sai vì phép duyệt không có vòng lặp lồng nhau nào, mỗi nút không bị thăm lại nhiều lần. "O(n log n)" sai vì đây là chi phí đặc trưng của các thuật toán sắp xếp dựa trên so sánh, không phát sinh khi chỉ đi một lượt qua cây.
Mở trang câu hỏi này →
AIt loads only the required pages as needed
BIt requires the entire program to be in memory
CIt uses variable-sized memory sections
DIt prevents programs from being swapped
Lời giải
Đáp án đúng: "It loads only the required pages as needed". Phân trang theo yêu cầu chỉ nạp vào bộ nhớ những trang đang thực sự cần, các trang khác vẫn nằm trên đĩa và chỉ được mang vào khi xảy ra lỗi trang. Nhờ vậy chương trình bắt đầu chạy sớm hơn và một lượng bộ nhớ cho trước chứa được nhiều chương trình hơn. "It requires the entire program to be in memory" sai vì đòi cả chương trình phải ở trong bộ nhớ chính là cách làm của phân trang thông thường, đúng điều mà kỹ thuật này muốn tránh. "It uses variable-sized memory sections" sai vì khối có kích thước thay đổi là đặc điểm của phân đoạn; ở đây trang vẫn giữ kích thước cố định. "It prevents programs from being swapped" sai vì trang không hề được miễn thay ra, khi bộ nhớ thiếu chỗ hệ điều hành vẫn chọn trang để đẩy ra đĩa.
Mở trang câu hỏi này →
ALess redundancy
BIncreased redundancy
CReduced efficiency
DMore inconsistency
Lời giải
Đáp án đúng: "Less redundancy". Trong hệ tệp phẳng, mỗi ứng dụng giữ tệp riêng nên cùng một dữ liệu bị lặp ở nhiều nơi; cơ sở dữ liệu gom dữ liệu vào một chỗ được quản lý chung, mỗi sự kiện chỉ lưu một lần và các ứng dụng cùng đọc, nhờ đó dư thừa giảm đi. "Increased redundancy" sai vì tăng dư thừa chính là nhược điểm của cách lưu bằng nhiều tệp rời, không phải lợi thế của cơ sở dữ liệu. "Reduced efficiency" sai vì hệ quản trị còn có chỉ mục, bộ tối ưu hoá truy vấn và quản lý giao dịch nên hiệu quả truy nhập thường cao hơn chứ không giảm. "More inconsistency" sai vì bớt dư thừa kéo theo bớt mâu thuẫn: khi một giá trị chỉ được lưu ở một nơi, không còn chuyện bản sao này sửa mà bản sao kia chưa sửa.
Mở trang câu hỏi này →
AAs logical shifts and arithmetic shifts
BAs arithmetic and geometric shifts
CAs left shifts and right shifts
DAs integer shifts and floating-point shifts
Lời giải
Đáp án đúng: "As logical shifts and arithmetic shifts". Dịch bit được chia theo bản chất xử lý bit dấu: dịch logic coi mẫu bit là dãy bit thuần, đẩy đi rồi chèn 0 vào chỗ trống, dùng cho dữ liệu không dấu; dịch số học giữ bit dấu nguyên vẹn để kết quả còn đúng nghĩa với số có dấu. "As arithmetic and geometric shifts" sai vì không có loại dịch nào gọi là hình học, cặp khái niệm đó vay từ dãy số chứ không phải từ phép toán trên bit. "As left shifts and right shifts" sai vì trái và phải chỉ là hướng dịch, mà cả dịch logic lẫn dịch số học đều có hướng trái và hướng phải, nên đó không phải cách chia theo bản chất. "As integer shifts and floating-point shifts" sai vì phép dịch tác động trên mẫu bit, nó không được định nghĩa riêng cho kiểu nguyên hay kiểu thực.
Mở trang câu hỏi này →
AAn ALU
BA register
CA control unit
DA tape drive
Lời giải
Đáp án đúng: "A register". Thanh ghi là ô nhớ nhỏ nằm ngay trong bộ xử lý, giữ dữ liệu hoặc lệnh trong thời gian rất ngắn khi chúng đang được dùng; nó đứng riêng chứ không thuộc dãy ô nhớ có địa chỉ của bộ nhớ chính, và truy nhập nhanh hơn bộ nhớ nhiều lần. "An ALU" sai vì đơn vị số học và logic là nơi thực hiện phép tính cùng phép so sánh, nó lấy toán hạng từ thanh ghi chứ không làm chỗ lưu. "A control unit" sai vì đơn vị điều khiển phát tín hiệu điều phối các khối khác theo mã lệnh, nó không phải chỗ chứa dữ liệu. "A tape drive" sai vì ổ băng từ là thiết bị lưu trữ ngoài, lưu lâu dài và chỉ truy nhập tuần tự, trái hẳn vai trò giữ tạm trong lúc tính.
Mở trang câu hỏi này →
APacket-filtering firewall
BStateful inspection firewall
CProxy firewall
DNetwork address translation (NAT) firewall
Lời giải
Đáp án đúng: "Proxy firewall". Tường lửa dạng proxy làm trung gian ở tầng ứng dụng: nó thay máy bên trong mở kết nối ra ngoài, đọc hiểu nội dung giao thức ứng dụng như yêu cầu web hay lệnh truyền tệp, nên lọc được theo luật đặc thù của từng ứng dụng, chẳng hạn chặn một đường dẫn hoặc một loại tệp. "Packet-filtering firewall" sai vì nó chỉ xét phần đầu của gói, dựa vào địa chỉ nguồn, địa chỉ đích và số hiệu cổng ở tầng mạng cùng tầng giao vận. "Stateful inspection firewall" sai vì nó theo dõi thêm trạng thái của từng kết nối để biết gói có thuộc phiên hợp lệ hay không, nhưng vẫn không đọc nội dung ứng dụng. "Network address translation (NAT) firewall" sai vì dịch địa chỉ mạng chủ yếu che và đổi địa chỉ, không phân tích dữ liệu ứng dụng.
Mở trang câu hỏi này →
ASequential access
BDirect access
CIndexed sequential access
DHashing
Lời giải
Đáp án đúng: "Indexed sequential access". Truy nhập tuần tự có chỉ mục dựng thêm một tệp chỉ mục gồm các cặp khoá và địa chỉ, sắp theo khoá; muốn tìm bản ghi thì tra chỉ mục rồi nhảy thẳng tới chỗ cần, nhanh hơn đọc lần lượt, đổi lại phải tốn chỗ lưu chỉ mục và phải cập nhật chỉ mục mỗi khi tệp thay đổi. "Sequential access" sai vì cách này không dùng cấu trúc phụ nào, nó đọc từ đầu nên không thể nhanh hơn chính nó. "Direct access" sai vì truy nhập trực tiếp tính địa chỉ ngay từ khoá, không cần nuôi một tệp chỉ mục bên cạnh. "Hashing" sai vì hàm băm cũng tính địa chỉ từ khoá nên không tốn chỗ cho chỉ mục; cái giá nó trả là phải xử lý xung đột khi hai khoá cho cùng một địa chỉ.
Mở trang câu hỏi này →
AOnly analog signals
BOnly digital signals
CAnalog and digital signals
DAny types, depends on data types.
Lời giải
Đáp án đúng: "Analog and digital signals". Dữ liệu muốn truyền đi phải được biến thành tín hiệu điện từ, và tín hiệu chỉ có hai dạng: tín hiệu tương tự biến thiên liên tục theo thời gian, hoặc tín hiệu số nhận một số mức rời rạc. Cả dữ liệu tương tự lẫn dữ liệu số đều có thể gửi dưới một trong hai dạng ấy, chẳng hạn tiếng nói được số hoá còn dãy bit được điều chế lên sóng mang. "Only analog signals" sai vì bỏ sót tín hiệu số, dạng đang chiếm phần lớn truyền dẫn hiện nay. "Only digital signals" sai vì bỏ sót tín hiệu tương tự, dạng vẫn dùng trên sóng vô tuyến và đường dây thuê bao. "Any types, depends on data types." sai vì kiểu dữ liệu không quyết định dạng tín hiệu, và dù sao cũng chỉ có đúng hai dạng tín hiệu chứ không phải nhiều loại tuỳ ý.
Mở trang câu hỏi này →
ATo organize files based on their content type
BTo store additional information about files, such as author, creation date, and keywords
CTo encrypt files for enhanced security
DTo compress files to save disk space
Lời giải
Đáp án đúng: "To store additional information about files, such as author, creation date, and keywords". Trình quản lý tệp theo siêu dữ liệu lưu thêm các thông tin mô tả về tệp bên cạnh nội dung tệp, như tác giả, ngày tạo, ngày sửa, từ khoá hay nhãn; nhờ lớp mô tả đó người dùng tìm và sắp xếp tệp theo thuộc tính thay vì chỉ theo tên và vị trí thư mục. "To organize files based on their content type" sai vì gom tệp theo kiểu nội dung chỉ là một ứng dụng rút ra được từ siêu dữ liệu, chưa phải mục đích chính của cơ chế. "To encrypt files for enhanced security" sai vì mã hoá tệp là chức năng bảo mật, thực hiện trên chính nội dung chứ không phải trên thông tin mô tả. "To compress files to save disk space" sai vì nén tệp nhằm tiết kiệm dung lượng bằng cách biến đổi nội dung, hoàn toàn khác việc ghi thêm thông tin mô tả.
Mở trang câu hỏi này →
AThey are identical.
BPoint-to-point WAN has more than 2 ends.
CSwitched WAN is a combination of more than 2 ends.
DSwitched WAN is used only in cable medium.
Lời giải
Đáp án đúng: "Switched WAN is a combination of more than 2 ends.". Mạng diện rộng điểm nối điểm nối đúng hai thiết bị với nhau qua một đường truyền thuê riêng hoặc một liên kết trực tiếp. Mạng diện rộng chuyển mạch thì nối nhiều điểm cuối thông qua các bộ chuyển mạch, nên về bản chất nó là nhiều liên kết điểm nối điểm ghép lại thành một mạng. "They are identical." sai vì hai loại khác nhau ở số điểm cuối và ở việc có thiết bị chuyển mạch hay không. "Point-to-point WAN has more than 2 ends." sai vì nói ngược đặc điểm: dạng điểm nối điểm chỉ có hai đầu, đó chính là nghĩa của tên gọi. "Switched WAN is used only in cable medium." sai vì mạng chuyển mạch không bị bó buộc vào môi trường cáp, nó chạy được cả trên vi ba và trên vệ tinh.
Mở trang câu hỏi này →
AAnalysis phase
BDesign phase
CImplementation phase
DTesting phase
Lời giải
Đáp án đúng: "Implementation phase". Pha cài đặt là lúc bản thiết kế được biến thành mã nguồn: lập trình viên chọn ngôn ngữ, viết các module theo cấu trúc đã thiết kế, rồi dịch và chạy thử sơ bộ. "Analysis phase" sai vì pha phân tích làm việc với yêu cầu, nó trả lời hệ thống phải làm gì chứ không viết dòng mã nào. "Design phase" sai vì pha thiết kế quyết định cách làm ở mức cấu trúc, chia module và định nghĩa giao diện giữa chúng, nhưng vẫn chưa sinh ra mã chạy được. "Testing phase" sai vì pha kiểm thử dùng mã đã viết xong để tìm lỗi, bằng cách thử theo cấu trúc bên trong và thử theo yêu cầu bên ngoài; nó tiêu thụ sản phẩm của pha cài đặt chứ không tạo ra sản phẩm ấy.
Mở trang câu hỏi này →
AArray
BRecord
CLinked List
DVariable
Lời giải
Đáp án đúng: "Linked List". Danh sách liên kết lớn lên và co lại trong lúc chương trình chạy: mỗi lần thêm phần tử thì xin cấp một nút mới, mỗi lần bớt thì trả nút đó về, và các nút nối với nhau bằng liên kết nên không cần một vùng nhớ liền mạch có sẵn. "Array" sai vì mảng được định kích thước ngay từ lúc khai báo và chiếm một vùng liền mạch, muốn đổi cỡ phải cấp vùng mới rồi chép dữ liệu sang. "Record" sai vì bản ghi là tập các trường đã định trước về số lượng và kiểu, nó không thêm bớt trường trong lúc chạy. "Variable" sai vì một biến chỉ là một ô giữ một giá trị, nó không phải cấu trúc dữ liệu có thể nở ra hay thu lại.
Mở trang câu hỏi này →
AThe module's components are strongly related to its purpose
BThe module depends heavily on other modules
CThe module communicates frequently with external modules
DThe module relies on shared global data
Lời giải
Đáp án đúng: "The module's components are strongly related to its purpose". Cohesion, tức độ kết dính, đo mức độ các thành phần bên trong một module cùng phục vụ đúng một mục đích; kết dính cao nghĩa là mọi hàm và dữ liệu trong module đều xoay quanh một nhiệm vụ duy nhất, nhờ đó module dễ hiểu, dễ kiểm thử và dễ thay thế mà không kéo theo chỗ khác. Phương án "The module depends heavily on other modules" mô tả coupling, tức độ ghép nối, cao; đó là quan hệ giữa các module chứ không phải tính chất bên trong một module, và thiết kế tốt còn tìm cách giảm nó. Phương án "The module communicates frequently with external modules" cũng nói về lưu lượng giao tiếp ra bên ngoài, một dấu hiệu ghép nối chặt, nên không phản ánh kết dính nội bộ. Phương án "The module relies on shared global data" là kiểu ghép nối qua dữ liệu toàn cục dùng chung, bị xem là tệ vì hai module có thể vô tình sửa cùng một biến.
Mở trang câu hỏi này →
AHierarchical
BNetworking
CRelational
DObject-oriented
Lời giải
Đáp án đúng: "Object-oriented". Ba mô hình cơ sở dữ liệu được xếp vào nhóm truyền thống là phân cấp, mạng và quan hệ; mô hình hướng đối tượng xuất hiện muộn hơn nhiều, khi người ta muốn lưu trực tiếp các đối tượng có phương thức và kế thừa, nên nó thuộc nhóm mô hình hiện đại chứ không nằm trong ba mô hình truyền thống. Phương án "Hierarchical" là mô hình phân cấp, tổ chức bản ghi thành cây cha con với mỗi con chỉ có một cha, nên đúng là một mô hình truyền thống. Phương án "Networking" chỉ mô hình mạng, nới lỏng ràng buộc trên bằng cách cho một bản ghi con có nhiều cha và biểu diễn dữ liệu như đồ thị, cũng thuộc nhóm truyền thống. Phương án "Relational" là mô hình quan hệ dựa trên các bảng hai chiều, dù ra đời sau hai mô hình kia nhưng vẫn được tính vào ba mô hình truyền thống và hiện là mô hình phổ biến nhất.
Mở trang câu hỏi này →
AInstruction register
BData register
CUser register
DProgram counter
Lời giải
Đáp án đúng: "Program counter". Bộ đếm chương trình giữ địa chỉ của lệnh đang được thi hành rồi tự tăng để trỏ sang lệnh kế tiếp, nên nó chính là nơi máy theo dấu lệnh hiện hành trong suốt quá trình chạy, đúng như cách tài liệu môn này định nghĩa. Cần nói thẳng rằng đây là cặp gây tranh luận thật: phương án "Instruction register" cũng có cơ sở, vì thanh ghi lệnh giữ bản thân mã lệnh vừa nạp về để giải mã, và một số bộ khoá tham khảo chọn nó; điểm phân định nằm ở chỗ câu dẫn hỏi về việc theo dấu lệnh đang thi hành và lệnh sẽ thi hành tiếp, vốn là vai trò của bộ đếm chương trình. Phương án "Data register" chỉ nhóm thanh ghi chứa toán hạng và kết quả tính toán, không dính tới việc lần theo lệnh. Phương án "User register" là các thanh ghi để chương trình người dùng lưu biến trung gian, càng không có chức năng theo dấu lệnh.
Mở trang câu hỏi này →
ATo perform arithmetic and logic operations.
BTo store instructions.
CTo manage data flow inside the CPU.
DTo control peripheral devices.
Lời giải
Đáp án đúng: "To manage data flow inside the CPU.". Khối điều khiển không tự tính toán gì; nó lấy lệnh, giải mã rồi phát các tín hiệu điều khiển để điều phối hoạt động bên trong CPU, quyết định dữ liệu đi từ thanh ghi nào tới khối nào và vào thời điểm nào, nên vai trò của nó đúng là quản lý luồng dữ liệu nội bộ. Phương án "To perform arithmetic and logic operations." là việc của khối số học và luận lý, khối này chỉ thực hiện phép tính khi khối điều khiển ra lệnh. Phương án "To store instructions." thuộc bộ nhớ và thanh ghi lệnh; khối điều khiển đọc lệnh chứ không phải nơi lưu lệnh. Phương án "To control peripheral devices." nằm ở phân hệ vào ra với các bộ điều khiển thiết bị riêng, CPU chỉ phát yêu cầu rồi để chúng tự làm việc với thiết bị.
Mở trang câu hỏi này →