Undergraduate | Masters | Ph.D.
Undergraduate | Masters | Ph.D.
Undergraduate | Masters | Ph.D.
Prospective | Current
Middle School | High School
Recruiters | Professional Education | Partners | Donors
Partners | Donors
Stevens | Computer Science

B.S. in Service Oriented Computing

SOC Pivot Course: Distributed SystemsTechnologies such as Web services are facilitating a view of software as services, more fine-grain than the normal view of software libraries, that may be used for heavyweight inter-enterprise application integration, but may also be used for very flexible lightweight rapid development of new applications. We are seeing the emergence of frameworks that domain experts in that sector can use, not just to compose together services but also to synthesize new applications. This synthesis may be done using scripting languages or domain-specific programming languages and protocols. All of this represents a growing demand for front-end applications, that leverage the provision of existing software services, but where the emphasis of the software development is providing client front-ends. This is related to the emerging discipline of informatics, which emphasizes applications of computer science and domain expertise.

The kinds of tasks that such a developer pursue range all the way from designing and implementing web pages, to developing distributed collaborative applications with sophisticated database backends. They will need to go beyond existing technology in application development, to overcome the poor support in Web Services for building highly available applications, for example. They may need to develop application-specific scripting languages of their own, since the interfaces of some applications are sophisticated enough to be considered languages in their own right, while using an existing scripting language might be too general and difficult for the client to master.

The Bachelor of Science in Service Oriented Computing (BS/SOC) is a response to this trend in the marketplace for IT skills. At a first approximation, it may be viewed as occupying an intermediate point along the continuum between computer science and information systems. The traditional emphasis of computer science is on the hardware/software interface, while that of information systems is on information management and systems analysis and design. The BS/SOC provides only minimal coverage of the hardware/software interface (as much as is covered by the systems programming course) and focuses instead on front-end and distributed application development skills. At the same time, the BS/SOC does not skimp on the basic mathematical and problem-solving skills required of the modern software developer. Indeed, software development skills that are considered optional in many computer science curricula, such as concurrent programming, building reliabile distributed systems, and operational semantics for interpreters, are core components of the BS/SOC program. The BS/SOC provides courses in:

  • concurrent programming
  • databases
  • cybersecurity fundamentals
  • requirements acquisition and human computer interaction
  • web programming and service oriented architecture (SOA)
  • distributed systems

The BS/SOC is intended to graduate domain experts with deep technical skills. Therefore each major in the BS/SOC must choose an application area that is defined by the major. The currently approved application domains are below, but other domains may be approved by the program director:

  • Health Informatics
  • Software Engineering
  • Internet Software Engineering

Study Plans

For the BS/SOC major, we present a study plan:

  1. For students with some background in computer science from high school (at least a year of programming in an imperative language such as Java or C).  These students can take CS 115 in their first term.
  2. For students with little or no background in computer science, who should take CS 105 in their first term.
  3. For students in the Honors Program, who take CS 181 and CS 182 instead of the CS 115 / CS 284 / CS 385 sequence.

Service Oriented Computing Study Plans

All majors share a common first year, giving students a chance to decide which of the majors they ultimately wish to choose.  The only difference for majors in the computer science department in the freshman year is the science sequence that they choose:

  Fall Spring Laboratory
Physics PEP 111 Mechanics PEP 112 E&M PEP 222
Chemistry CH 115 Gen Chem I CH 116 Gen Chem II CH 117
Chem & Bio CH 115 Gen Chem I CH 281 Bio & Biotech CH 117
Chem & Bio CH 115 Gen Chem I CH 281 Bio & Biotech CH 282
Physics & Bio PEP 111 Mechanics CH 281 Bio & Biotech CH 282

One of the Humanities electives must be HSS 371 Computers and Society.

There are four SOC electives in the study plans.  The SOC electives must be chosen from an approved application area.  Our first application areas are:

Health Informatics
CS 513 Knowledge Discovery and Data Mining
CS 522 Mobile and Pervasive Computing
CS 578 Privacy in a Networked World
CS 544 Health Informatics

Software Engineering
CS 540 Fundamentals of Quantitative Software Engineering
CS 533 Cost Estimation and Metrics
CS 565 Software Architecture and Design
CS 567 Software Testing

Internet Software Engineering
CS 513 Knowledge Discovery and Data Mining
CS 522 Mobile and Pervasive Computing
CS 578 Privacy in a Networked World
CS 540 Fundamentals of Quantitative Software Engineering

   SOC Study Plan: Some CS Background
