Proposal for a Software Engineering Undergraduate Track in the School of Computing

 

Draft 10/19/2000:7:58 AM

 

This document describes a proposal for a new software engineering track in our undergraduate program.  Students who complete this track will still receive the same BS in CS as our current students, although we may wish to consider creating a BS in SE at some point in time.

 

The following lists some of the rationale for why we should even consider this:

 

Thus our proposal: create a two-track undergraduate degree.  One is a more exclusive computer science degree for those top students who have the skills and possibly the desire to go onto graduate school.  We propose that this track be called “Honors” so the actual degree will say something different from the other track.  (Naturally this will require investigating the Honors degree program and what it is takes to be called Honors.)  The second track we will call “software engineering.”  The goal is to produce students who are highly skilled and who will be able to have strong positive effects on their industrial employers.

 

The Honors Track

 

Admittance – the top 15% of the students after taking one year of sophomore classes are admitted to the Honors track.  Possible mechanisms for finding the top 15% could be:

 

Question – what if the top students don’t want into the Honors track?

 

Classes – these students would take a course schedule that is essentially the same as what we have now.  However, students in the Honors section will be allowed to take 5000 and 6000 level classes.  5000 and 6000 level classes will be smaller and should be able to advance at a much greater rate than we are able to do now with the broad range of student abilities.

 

Research – students in the honors track will get involved in research in their junior year.  They will hook up with a research group and be able to do independent study projects to enhance their skills.

 

BS/MS – it might be worth looking into creating a BS/MS degree where the Honors students stay one more year past the BS to get a combined BS/MS degree.  With the fifth year being one devoted to research.

 

Software engineering track

 

Admittance – this would stay like we have it now, admission following the freshman year.  We would do twice a year admissions and begin to scale up in the number of students that we accept, eventually getting the entry GPA down to 3.0.

 

Classes – the overall view of the classes would be as follows:

 

Year 1 – pretty much the same as we have it now (1010, 2010, 2020, 2100)

 

Year 2 – this would stay as we have it now except add a second class to follow on to CS3500 (call it cs3505) that would teach Analysis and Design (plus 3500, 3510, 3100 and 3810)

 

Year 3/Year 4– the same required classes as we have now, plus the following new ones:

·        A year-long, required class taught by the College of Business called “Business for Scientists and Engineers” – the goal of the class would be to give students exposure to all of the basics of business (accounting, marketing, finance, management, economics, etc.) with the goal that they should be able to operate more effectively in a business environment (and be able to read those company financial reports so they know when to sell their stock options J)

·        A two-semester course in some domain outside of computer science – software engineers need to have experience in other domains to be more effective at doing their jobs – the classes may come from science, engineering, business, medicine, etc.

·        From the restricted elective set, they would have to take, 3520, 4460, 4470, and 4480 (4000 level versions of OS, compilers, and networking) – note this is probably too huge of a burden, we might need to let them into the 5xxx versions – needs more thought

·        A one or two semester senior project course

·        Possibly a course from sociology or psychology on how humans use computers

·        4000-level electives in various areas, such as: web programming, human computer interaction, computer graphics, etc.  These courses will be well attended and should be directed to someone who will not be a grad student in the area, just need to know things so they can do their software development job better

 

Course Summary: The following lists the classes that are included in this curriculum.

 

  1. General Education – should be the same as with the CS degree
  2. General University requirements – again the same
  3. Math and Science – one year of Calculus, one year of Physics [SHOULD WE ONLY DO ½ of a year of this?].  Old required 3 science or engineering classes, they are no longer here?
  4. Required – part 1 – 1010, 2010, 2020, 2100, 3500, 3505, 3510, 3810
  5. Required – part 2 – 3520, 4460, 4470, 4480
  6. Business for Scientists and Engineers – 3xxx, 3xxx (2 classes)
  7. Domain classes – 3/4xxx (2 classes)
  8. CS Electives – 4xxx – 5 courses
  9. Capstone class – 4500

 

 

Benefits to our current faculty: faculty teaching 5000 and above classes will be smaller and more intense than they are now. 

 

