Haruskah Rekayasa Perangkat Lunak dan Ilmu Komputer menjadi jurusan yang terpisah? [Tutup]

19

Selama beberapa dekade, gelar yang diterima untuk menjadi pengembang perangkat lunak adalah "Compter Science."
Kami sudah memiliki beberapa pertanyaan tentang apakah gelar itu benar-benar mempersiapkan siswa untuk mengembangkan perangkat lunak.

Beberapa sekolah telah, dalam 8 tahun terakhir, mulai menawarkan beberapa jurusan yang berbeda dalam pemrograman. Menggunakan kurikulum dari sekolah saya:

  • Ilmu Komputer , yang dimulai dengan beberapa kursus pemrograman intro di tahun pertama, dan kemudian berfokus pada ilmu komputer teoretis, algoritma, dan sedikit hal-hal OS. Sebagian besar kelas melibatkan beberapa proyek dan pekerjaan rumah yang lebih kecil, dilakukan solo atau berpasangan.
  • Rekayasa Perangkat Lunak , yang dimulai dengan kursus pemrograman intro yang sama, melakukan beberapa kelas teori, dan kemudian masuk ke praktik pengembangan perangkat lunak (pengujian, metodologi proses, metrik perangkat lunak, pengumpulan persyaratan) dan desain perangkat lunak (desain sistem terdistribusi, desain sistem info , desain waktu-nyata / disematkan, desain subsistem, dll)

Sekolah yang berbeda melakukannya dengan cara berbeda, jadi contoh di atas hanyalah contoh dunia nyata yang saya kenal. Yang saya tanyakan adalah: Apakah ada kebutuhan untuk jurusan yang berbeda dalam pemrograman?

Fishtoaster
sumber
1
Tidak juga. Cara untuk mempelajari keterampilan ini bukan dengan mengajar kursus tentang mereka, tetapi untuk memberi mereka pekerjaan proyek yang sebenarnya
Casebash
Apa yang membuatmu berpikir mereka tidak? RIT menawarkan keduanya sebagai derajat.
Andy
Andy: Saya tahu - saya pergi ke RIT dan mendapatkan gelar SE. Saya bertanya apakah mereka harus terpisah, bukan apakah mereka saat ini. :)
Fishtoaster

Jawaban:

28

Ya, seharusnya begitu.

Hubungan antara ilmu komputer dan rekayasa perangkat lunak sama dengan hubungan antara fisika dan teknik mesin. Satu memberikan latar belakang teoritis sementara yang lain mengambil teori-teori itu, bersama dengan prinsip-prinsip teknik yang baik, dan menerapkannya pada desain dan implementasi perangkat lunak.

Anda memerlukan keduanya untuk menghasilkan perangkat lunak baru dan lebih baik. Pendidikan ilmu komputer yang baik melatih orang untuk menghasilkan algoritme baru dan lebih baik, struktur data, bahasa dan paradigma pemrograman, kompiler, dan sejumlah hal lain yang dapat digunakan untuk meningkatkan sistem perangkat lunak. Pendidikan rekayasa perangkat lunak yang baik, di sisi lain, melatih Anda untuk mengambil alat dan pengetahuan ini yang diperoleh melalui studi ilmiah perhitungan, bersama dengan pengetahuan tentang siklus pengembangan perangkat lunak dan model proses untuk benar-benar membangun sistem yang diinginkan dan dibutuhkan oleh pelanggan. .

Thomas Owens
sumber
2
Analogi fisika / teknik adalah yang sering saya gunakan. Kami tidak mempekerjakan fisikawan untuk merancang dan membangun jembatan, mengapa kami mempekerjakan ilmuwan komputer untuk merancang dan membangun program?
HerbN
1
Karena program ilmu komputer sedikit banyak mengajarkan tentang bagaimana membangun program daripada program fisika tipikal Anda;)
Wayne Werner
2
@WayneWerner: Tidak, mereka benar-benar tidak.
DeadMG
3

Sudah diketahui secara umum bahwa kurikulum CS biasa tidak menyiapkan satu untuk industri, tidak sebanyak yang ingin Anda siapkan pula. Jadi ya, ada kebutuhan untuk jurusan teknik perangkat lunak, dan keduanya harus berbeda, meskipun jelas di fakultas yang sama.