Term I
Course #Course Name
CS 115Introduction to Computer Science3-2-4
Science I3-0-3
CS 146Web Fundamentals3-0-3
PE 115Physical Education0-2-0
Total9-4
Term II
Course #Course Name
Ma 116Calculus II 3-0-6
CS 284Data Structures4-0-4
Science II3-0-3
Science Lab0-3-0
MA 134Discrete Mathematics3-0-6
HUMHumanities3-0-6
PE 200Physical Education0-2-0
Total16-5
Term III
Course #Course Name
CS 385Algorithms4-0-8
MGT 111Social Psychology and Organizational Behaviour3-0-0
CS 334Automata and Computation3-0-3
HUMHumanities3-0-6
HUMHumanities3-0-3
PE 200Physical Education0-2-0
Total16-2
Term IV
Course #Course Name
CS 392Systems Programming3-0-3
CS 347Software Development Process3-0-3
CS 496Principles of Programming Languages3-0-3
MA 222Probability and Statistics3-0-6
HUMHumanities3-0-6
PE 200Physical Education0-2-0
Total15-2
Term V
Course #Course Name
CS 442Database Management Systems3-0-6
CS 511Concurrent Programming3-0-3
CS 564Software Requirements Acquisition and Analysis3-0-3
Applied Statistics3-0-3
HUMHumanities3-0-6
PE 200Physical Education0-2-0
Total15-2
Term VI
Course #Course Name
CS 546Web Programming3-0-3
SOC Elective3-0-3
CS 545Human-Computer Interaction3-0-3
SOC Elective3-0-3
HUMHumanities3-0-6
PE 200Physical Education0-2-0
Total15-2
Term VII
Course #Course Name
CS 551Software Engineering and Practice I3-0-3
CS 573Fundamentals of CyberSecurity3-0-3
CS 549Distributed Systems3-0-3
CS 548Engineering of Enterprise Software Systems3-0-3
HUMHumanities3-0-6
Total15-0
Term VIII
Course #Course Name
CS 552Software Engineering and Practice II3-0-3
SOC Elective3-0-3
Free Elective3-0-6
SOC Elective3-0-3
HUMHumanities3-0-6
Total15-0
   SOC Study Plan: Weak Background
Term I
Course #Course Name
CS 105Introduction to Scientific Computing2-2-0
Science I3-0-3
CS 146Web Fundamentals3-0-3
PE 115Physical Education0-2-0
Total8-4
Term II
Course #Course Name
Ma 116Calculus II 3-0-6
CS 115Introduction to Computer Science3-2-4
Science II3-0-3
Science Lab0-3-0
MA 134Discrete Mathematics3-0-6
HUMHumanities3-0-6
PE 200Physical Education0-2-0
Total15-7
Term III
Course #Course Name
CS 284Data Structures4-0-4
MGT 111Social Psychology and Organizational Behaviour3-0-0
CS 334Automata and Computation3-0-3
HUMHumanities3-0-6
HUMHumanities3-0-3
PE 200Physical Education0-2-0
Total16-2
Term IV
Course #Course Name
CS 385Algorithms4-0-8
CS 347Software Development Process3-0-3
CS 496Principles of Programming Languages3-0-3
MA 222Probability and Statistics3-0-6
HUMHumanities3-0-6
PE 200Physical Education0-2-0
Total16-2
Term V
Course #Course Name
CS 442Database Management Systems3-0-6
CS 511Concurrent Programming3-0-3
CS 564Software Requirements Acquisition and Analysis3-0-3
Applied Statistics3-0-3
HUMHumanities3-0-6
PE 200Physical Education0-2-0
Total15-2
Term VI
Course #Course Name
CS 546Web Programming3-0-3
SOC Elective3-0-3
CS 545Human-Computer Interaction3-0-3
SOC Elective3-0-3
CS 392Systems Programming3-0-3
PE 200Physical Education0-2-0
Total15-2
Term VII
Course #Course Name
CS 551Software Engineering and Practice I3-0-3
CS 573Fundamentals of CyberSecurity3-0-3
CS 549Distributed Systems3-0-3
CS 548Engineering of Enterprise Software Systems3-0-3
HUMHumanities3-0-6
Total15-0
Term VIII
Course #Course Name
CS 552Software Engineering and Practice II3-0-3
SOC Elective3-0-3
HUMHumanities3-0-6
SOC Elective3-0-3
HUMHumanities3-0-3
Total15-0
   SOC Study Plan: Honors Student
Term I
Course #Course Name
CS 181Introduction to Computer Science Honors I3-2-4
Science I3-0-3
CS 146Web Fundamentals3-0-3
PE 115Physical Education0-2-0
Total9-4
Term II
Course #Course Name
Ma 116Calculus II 3-0-6
CS 182Introduction to Computer Science Honors II4-0-4
Science II3-0-3
Science Lab0-3-0
MA 134Discrete Mathematics3-0-6
HUMHumanities3-0-6
PE 200Physical Education0-2-0
Total16-5
Term III
Course #Course Name
CS 392Systems Programming3-0-3
MGT 111Social Psychology and Organizational Behaviour3-0-0
CS 334Automata and Computation3-0-3
HUMHumanities3-0-6
HUMHumanities3-0-3
PE 200Physical Education0-2-0
Total15-2
Term IV
Course #Course Name
Free Elective3-0-6
CS 347Software Development Process3-0-3
CS 496Principles of Programming Languages3-0-3
MA 222Probability and Statistics3-0-6
HUMHumanities3-0-6
PE 200Physical Education0-2-0
Total15-2
Term V
Course #Course Name
CS 442Database Management Systems3-0-6
CS 511Concurrent Programming3-0-3
CS 564Software Requirements Acquisition and Analysis3-0-3
Applied Statistics3-0-3
HUMHumanities3-0-6
PE 200Physical Education0-2-0
Total15-2
Term VI
Course #Course Name
CS 546Web Programming3-0-3
SOC Elective3-0-3
CS 545Human-Computer Interaction3-0-3
SOC Elective3-0-3
HUMHumanities3-0-6
PE 200Physical Education0-2-0
Total15-2
Term VII
Course #Course Name
CS 551Software Engineering and Practice I3-0-3
CS 573Fundamentals of CyberSecurity3-0-3
CS 549Distributed Systems3-0-3
CS 548Engineering of Enterprise Software Systems3-0-3
HUMHumanities3-0-6
Total15-0
Term VIII
Course #Course Name
CS 552Software Engineering and Practice II3-0-3
SOC Elective3-0-3
Free Elective3-0-3
SOC Elective3-0-3
HUMHumanities3-0-6
Total15-0