Ch
ng 0. L i nói đ u
ươ
ờ
ầ
““
Khi đ
c h
ng nh ng Thành qu l n t Phát minh c a ng
i khác, ta nên vui v đó
ượ ưở
ữ
ả ớ ừ
ủ
ườ
ẻ
nh n C h i đ giúp đ ng
i khác b ng Phát minh c a ta, và vi c này nên làm m t cách t
ậ
ơ ộ ể
ỡ
ườ
ằ
ủ
ệ
ộ
ự
ý và hào phóng.”
—Benjamin Franklin, trích t cu n
ừ ố Benjamin Franklin c a tác gi Edmund S. Morgan.
ủ
ả
Lý do mà tôi vi t cu n sách này
ế
ố
Đây là n b n th năm c a cu n sách mà tôi đã b t đ u vi t t năm 1999, khi còn d y tr
ng Colby
ấ
ả
ứ
ủ
ố
ắ ầ
ế ừ
ạ ở ườ
College. Tôi d d y m t l p h c nh p môn khoa h c máy tính b ng ngôn ng Java, nh ng ch a tìm
ẫ ạ
ộ ớ
ọ
ậ
ọ
ằ
ữ
ư
ư
đ
c m t cu n giáo trình v a ý. M t trong nh ng lý do là, chúng quá dày! Không có cách nào mà sinh
ượ
ộ
ố
ừ
ộ
ữ
viên có th đ c h t cu n sách dày c 800 trang, đ y nh ng ki n th c kĩ thu t, k c tôi có yêu c u h
ể ọ ế
ố
ỡ
ầ
ữ
ế
ứ
ậ
ể ả
ầ
ọ
th c hi n. Mà tôi ch ng mu n th . Ph n l n nh ng gì vi t trong sách đ u quá c th —nh ng chi ti t v
ự
ệ
ẳ
ố
ế
ầ ớ
ữ
ế
ề
ụ ể
ữ
ế ề
Java cùng các th vi n c a nó mà s l c h u ngay khi h c kì k t thúc, đ ng th i nh ng th đó s làm lu
ư ệ ủ
ẽ ạ ậ
ọ
ế
ồ
ờ
ữ
ứ
ẽ
m nh ng ki n th c mà tôi th c s mu n sinh viên h c.
ờ
ữ
ế
ứ
ự ự
ố
ọ
M t v n đ khác mà tôi th y, đó là ph n gi i thi u l p trình h
ng đ i t
ng là quá đ t ng t. Nhi u
ộ ấ
ề
ấ
ầ
ớ
ệ ậ
ướ
ố ượ
ộ
ộ
ề
sinh viên đáng ra đã h c suôn s r i nh ng khi b t đ u vào ph n “đ i t
ng” là b v p, b t k ph n này
ọ
ẻ ồ
ư
ắ ầ
ầ
ố ượ
ị ấ
ấ ể
ầ
đ
c đ a vào đâu trong giáo trình.
ượ ư
Vì v y tôi b t tay vào vi t. M i ngày tôi vi t m t ch
ng, liên t c trong 13 ngày đ u. R i ngày th 14 tôi
ậ
ắ
ế
ỗ
ế
ộ
ươ
ụ
ầ
ồ
ứ
biên t p l i. Sau đó tôi đi phô-tô và đóng bìa. Bu i h c đ u tiên khi phân phát giáo trình, tôi d n sinh
ậ ạ
ổ ọ ầ
ặ
viên m i tu n ph i đ c m t ch
ng. Nói cách khác, h c n đ c ch m h n 7 l n so v i t c đ vi t c a
ỗ
ầ
ả ọ
ộ
ươ
ọ ầ
ọ
ậ
ơ
ầ
ớ ố ộ ế ủ
tôi.
Tri t lý n sau cu n sách
ế
ẩ
ố
Sau đây là m t s ý t
ng đ nh hình cho cu n sách:
ộ ố
ưở
ị
ố
•
Thu t ng là quan tr ng. Sinh viên c n ph i trao đ i đ
c v ch
ng trình máy tính và hi u đ
c đi u
ậ
ữ
ọ
ầ
ả
ổ ượ ề ươ
ể
ượ
ề
tôi gi ng. Tôi c g ng gi i thi u m t s t i thi u các thu t ng , đ đ nh nghĩa đ
c rõ ràng khi dùng l n
ả
ố ắ
ớ
ệ
ộ ố ố
ể
ậ
ữ ể ị
ượ
ầ
đ u, và đ t ch c l i thành m c “Thu t ng ” cu i t ng ch
ng. Trên l p, tôi có đ a nh ng câu h i liên
ầ
ể ổ ứ ạ
ụ
ậ
ữ
ố ừ
ươ
ớ
ư
ữ
ỏ
quan đ n thu t ng vào đ ki m tra, đ thi, và yêu c u sinh viên ph i dùng thu t ng thích h p đ vi t
ế
ậ
ữ
ề ể
ề
ầ
ả
ậ
ữ
ợ
ể ế
vào đáp án.
•
Đ vi t m t ch
ng trình, sinh viên c n ph i hi u đ
c thu t toán, bi t ngôn ng l p trình, và có kh
ể ế
ộ
ươ
ầ
ả
ể
ượ
ậ
ế
ữ ậ
ả
năng g l i. Tôi nghĩ r ng quá nhi u quy n sách b qua khâu g l i. Cu n sách này có m t ph l c vi t
ỡ ỗ
ằ
ể
ể
ỏ
ỡ ỗ
ố
ộ
ụ ụ
ế
v g l i và m t ph l c v phát tri n ch
ng trình (giúp tránh đ
c g l i). Tôi khuy n khích sinh viên
ề ỡ ỗ
ộ
ụ ụ ề
ể
ươ
ượ ỡ ỗ
ế
s m đ c ngay nh ng ph n này và th
ng xuyên tham kh o đ n chúng.
ớ
ọ
ữ
ầ
ườ
ả
ế
•
M t s khái ni m ph i m t th i gian m i l ng đ ng l i đ
c. M t s ch khó trong sách, nh đ quy, s
ộ ố
ệ
ả
ấ
ờ
ớ ắ
ọ
ạ ượ
ộ ố ỗ
ư ệ
ẽ
xu t hi n vài l n. B ng cách nêu l i nh ng đi m này, tôi c g ng t o cho sinh viên c h i đ ôn l i và
ấ
ệ
ầ
ằ
ạ
ữ
ể
ố ắ
ạ
ơ ộ ể
ạ
c ng c , ho c n u l n đ u h không n m đ
c, thì đó là c h i đ theo k p.
ủ
ố
ặ ế ầ
ầ
ọ
ắ
ượ
ơ ộ ể
ị
•
Tôi c g ng dùng càng ít Java càng t t đ đ t đ
c công hi u l p trình t i đa. M c đích c a cu n sách
ố ắ
ố ể ạ ượ
ệ ậ
ố
ụ
ủ
ố
này là d y l p trình và m t s ý t
ng c b n v khoa h c máy tính, ch không ph i d y Java. Tôi b
ạ ậ
ộ ố
ưở
ơ ả
ề
ọ
ứ
ả ạ
ỏ
qua m t s đ c đi m c a ngôn ng này, nh l nh
ộ ố ặ
ể
ủ
ữ
ư ệ switch, v n không c n thi t, và tránh h u h t các th
ố
ầ
ế
ầ
ế
ư