Kỹ thuật phần mềm và Khoa học máy tính có nên là chuyên ngành riêng biệt? [đóng cửa]


19

Trong nhiều thập kỷ, bằng cấp được chấp nhận để trở thành nhà phát triển phần mềm là "Khoa học Compter".
Chúng tôi đã có một vài câu hỏi về việc bằng cấp đó có thực sự chuẩn bị cho sinh viên phát triển phần mềm hay không.

Một số trường trong 8 năm gần đây đã bắt đầu cung cấp nhiều chuyên ngành riêng biệt trong lập trình. Sử dụng chương trình giảng dạy từ trường của tôi:

  • Khoa học máy tính , bắt đầu với một số khóa học lập trình giới thiệu trong năm đầu tiên, và sau đó tập trung vào khoa học máy tính lý thuyết, thuật toán và một chút công cụ hệ điều hành. Hầu hết các lớp học liên quan đến một số dự án nhỏ hơn và bài tập về nhà, được thực hiện solo hoặc theo cặp.
  • Công nghệ phần mềm , bắt đầu với các khóa học lập trình giới thiệu tương tự, thực hiện một vài lớp lý thuyết và sau đó đi vào thực tiễn phát triển phần mềm (kiểm tra, phương pháp xử lý, số liệu phần mềm, thu thập yêu cầu) và thiết kế phần mềm (thiết kế hệ thống phân tán, thiết kế hệ thống thông tin , thời gian thực / thiết kế nhúng, thiết kế hệ thống con, v.v.)

Các trường khác nhau làm điều đó khác nhau, vì vậy, trên đây chỉ là một ví dụ thực tế mà tôi quen thuộc. Điều tôi hỏi là: Có cần phải có chuyên ngành riêng biệt trong lập trình không?


1
Không hẳn vậy. Cách để học những kỹ năng này không phải là dạy một khóa học về chúng, mà là cung cấp cho chúng công việc dự án thực tế
Casebash

Điều gì khiến bạn nghĩ rằng họ không? RIT cung cấp cả hai như độ.
Andy

Andy: Tôi biết- Tôi đã đến RIT và có bằng SE. Tôi đã hỏi liệu họ có nên tách biệt không, liệu họ có hiện tại không. :)
Fishtoaster

Câu trả lời:


28

Vâng, họ nên được.

Mối quan hệ giữa khoa học máy tính và công nghệ phần mềm cũng giống như mối quan hệ giữa vật lý và kỹ thuật cơ khí. Một cái cung cấp nền tảng lý thuyết trong khi cái kia lấy những lý thuyết đó, cùng với các nguyên tắc kỹ thuật tốt, và áp dụng chúng vào việc thiết kế và triển khai phần mềm.

Bạn cần cả hai để sản xuất phần mềm mới và tốt hơn. Một nền giáo dục khoa học máy tính tốt đào tạo mọi người tạo ra các thuật toán mới, tốt hơn về cấu trúc dữ liệu, ngôn ngữ lập trình và mô hình, trình biên dịch và một số thứ khác có thể được sử dụng để tăng cường hệ thống phần mềm. Mặt khác, một nền giáo dục kỹ thuật phần mềm tốt sẽ đào tạo bạn sử dụng các công cụ và kiến ​​thức thu được thông qua một nghiên cứu khoa học về tính toán, cùng với kiến ​​thức về vòng đời phát triển phần mềm và các mô hình quy trình để thực sự xây dựng hệ thống mà khách hàng muốn và cần .


2
Sự tương tự vật lý / kỹ thuật là một thứ tôi sử dụng rất nhiều. Chúng tôi không thuê các nhà vật lý để thiết kế và xây dựng cây cầu, tại sao chúng tôi thuê các nhà khoa học máy tính để thiết kế và xây dựng các chương trình?
HerbN

1
Bởi vì các chương trình khoa học máy tính dạy thêm một chút về cách xây dựng chương trình so với chương trình vật lý thông thường của bạn;)
Wayne Werner

2
@WayneWerner: Không, họ thực sự, thực sự không.
DeadMG

3

Người ta biết rằng một chương trình giảng dạy CS điển hình không chuẩn bị một chương trình cho ngành công nghiệp, không nhiều như nó muốn bạn được chuẩn bị. Vì vậy, có, cần có một chuyên ngành kỹ thuật phần mềm, và hai người nên khác biệt, mặc dù chắc chắn trong cùng một khoa.


1

