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

164/359 câuCòn 195
AAs a 7-bit pattern 1000001.
BAs an 8-bit pattern 01000001.
CAs a 16-bit Unicode pattern.
DAs a 32-bit graphical symbol.
Lời giải
Đáp án đúng: "As an 8-bit pattern 01000001." Trong bảng mã ASCII, chữ A hoa có mã 65, viết bằng 7 bit là 1000001; nhưng đơn vị lưu trữ nhỏ nhất mà máy thao tác được là một byte, nên ký tự nằm trong 8 bit với bit trái bù 0, thành 01000001. "As a 7-bit pattern 1000001." đúng về giá trị mã gốc của bảng ASCII, song không phản ánh cách chữ được lưu trong bộ nhớ, nơi mỗi ký tự chiếm trọn một byte. "As a 16-bit Unicode pattern." nói về bảng mã khác: Unicode mở rộng để chứa mọi hệ chữ viết, còn câu dẫn giới hạn ở ASCII. "As a 32-bit graphical symbol." nhầm ký tự với hình ảnh, vì máy lưu mã số của ký tự còn hình dáng chữ do phông chữ vẽ ra lúc hiển thị.
Mở trang câu hỏi này →
A0 to 15
B-7 to +7
C-8 to +7
D-15 to +15
Lời giải
Đáp án đúng: "-8 to +7". Với bù hai trên 4 bit, 16 mẫu bit được chia đôi: 0000 đến 0111 biểu diễn 0 tới 7, còn 1000 đến 1111 biểu diễn -8 tới -1. Vì số 0 chỉ có một mẫu bit duy nhất nên phía âm nhận thêm được một giá trị, dải trở thành -8 tới +7. "0 to 15" là dải của số nguyên không dấu, nơi không bit nào dành cho dấu. "-7 to +7" là dải của biểu diễn dấu-và-độ-lớn, cách đó có hai mẫu bit cùng chỉ số 0 nên mất đi một giá trị. "-15 to +15" cần tới 31 mẫu bit khác nhau, vượt quá 16 tổ hợp mà 4 bit tạo ra được.
Mở trang câu hỏi này →
147How many ethical principles are there?5 lựa chọn
A2
B3
C4
D5
E1
Lời giải
Đáp án đúng: "3". Phần nhập môn về khía cạnh xã hội và đạo đức của máy tính trình bày đúng ba nguyên tắc để phân xử một hành vi: quy tắc đạo đức (moral rules), nguyên tắc vị lợi gọi là utilization — hành vi tốt nếu mang lại kết quả tốt cho xã hội — và khế ước xã hội (social contract), tức điều mà các thành viên trong xã hội cùng thoả thuận. "2" chỉ ôm được hai trong ba căn cứ đó nên bỏ mất một hướng phân xử. "4" buộc phải kể thêm một nguyên tắc nữa, trong khi các chủ đề khác của chương như quyền sở hữu trí tuệ hay quyền riêng tư là vấn đề được xét bằng ba nguyên tắc chứ không phải nguyên tắc mới. "5" dư tới hai, thường do đếm gộp cả các chủ đề pháp lý vào nhóm nguyên tắc. "1" gộp tất cả về một quy tắc duy nhất, xoá mất khác biệt giữa ba cách đánh giá hành vi.
Mở trang câu hỏi này →
ASubstitution cipher
BTransposition cipher
CStream cipher
DBlock cipher
Lời giải
Đáp án đúng: "Substitution cipher". Mật mã thay thế giữ nguyên vị trí các ký tự và đổi từng ký tự thành ký tự khác theo một quy tắc cố định, ví dụ dịch mỗi chữ đi đúng một số bước trong bảng chữ cái. "Transposition cipher" không đổi bản thân ký tự mà chỉ đảo lại vị trí của chúng theo một khuôn hoán vị. "Stream cipher" là cách phân loại theo lượng dữ liệu xử lý mỗi lần, tức mã hoá từng ký tự hoặc từng bit một, và khoá thường biến thiên theo từng ký tự chứ không phải một quy tắc cố định. "Block cipher" cũng thuộc cách phân loại theo lượng dữ liệu: nó lấy trọn một khối gồm nhiều ký tự rồi mã hoá cả khối trong một lần.
Mở trang câu hỏi này →
AMoral rules.
BSocial contract.
CUtilization
DIntellectual property
Lời giải
Đáp án đúng: "Utilization". Nguyên tắc vị lợi lấy kết quả làm thước đo: một hành vi được coi là có đạo đức nếu nó tạo ra điều tốt cho xã hội, nghĩa là phải cân lợi với hại rồi chọn bên mang lại lợi ích chung lớn hơn. "Moral rules." lấy căn cứ là sự phù hợp với một nguyên lý đạo đức được mọi người thừa nhận, không xét tới hệ quả của hành vi. "Social contract." dựa vào thoả thuận chung của các thành viên trong xã hội về điều được làm và điều không được làm. "Intellectual property" không phải nguyên tắc phân xử hành vi mà là một chủ đề về quyền sở hữu đối với sản phẩm trí tuệ như phần mềm hay tác phẩm.
Mở trang câu hỏi này →
AMoral rules
BUtilization
CSocial contract
DNone of the other options are correct
Lời giải
Đáp án đúng: "Moral rules". Nguyên tắc này xét hành vi bằng cách đối chiếu với một nguyên lý đạo đức được công nhận rộng rãi, kiểu không được dối gạt hay không được gây hại, và chính sự phù hợp đó quyết định hành vi có đạo đức hay không, bất kể hệ quả ra sao. "Utilization" phán xét bằng kết quả: hành vi tốt nếu đem lại điều tốt cho xã hội. "Social contract" dựa trên quy ước mà các thành viên trong xã hội cùng chấp nhận, nên căn cứ là sự đồng thuận chứ không phải một nguyên lý phổ quát. "None of the other options are correct" không dùng được, bởi mô tả trong câu dẫn khớp đúng với nguyên tắc quy tắc đạo đức.
Mở trang câu hỏi này →
Aconfidentiality
Bintegrity
Cavailability
DNone of these above
Lời giải
Đáp án đúng: "integrity". Tính toàn vẹn nghĩa là thông điệp phải đến đúng như lúc được gửi, không bị thêm, bớt hay sửa đổi dọc đường; đây chính là mục tiêu mà các cơ chế như hàm băm, mã xác thực thông điệp và chữ ký số phục vụ. "confidentiality" bảo vệ ở khía cạnh khác, là giữ nội dung kín với người không được phép, nên kẻ chặn được bản mã vẫn không đọc ra nghĩa nhưng có thể vẫn can thiệp được vào nội dung. "availability" nói về việc thông tin và dịch vụ luôn sẵn sàng cho người dùng hợp pháp, thứ bị phá bởi tấn công từ chối dịch vụ chứ không bởi hành vi sửa đổi. "None of these above" không dùng được, vì yêu cầu chống sửa đổi thông điệp đã có tên riêng là toàn vẹn.
Mở trang câu hỏi này →
AMachine Language
BHigh-Level Language
CAssembly Language
DSymbolic Language
Lời giải
Đáp án đúng: "Machine Language". Thế hệ ngôn ngữ đầu tiên chính là ngôn ngữ máy: người lập trình viết trực tiếp các dãy bit mà bộ xử lý hiểu được, không cần bất cứ chương trình dịch nào ở giữa, đổi lại rất khó viết và khó sửa. "High-Level Language" ra đời muộn nhất trong nhóm này, dùng câu lệnh gần với tiếng Anh và phải nhờ trình biên dịch mới chạy được trên máy. "Assembly Language" là bước cải tiến tiếp sau ngôn ngữ máy, thay dãy bit bằng từ gợi nhớ nên vẫn cần trình hợp dịch chuyển về mã máy. "Symbolic Language" là tên gọi khác của chính hợp ngữ, nhấn vào việc dùng ký hiệu thay cho mã nhị phân, nên cũng xuất hiện sau ngôn ngữ máy.
Mở trang câu hỏi này →
AProcedural
BObject-oriented
CFunctional
DDeclarative
EMathematical
Lời giải
Đáp án đúng: "Mathematical". Các mô thức ngôn ngữ lập trình được phân loại theo cách người viết diễn đạt lời giải, và không có mô thức nào mang tên toán học; toán học là nền tảng lý thuyết chung cho cả ngành chứ không phải một kiểu tổ chức chương trình. "Procedural" là mô thức thủ tục, chương trình là dãy lời gọi thủ tục tác động lên dữ liệu bị động. "Object-oriented" xem chương trình là tập các đối tượng chủ động, mỗi đối tượng mang theo dữ liệu và phương thức của mình. "Functional" dựng chương trình bằng cách kết hợp các hàm, nhấn vào giá trị trả về thay vì trạng thái bị thay đổi. "Declarative" chỉ khai báo sự kiện và luật rồi để hệ thống tự suy diễn ra câu trả lời, tiêu biểu là lập trình logic.
Mở trang câu hỏi này →
AProcedural paradigm
BObject-oriented paradigm
CFunctional paradigm
DDeclarative paradigm
Lời giải
Đáp án đúng: "Procedural paradigm". Mô thức thủ tục nhìn chương trình như một tác nhân chủ động: chính chương trình phát ra hành động, còn dữ liệu là những đối tượng bị động, chỉ thay đổi khi bị thủ tục tác động lên. "Object-oriented paradigm" đảo lại cách nhìn đó, vì mỗi đối tượng tự mang hành vi của mình và phản ứng khi nhận thông điệp, nên không có bên nào thuần bị động. "Functional paradigm" coi chương trình là sự kết hợp của các hàm, nhấn vào việc biến đầu vào thành đầu ra chứ không vào quan hệ điều khiển giữa bên chủ động và bên bị động. "Declarative paradigm" không mô tả ai tác động lên ai: người viết chỉ nêu sự kiện và luật, còn bộ suy diễn tự tìm câu trả lời.
Mở trang câu hỏi này →
AAs a collection of active objects that react to stimuli
BAs a set of facts and rules to answer queries
CAs a series of function calls where the algorithm calls itself.
DAs a set of procedure calls, separating procedures from passive data objects
Lời giải
Đáp án đúng: "As a set of procedure calls, separating procedures from passive data objects". Trong mô thức thủ tục, chương trình được dựng thành các thủ tục gọi nhau, còn dữ liệu nằm tách biệt bên ngoài các thủ tục đó và chờ được truyền vào để xử lý; đúng cấu trúc mà những ngôn ngữ như C hay Pascal khuyến khích. "As a collection of active objects that react to stimuli" là cách tổ chức của mô thức hướng đối tượng, nơi dữ liệu và hành vi được gói chung trong một đối tượng. "As a set of facts and rules to answer queries" mô tả mô thức khai báo, chương trình là cơ sở sự kiện và luật để truy vấn. "As a series of function calls where the algorithm calls itself." chỉ nói về đệ quy, một kỹ thuật viết thuật toán dùng được trong nhiều mô thức chứ không phải cách cấu trúc chương trình thủ tục.
Mở trang câu hỏi này →
A3
B4
C5
D6
Lời giải
Đáp án đúng: "4". Mô hình von Neumann chia phần cứng máy tính thành bốn hệ con: bộ nhớ, đơn vị số học và logic, đơn vị điều khiển, cùng hệ vào ra; chương trình và dữ liệu đều nằm trong bộ nhớ, còn đơn vị điều khiển lần lượt nạp rồi thi hành từng lệnh. "3" thiếu một hệ con, thường do gộp hệ vào ra vào bộ nhớ hoặc gộp hai đơn vị bên trong bộ xử lý thành một. "5" đếm dư, chẳng hạn tách đường truyền dữ liệu hay nhóm thanh ghi ra thành hệ con riêng, nhưng đó là bộ phận nằm bên trong các hệ con đã kể. "6" càng dư hơn nữa và không khớp với cách phân chia của mô hình này.
Mở trang câu hỏi này →
ALeibnitz
Bvon Neumann
CPascal
DCharles Babbage
Lời giải
Đáp án đúng: "von Neumann". Máy tính hiện đại dựa trên mô hình von Neumann với hai ý cốt lõi: phần cứng chia thành bốn hệ con, và chương trình được lưu trong bộ nhớ cùng chỗ với dữ liệu để đơn vị điều khiển nạp từng lệnh ra thi hành. "Leibnitz" gắn với máy tính cơ khí làm được bốn phép tính, nhưng hoàn toàn không có khái niệm chương trình lưu trong bộ nhớ. "Pascal" chế ra máy cộng trừ bằng bánh răng, mỗi phép tính phải quay tay chứ không lập trình được. "Charles Babbage" đã hình dung ra máy phân tích với bộ phận tính và bộ phận lưu, một tiền thân rất quan trọng, song cách tổ chức mà máy tính ngày nay thực sự đi theo là mô hình chương trình lưu trong bộ nhớ được công bố sau đó.
Mở trang câu hỏi này →
ATransistors
BMicroprocessors
CIntegrated circuits
DHard disks
Lời giải
Đáp án đúng: "Transistors". Thế hệ thứ hai thay đèn điện tử chân không bằng transistor bán dẫn: linh kiện nhỏ hơn nhiều, toả nhiệt ít, tiêu thụ điện thấp và bền hơn, nhờ đó máy gọn lại và chạy ổn định hơn hẳn. "Microprocessors" thuộc thế hệ thứ tư, khi cả bộ xử lý được dồn vào một chip duy nhất. "Integrated circuits" là dấu mốc của thế hệ thứ ba, gom nhiều transistor cùng mạch nối lên một phiến bán dẫn. "Hard disks" là thiết bị lưu trữ ngoài chứ không phải linh kiện dựng nên mạch logic của máy, nên không được dùng để đánh dấu thế hệ máy tính.
Mở trang câu hỏi này →
A4 KB
B2 KB
C1 KB
D6 KB
Lời giải
Đáp án đúng: "4 KB". Không gian địa chỉ chạy từ 0 tới 4095 nên tổng số ô được định địa chỉ là 4096, kể cả ô số 0; mỗi ô lưu 1 byte nên dung lượng là 4096 byte, và vì 1 KB bằng 2 luỹ thừa 10 tức 1024 byte, 4096 byte đúng bằng 4 KB. "2 KB" ứng với 2048 ô, nghĩa là địa chỉ cao nhất phải là 2047 chứ không phải 4095. "1 KB" ứng với 1024 ô, nhỏ hơn bốn lần không gian địa chỉ đã cho. "6 KB" bằng 6144 byte, không phải luỹ thừa của 2 nên không thể là kích thước của một không gian địa chỉ liền mạch đánh số từ 0.
Mở trang câu hỏi này →
ACache memory
BRAM
CRegisters
DHard disk
Lời giải
Đáp án đúng: "Registers". Thanh ghi nằm ngay trong bộ xử lý và là nơi lệnh lấy toán hạng ra để tính, nên thời gian truy cập ngắn nhất trong toàn bộ cấp bậc bộ nhớ, đổi lại số lượng rất ít và dung lượng rất nhỏ. "Cache memory" đứng ngay dưới thanh ghi: nhanh hơn bộ nhớ chính nhưng mỗi lần dùng vẫn phải tra xem dữ liệu có nằm trong đó hay không, nên chậm hơn thanh ghi. "RAM" là bộ nhớ chính, dung lượng lớn và phải truy cập qua bus nên chậm hơn hẳn hai cấp trên. "Hard disk" là bộ nhớ ngoài với cơ cấu cơ học, thời gian truy cập lớn hơn tới nhiều bậc độ lớn.
Mở trang câu hỏi này →
AControl Unit
BMemory Unit
CArithmetic Logic Unit (ALU)
DInput/Output Unit
Lời giải
Đáp án đúng: "Arithmetic Logic Unit (ALU)". Đơn vị số học và logic là nơi thực sự thực hiện phép tính: cộng, trừ, các phép so sánh, cùng các phép logic như AND, OR, NOT trên dữ liệu lấy từ thanh ghi rồi trả kết quả về thanh ghi. "Control Unit" không tính toán mà giải mã lệnh rồi phát tín hiệu điều khiển để các bộ phận khác làm việc đúng trình tự. "Memory Unit" chỉ lưu lệnh và dữ liệu, nó không biến đổi giá trị nào. "Input/Output Unit" lo việc chuyển dữ liệu giữa máy tính và thế giới bên ngoài như bàn phím, màn hình hay đĩa, cũng không tham gia tính toán.
Mở trang câu hỏi này →
ADuplication
BSynonym
CHazard
DCollision
Lời giải
Đáp án đúng: "Collision". Hàm băm nén miền khoá rất rộng về một dải địa chỉ hẹp nên không thể tránh việc hai khoá khác nhau cho cùng một địa chỉ; hiện tượng đó gọi là collision, và mọi phương pháp băm đều phải kèm cách giải quyết như địa chỉ mở hoặc nối chuỗi. "Duplication" nói về trùng lặp dữ liệu, tức hai bản ghi giống nhau, chứ không phải hai khoá khác nhau cùng rơi vào một ô. "Synonym" là cách một số tài liệu về tổ chức tệp gọi bản thân cặp khoá cùng địa chỉ, trong khi câu dẫn hỏi tên của hiện tượng xảy ra. "Hazard" là thuật ngữ của mạch số và đường ống lệnh, không thuộc chủ đề băm khoá.
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". Với tệp có rất nhiều bản ghi, cách tổ chức tuần tự có chỉ mục dựng thêm bảng chỉ mục, thường là nhiều mức, để từ giá trị khoá đi thẳng tới vùng chứa bản ghi; nhờ vậy không phải đọc từ đầu tệp mà vẫn giữ được khả năng đọc tuần tự theo thứ tự khoá. "Sequential access" phải đi qua lần lượt từng bản ghi nên chi phí tăng theo kích thước tệp, đúng chỗ tệp lớn làm nó yếu nhất. "Direct access" cho nhảy tới bản ghi theo vị trí, nhưng muốn dùng thì phải biết trước vị trí ứng với khoá. "Hashing" cũng lấy bản ghi theo khoá và rất nhanh với một khoá đơn lẻ, song phải xử lý xung đột và không giữ thứ tự khoá; câu dẫn nhấn vào tệp có số lượng bản ghi rất lớn, đúng tình huống mà chỉ mục nhiều mức được dựng ra để giải quyết.
Mở trang câu hỏi này →
AAlways as individual characters.
BAs plain, human-readable text.
CAs a collection of data meaningful only if properly interpreted by the program (e.g., two bytes as one integer)
DAs a sorted list of alphanumeric symbols
Lời giải
Đáp án đúng: "As a collection of data meaningful only if properly interpreted by the program (e.g., two bytes as one integer)". Tệp nhị phân chỉ là một dãy byte thô, không mang kèm quy ước chia tách hay ý nghĩa, nên chính chương trình đọc nó mới quyết định gộp mấy byte thành một số nguyên, một số thực hay một trường của bản ghi; đọc sai quy ước thì dữ liệu thành vô nghĩa. "Always as individual characters." áp đặt một cách diễn giải duy nhất, trong khi phần lớn tệp nhị phân chứa số và cấu trúc chứ không chứa ký tự. "As plain, human-readable text." là mô tả tệp văn bản, nơi mỗi byte ứng với một ký tự theo bảng mã. "As a sorted list of alphanumeric symbols" thêm cả giả thiết đã sắp thứ tự lẫn giả thiết chỉ chứa chữ và số, hai điều mà định dạng nhị phân không hề bảo đảm.
Mở trang câu hỏi này →