EpsilonVector
sumber
1

Mereka harus disiplin yang berbeda, tetapi tidak di tingkat sarjana. Saya hanya tidak melihat bagaimana mereka dapat mengatasi semua yang diperlukan untuk Rekayasa Perangkat Lunak pada gelar sarjana. Hanya dengan cara yang sama kita tidak melihat gelar sarjana dalam Sistem Rekayasa (di mana orang mendapatkan gelar MS setelah mendapatkan gelar di EE, CE, Mechanical Eng atau CS), itu adalah kasus yang sama dengan Rekayasa Perangkat Lunak.

Ini adalah pendekatan multidisiplin yang banyak didasarkan pada ilmu komputer dan / atau MIS. Orang-orang benar-benar menjadi insinyur perangkat lunak dalam praktik (dan bukan hanya dalam judul) setelah mengejar pekerjaan kursus lanjutan dan / atau pengalaman kerja di lapangan, asalkan nanti dilakukan di lingkungan yang konduktif dari rekayasa perangkat lunak.

Kebanyakan orang memiliki judul rekayasa perangkat lunak tetapi belum benar-benar maju melampaui pengkodean. Ini bukan gangguan pada mereka, tetapi sebuah pengamatan - mereka belum cukup terpapar dengan jenis pekerjaan yang akan membantu mereka mengumpulkan pengalaman kerja di luar coding. Lebih buruk lagi, sebagian besar pekerjaan dan organisasi dijalankan dengan kejam, dan tidak konduktif melakukan rekayasa perangkat lunak yang tepat.

Selain itu, tanpa kedewasaan kerja atau skolastik, materi rekayasa perangkat lunak hanya akan terbang di atas kepala sebagian besar mahasiswa sarjana.

luis.espinal
sumber
Jika Anda ingin tahu bagaimana mereka "meningkatkan semua yang diperlukan untuk Rekayasa Perangkat Lunak pada gelar sarjana", lihatlah program sarjana SE pertama di AS: se.rit.edu
Thomas Owens
Kecuali saya kehilangan sesuatu, mereka tidak kram. Mereka hanya menciptakan kurikulum tambahan 192-kredit. Ini di luar kurikulum sarjana kredit 60-80 khas yang Anda temukan di CS dan MIS - ada lebih banyak kursus yang berlangsung di sini, cukup untuk membuatnya sebanding dengan mengambil jurusan ganda (atau mendapatkan sarjana dan gelar sarjana). Saya suka aliran dan integrasi disiplin ilmu teknik lainnya di tahun senior. Ini adalah kurikulum sempurna yang bisa diikuti seseorang. Tapi itu hanya membuktikan pendapat saya bahwa Anda tidak bisa mendapatkan SE dengan courseload undergrad khas saja.
luis.espinal
Dan satu peringatan yang saya lihat di sini adalah bahwa Anda menghabiskan begitu banyak upaya dan Anda hanya mendapatkan gelar undegradasi tunggal (sebagai lawan menyelesaikan pekerjaan kursus yang sama untuk mendapatkan gelar mayor ganda atau sarjana dan pascasarjana.) Sayangnya kulit domba penting. Mungkin kekhawatiran itu akan kurang penting begitu derajat SE menjadi lebih luas.
luis.espinal
Ini adalah sistem kuartal, artinya beban kerja yang sama persis dengan gelar CS (atau gelar sarjana lainnya) dari universitas yang sama. Pada akhirnya, ini adalah 4 tahun kelas (kelas 10 minggu, 1 minggu ujian per kuartal, 3 kuartal per tahun), 1 tahun co-op.
Thomas Owens
Tidak juga. Itu tidak setara ketika datang ke beban kerja. Saat ini saya sedang mengejar master kedua (CE + EE) di WPI yang mengikuti format yang sama (3 kuartal, 10 minggu kelas + 1 minggu untuk ujian). Dari pengalaman, program seperti ini lebih ketat dan mencakup lebih dari tingkat sarjana 60-80. Ini bukan kritik terhadap program, ingatlah . Saya pikir perlu untuk benar-benar mencakup rekayasa perangkat lunak di tingkat sarjana. Dan pendekatan yang serupa juga harus dilakukan untuk CS (karena CS tipikal tidak lagi mencakup
praktik