Negative benefit to our current faculty: it is likely that faculty would have to teach one 4000 level class every year or one of the larger 3000 level classes every other year.

 

Survey of our current faculty: If you were required to teach one 4000 every year or one 3000 level class every other year, what class would you like to teach.  The 3000 level classes are already set (what we have now), but the 4000 classes could be created fresh.

 

 

 

New software engineering track (this is just a guess):

Example Computer Science Degree Program

 

Fall

Spring

 

 

 

 

 

Freshman

Math 1210 tex2html_wrap_inline1839

(4)

Math 1220 tex2html_wrap_inline1839

(4)

 

CS 1010 tex2html_wrap_inline1839

(0.5)

Physics 2210 tex2html_wrap_inline1839

(4)

 

CS 2010 tex2html_wrap_inline1839

(4)

CS 2020 tex2html_wrap_inline1839

(4)

 

Writing tex2html_wrap_inline1839

(3)

Gen Ed

(3)

 

Gen Ed

(3)

 

 

 

 

tex2html_wrap_inline1853

 

tex2html_wrap_inline1855

 

 

 

 

 

Sophomore

CS 2100

(2)

CS 3100

(3)

 

CS 3500

(4)

CS 3505

(3)

 

CS 3810

(4)

CS 3510

(3)

 

Physics 2220

(4)

Writing 3400

(3)

 

 

 

Gen Ed

(3)

 

 

tex2html_wrap_inline1857

 

tex2html_wrap_inline1859

 

 

 

 

 

Junior

CS 4460

(3)

CS 4470

(3)

 

CS 4xxx

(3)

CS 4480

(3)

 

Math elective

(4)

CS 4xxx

(3)

 

Gen Ed

(3)

Domain 1

(4)

 

Business - 1

(3)

Business - 2

(3)

 

 

tex2html_wrap_inline1859

 

tex2html_wrap_inline1859

 

 

 

 

 

Senior

CS 4xxx

(3)

CS capstone

(3)

 

CS 4xxx

(3)

CS 4xxx

(3)

 

Gen Ed

(3)

Gen Ed

(3)

 

Domain 2

(4)

Gen Ed

(3)

 

Free elective

(3)

Free elective

(3)

 

 

tex2html_wrap_inline1859

 

tex2html_wrap_inline1855

 

For a reference, here is the current CS undergraduate schedule:

Example Computer Science Degree Program

 

Fall

Spring

 

 

 

 

 

Freshman

Math 1210 tex2html_wrap_inline1839

(4)

Math 1220 tex2html_wrap_inline1839

(4)

 

CS 1010 tex2html_wrap_inline1839

(0.5)

Physics 2210 tex2html_wrap_inline1839

(4)

 

CS 2010 tex2html_wrap_inline1839

(4)

CS 2020 tex2html_wrap_inline1839

(4)

 

Writing tex2html_wrap_inline1839

(3)

Gen Ed

(3)

 

Gen Ed

(3)

 

 

 

 

tex2html_wrap_inline1853

 

tex2html_wrap_inline1855

 

 

 

 

 

Sophomore

CS 2100

(2)

CS 3100

(3)

 

CS 3500

(4)

CS 3510

(3)

 

CS 3810

(4)

Math elective

(4)

 

Physics 2220

(4)

Writing 3400

(3)

 

 

 

Gen Ed

(3)

 

 

tex2html_wrap_inline1857

 

tex2html_wrap_inline1859

 

 

 

 

 

Junior

CS restricted elective

(3)

CS restricted elective

(3)

 

CS restricted elective

(3)

CS restricted elective

(3)

 

Math elective

(4)

CS elective

(3)

 

Gen Ed

(3)

Science elective

(4)

 

Free elective

(3)

Free elective

(3)

 

 

tex2html_wrap_inline1859

 

tex2html_wrap_inline1859

 

 

 

 

 

Senior

CS elective

(3)

CS capstone

(3)

 

CS elective

(3)

CS elective

(3)

 

Gen Ed

(3)

Gen Ed

(3)

 

Gen Ed

(3)

Free elective

(3)

 

Free elective

(4)

Free elective

(3)

 

 

tex2html_wrap_inline1859

 

tex2html_wrap_inline1855