M.S. in Service Oriented Computing
As IT becomes more and more ubiquitous, in e-commerce and e-government, there is an exploding demand for the wide range of expertise in IT and software development that is needed to meet the demands of the modern information economy. In particular there is a need for domain-specific experts who are conversant both in information technology and software skills, and also have a facility for the appropriate applications of these technologies in a particular field.
Technologies such as Web services are facilitating a view of software as “services,” much 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. This is related to an emerging phenomenon of “situational programming,” where lightweight applications must be developed rapidly and relatively easily. This goes somewhat beyond simple “mash-ups” on the Web, but such applications often do not require the depth of skill and management that large software projects entail.
The Master of Science in Service Oriented Computing (M.S./SOC), program is an accelerated professional education program that provides you the domain experts with the skill sets that you need in order to use and manage the IT that is being deployed globally today. You may have little or no background in software development, but you are already or want to be a professional in a particular field with IT skills. The program will provide you with very focused training in the skill sets that are required to make you technically capable of taking existing frameworks and using them to develop new client-specific applications.
The focus of the program is very much on front-end skills:
- Requirements acquisition and analysis.
- Human-computer interaction.
- Web design and information architecture.
- Ethical and privacy issues.
The kinds of tasks that you will pursue will range all the way from designing and implementing web pages, to developing distributed collaborative applications with sophisticated database backends. However you will not be expected to develop backend skills. That will be the job of systems programmers and systems administrators (with whom you may need to interact).
The program will provide a very focused path for obtaining the basic software development skills that you will require. The sequence starts with an introductory programming course that teaches fundamental problem-solving skills in the context of learning a programming language that is geared to end-user applications (e.g., Visual Basic, Ruby). A successor course teaches basic software engineering skills and best practices for Web-based applications, particularly for three-tier client-server applications using a Web server as a frontend to a database. The cornerstone course builds on this to teach more advanced approaches such as Web services, AJAX and REST. The use of transactions for concurrency control and reliability is also explained. Finally a capstone course uses these techniques in a term assignment that involves developing an application that is relevant to a particular domain.
We term this a program in service oriented computing (informatics is also a term that is sometimes used) because service oriented architectures (SOA) are the emerging basis for the frameworks that you will be using to develop your domain-specific end-user applications. Web and distributed programming, along with basic software engineering and human computer interaction (HCI) skills, are an important part of the necessary skills sets.
Graduate Advisor
Courses in the MS/SOC Program
Required Courses
| Web Applications | SOC 606 Introduction to Internet Applications |
| SOC 611 Web Fundamentals | |
| Requirements | SOC 510 Human Computer Interaction |
| SOC 521 Software Requirements Acquisition | |
| Service Oriented Architecture | SOC 641 Distributed Application Development |
| SOC 542 Engineering of Enterprise Software Systems |
Students without any prior programming experience, including an introductory programming course, should take SOC 605 Introduction to Service Oriented Computing. SOC 605 is an introductory programming course, taught using Visual Basic.
SOC 606 teaches Web programming using PHP and Javascript.
SOC 641 teaches distributed application programming using .NET.
Electives
You may choose any additional four courses for your program. Up to three of the courses can be from any other discipline, including Computer Science. Below are some suggested electives for you to take.
| Data Mining and Privacy | SOC 550 Knowledge Discovery and Data Mining |
| SOC 551 Privacy in a Networked World | |
| Health Informatics | SOC 552 Health Informatics |
| Languages | SOC 630 Java |
| SOC 631 C# | |
| SOC 632 Ruby | |
| SOC 633 Visual Basic | |
| Databases | CS 561 Database Management Systems |
| Software Engineering | SWE 540 Fundamentals of Software Engineering |
| SWE 565 Software Architecture and Design | |
| Management | MGT 662 Legal Issues for the IT Professional |
| MGT 679 Management Information Systems | |
| TM 675 Analyzing Technology Risks |
Sample Study Plan - Part Time
| Fall | Spring | Summer | |
|---|---|---|---|
| Year 1 | SOC 605 Introduction to SOC SOC 611 Web Fundamentals |
SOC 606 Intro to Internet Apps SOC 510 HCI |
SOC 521 Software Reqts |
| Year 2 | SOC 641 Dist App Dev SOC 542 Eng of Ent Soft Sys |
SOC 650 Data Mining SOC 551 Privacy SOC 552 Health Informatics |
Ask a question about the MS/SOC program. *
* Remove the spaces around "@" when sending email.