Họ nên là các ngành khác nhau, nhưng không phải ở cấp đại học. Tôi chỉ không thấy làm thế nào họ có thể nhồi nhét tất cả những gì cần thiết cho Kỹ thuật phần mềm ở mức độ đại học. Cũng giống như cách chúng ta không thấy bằng đại học về Kỹ thuật hệ thống (nơi mọi người có bằng MS sau khi lấy bằng EE, CE, Mechanical Eng hoặc CS), đó là trường hợp tương tự với Kỹ thuật phần mềm.

Đó là một cách tiếp cận đa ngành dựa trên khoa học máy tính và / hoặc MIS. Mọi người thực sự trở thành kỹ sư phần mềm trong thực tế (và không chỉ trong chức danh) sau khi theo đuổi công việc khóa học nâng cao và / hoặc kinh nghiệm làm việc trong lĩnh vực này, với điều kiện là sau này được thực hiện trong môi trường tiến hành công nghệ phần mềm.

Hầu hết mọi người đều có chức danh kỹ thuật phần mềm nhưng chưa thực sự tiến bộ ngoài mã hóa. Đây không phải là một khuyết điểm đối với họ, mà là một quan sát - họ đã không được tiếp xúc đầy đủ với loại công việc sẽ giúp họ tích lũy kinh nghiệm làm việc ngoài mã hóa. Tệ hơn nữa, hầu hết các công việc và tổ chức đều hoạt động một cách tàn bạo, và không được thực hiện kỹ thuật phần mềm thích hợp.

Hơn nữa, không có một số công việc hoặc sự trưởng thành về học thuật, tài liệu kỹ thuật phần mềm sẽ đơn giản bay qua đầu của hầu hết sinh viên đại học.


Nếu bạn muốn biết làm thế nào họ "nhồi nhét tất cả những gì cần thiết cho Kỹ thuật phần mềm ở mức độ đại học", hãy xem chương trình SE đại học đầu tiên ở Mỹ: se.rit.edu
Thomas Owens

Trừ khi tôi thiếu một cái gì đó, họ sẽ không nhồi nhét nó. Họ chỉ đơn giản là tạo ra một chương trình giảng dạy mở rộng 192 tín dụng. Điều này vượt xa chương trình đào tạo nâng cao tín dụng 60-80 điển hình mà bạn tìm thấy trong CS và MIS - có rất nhiều khóa học đang diễn ra ở đây, đủ để làm cho nó có thể so sánh với việc học hai chuyên ngành (hoặc nhận bằng đại học và bằng cấp). Tôi thích dòng chảy và sự tích hợp của các ngành kỹ thuật khác vào năm cuối. Đó là một chương trình giảng dạy hoàn hảo mà người ta có thể làm theo. Nhưng nó chỉ đơn giản chứng minh quan điểm của tôi rằng bạn không thể có SE với courseload điển hình một mình.
luis.espinal

Và một điều lưu ý tôi thấy ở đây là bạn đã bỏ ra rất nhiều công sức và bạn chỉ đơn giản nhận được một bằng cấp duy nhất (trái ngược với việc hoàn thành công việc khóa học tương tự để có được hai chuyên ngành hoặc bằng đại học và bằng cấp.) Có lẽ mối quan tâm đó sẽ ít quan trọng hơn một khi mức độ SE như vậy trở nên phổ biến hơn.
luis.espinal

Đó là một hệ thống quý, có nghĩa là khối lượng công việc chính xác tương đương với bằng CS (hoặc bất kỳ bằng đại học nào khác) từ cùng một trường đại học. Cuối cùng, đó là 4 năm học (10 tuần học, 1 tuần thi mỗi quý, 3 quý mỗi năm), 1 năm hợp tác.
Thomas Owens

Không hẳn vậy. Nó không tương đương khi tải công việc. Tôi hiện đang theo đuổi một thạc sĩ thứ hai (CE + EE) tại WPI theo một định dạng tương tự (3 quý, 10 tuần lớp + 1 tuần cho các kỳ thi). Từ kinh nghiệm, các chương trình như thế này khắt khe hơn và bao quát hơn so với chương trình đại học 60-80 điển hình. Nó không phải là một lời chỉ trích của chương trình, tâm trí bạn . Tôi nghĩ rằng nó là cần thiết để thực sự bao gồm kỹ thuật phần mềm ở cấp độ đại học. Và một cách tiếp cận tương tự cũng cần thiết cho CS (vì CS điển hình không còn bao gồm đủ thực hành, đa ngành hiện nay.)
luis.espinal
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.