 | Graduate Programs in Service Oriented Computing | |
Programs
The graduate program in Service-Oriented Computing is intended for students without a formal Computer Science background, who want to learn about the application of IT, including Web apps and cloud computing,
in various application domains. Prospective students who already have a background
in computer should consider the
graduate program in Enterprise and Cloud Computing,
which covers much of the same material at a more advanced level.
The core of the program emphasizes Web apps and Web services,
systematic design of the interface between users and those applications,
and requirements analysis and design as part of the design and development of such applications.
Elective courses include topics such as cloud computing, data mining and text mining,
security and privacy, game design and health informatics. Students also have the opportunity to take
free electives outside the SOC courses, to complement the IT focus of this program.
Further Information
The graduate certificate program provides a very focused path for obtaining
basic skills in systems analysis and design for modern internet
applications and Web services. This includes the use of modern tools for
implementing such applications that automate many aspects of their
development, leaving the developer to provide a small amount of
specialization code. The program uses Java EE, ASP.NET, and the Java and C# programming
languages, as examples of this form of modern development environment.
The sequence starts with an optional introductory programming
course, SOC 605 Introduction to Service Oriented Computing,
that teaches fundamental problem-solving skills in the context of learning a
programming language (C#) that is geared to end-user applications. C# is a key
language for implementing internet applications and Web services. It is
for example the preferred language for implementing applications in
.NET. Furthermore it shares many concepts with Java, another key
language for implementing internet and Web service applications. This course
may be omitted for those that have already had an introductory programming
course in a comparable language, such as Java. Students with such a
background course, in a language other than Java or C#, should consider
taking this course in order to learn C#. If you know C# but would like to take a course in Java,
then we recommend SOC 501 Java as an elective course.
SOC 611 Fundamentals of Service Oriented Computing teaches
fundamental concepts that are useful in the remainder of the program.
This course teaches HTML, including cascading style sheets. It also teaches
requirements analysis, performing basic systems analysis in order to
learn what is required of a software artifact or an IT deployment.
Modeling languages, such as UML class
diagrams for data modeling and UML interaction diagrams
for simple object interactions, are introduced. Finally the course introduces relational databases,
including data model
normalization and the SQL query language.
If you already have a CS background, then you may substitute CS 561 Database Management Systems for this course.
SOC 606 Introduction to Developing Internet
Applications builds on the material in SOC 605 and SOC 611, teaching
basic software engineering skills and best
practices for Web-based applications, using a Web server as a front-end to a database,
using C# and ASP.NET. Various aspects of security in
Web-based applications are also covered, including role-based
authentication in ASP.NET, and protecting against SQL injection and
cross-site scripting (XSS) attacks.
If you already have a CS background, then you may substitute CS 526 Enterprise and Cloud Computing or CS 546 Web Programming for this course.
SOC 542 Engineering of Enterprise Software Systems teaches the fundamentals
of enterprise software architecture and design, for modern
enterprise and cloud computing applications. Techniques such as
domain-driven design, object-relational mapping, service-oriented architecture (SOA), event-driven architecture (EDA) and REST for Web services
are described in this course. You obtain hands-on experience with applying these
techniques in the construction of an n-tier enterprise application, using Eclipse and Glassfish,
the open source application server for Java Enterprise Edition. If you do not already have experience with Java,
then you may want to consider taking SOC 501 Java beforehand. If you already have experience with C#,
then you should be able to learn Java quickly on your own.
If you have a CS background, this course is cross-listed with CS 548 Enterprise Software Architecture and Design.
SOC 510 Human Computer Interaction:
This is an introduction to Human Computer Interaction (HCI). It covers basic concepts, principles, and frameworks in HCI; models of interaction; and design guidelines and methodologies. The course includes extensive readings and reports, as well as work on projects involving interface design and development.
If you have a CS background, this course is cross-listed with CS 545 Human Computer Interaction.
Elective Courses
There are many courses beyond these that you may take as an SOC major, some of them cross-listed with
Computer Science courses, others unique to the SOC program. Examples of such courses include:
- SOC 501 Introduction to Java Programming:
An introduction to the Java programming language for those students who have little or no programming background. It is intended as an elective for the Master of Science in Information Systems to be taken near the end of the program. Basic topics considered will be programs and program structure in general and Java syntax, data types, flow of control, classes, methods and objects, arrays, exception handling, and recursion. In addition, the use of Java in enterprise-wide computing and distributed systems will be introduced by considering APIs in general, and the ones specific to JDBC and the Java security features in particular.
- SOC 512 Online Social Networks:
The objective of this course is to educate students in the design, implementation and analysis of on-line social networks, from the viewpoint of software as a service. The course introduces basic concepts and results in graph theory and game theory, and demonstrates their application in reasoning about social networks. Privacy and security aspects of social networks are also considered. Course work includes developing a social network application and analyzing data harvested from social networks.
- SOC 519 Introduction to E-Commerce:
The course provides an understanding of electronic commerce and related architectures, protocols, and technologies. It describes the e-commerce concept, objectives, and market drivers, as well as its requirements and underpinning techniques and technologies, including the Internet, WWW, multimedia, intelligent agents, client-server, and data mining. Security in e-commerce is addressed, including types of security attacks, security mechanisms, Virtual Private Networks (VPNs), firewalls, Intranets, and extranets. Implementation issues in e-commerce, including the design and management of its infrastructure and applications (ERP, CRM, and SCM), are discussed. M-commerce is addressed, electronic payment systems with their associated protocols are described, and various B2C and B2B applications are presented. Also, policy and regulatory issues in ecommerce are discussed.
- SOC 524 Introduction to Cloud Computing: introduces the modern computing environment, based on SaaS, PaaS and IaaS.
This course introduces the concepts of cloud computing, using the frameworks of software as a service (SaaS), platform as a service (PaaS), and infrastructure as a service (IaaS). Fundamental concepts from each framework are introduced and related to the structure of the modern cloud. Cloud computing: economics of outsourcing. SaaS: The Web as a client-server system. Web stack: HTML and HTTP. Web data: XML and JSON. Web services and example APIs. PaaS: Introduction to databases and middleware. Data storage in the cloud. Privacy issues. IaaS: Design of server farms. Virtualization and green computing. Service discovery: DNS and content distribution networks. Batch processing in the cloud. Assignments include quizzes, examinations, and a presentation and term paper on a cloud-related topic.
- SOC 550 Knowledge Discovery and Data Mining:
This course introduces fundamental and practical tools, techniques, and algorithms for Knowledge Discovery and Data Mining (KD&DM). It provides a balanced approach between methods and practice. On the methodological side, it covers several techniques for transforming corporate data into business intelligence. These include: online Analytical Processing (OLAP) Systems, Artificial Neural Networks (ANN), Rule-Based Systems (RBS), Fuzzy Logic (FL), Machine Learning (ML), Classification Trees (C4.5 Algorithm), and Classification and Regression Trees (CART Algorithm). To illustrate the practical significance of the various techniques, half of the course is devoted to case studies. The case studies, drawn from real-world applications, demonstrate application of techniques to real-world problems.
- SOC 551 Privacy in a Networked World:
Increasing use of computers and networks in business, government,
recreation, and almost all aspects of daily life has led to a
proliferation of online sensitive data that, if used improperly, can
harm the data subjects. As a result, concern about the ownership,
control, privacy, and accuracy of these data has become a top priority.
This course focuses on both the technical challenges of handling
sensitive data and the policy and legal issues facing data subjects,
data owners, and data users. This course is suitable for advanced
undergraduate computer science majors, graduate students in computer
science, and students in technology management or other majors with
some computer science background. Course readings draw on a variety of
sources, including both technical materials and the popular press.
- SOC 552 Health Informatics:
This course integrates computer science and health informatics. It is the capstone course for students in the service-oriented computing program who choose the health informatics application domain. The course covers the history of health informatics, including discussions of protocols and standards, such as OSI, UDEF, and HL7; review of information access and evaluation, health care terminology and health care economics, and looks at system selection and evaluation in the areas of telemedicine, dental informatics, consumer health informatics, and hospital/clinical informatics. Special attention is given to Web services and mobile computing as they relate to the health care industry. The course includes extensive readings.
- SOC 553 Text Mining and Statistical Natural Language Processing covers an important aspect of getting information from today's Web: much of this information is in text form!
This course will introduce statistical processing of natural language texts, particularly counting words and phrases in and of themselves as well as associations between them using correlations and other measures. Goals of text mining include document classification, information retrieval, source authentication, and stylistic categorization. Typical document sources are newspaper stories, email captures, and Internet pages, as well as collections of non-fiction and fiction such as Federalist Papers and Edgar Allan Poe short stories.
- SOC 585 Introduction to Game Design:
The course will provide the students with: (i) A theoretical understanding of the principles, concepts, and structures underlying game designs; (ii) An analysis of game specific engineering frameworks and architectures including software and hardware architectures, game play mechanics, design documentation, and production methodology; (iii) An introduction to the innovation processes and skills neeed to formulate a viable design and take it from the idea stage to a published game.
- CS 593 Data Mining II: Advanced Algorithms for Mining Big Data:
- SOC 594 Enterprise Security and Information Assurance:
This course addresses the security of e-business and cyber environments from an end-to-end perspective, including data center security and access security. The information security phases of inspection, protection, detection, reaction, and reflection are emphasized. Topics also include: server and application security, virtual local area networks (VLANs), secure access and financial transaction techniques, and backup and disaster recovery techniques. The course also reviews financial Electronic Data Interchange (EDI) and smart card security in banking applications, and describes how the business and financial risks associated with security are estimated and managed. The course includes a project and related lab experiments.
- CS 696 Database Security:
This course is an advanced graduate course that provides an up-to-date overview of data security models, techniques, and architectures in a variety of data management applications and settings. It will cover some of the most comprehensive work on database security, with the covered topics as: (1) access control policies and mechanisms for both relational and structured databases, (2) database integrity auditing techniques, (3) database watermarking, and (4) security in distributed database management systems.
- CS 597 User Experience Design and Programming:
Required Courses
Area |
Course |
Prereqs |
Web Applications |
SOC 606 Introduction to Developing Internet Applications* |
SOC 605, SOC 611 |
|
OR CS 546 Web
Programming* |
CS 561 |
|
OR CS 526
Enterprise and Cloud Computing* |
CS 590 |
|
|
|
|
SOC
611 Fundamentals of SOC** |
|
|
OR CS 561 Database Management Systems** |
CS 590 |
|
|
|
User Interface |
SOC
510 or CS 545 Human Computer Interaction |
SOC 605 |
|
|
|
Service Oriented Architecture |
SOC
542 or CS 548 Enterprise Software Architecture |
S0C 605 |
* Pick one of these three courses for the Graduate Certificate. Students in the SOC program should take SOC 606, since CS 546 and CS 526 are advanced courses intended for Computer Science students.
** Pick one of these two courses for the Graduate Certificate. Students in the SOC program should take SOC 606, since CS 561 is an advanced course intended for Computer Science students.
Graduate Certificate Sample Study Plan - Part Time via Webcampus
|
Fall |
Spring |
Year 1 |
(SOC 605 Introduction to SOC)
SOC 611 Fundamentals of SOC |
SOC 606 Internet Apps
SOC 542 Enterprise Soft Arch |
Year 2 |
SOC 510 HCI |
|
Required Courses
The required courses for the M.S. in Service Oriented Computing are the same as the required courses for the Graduate Certificate program, above. SOC 605 is again an optional course, only required for those without an introductory programming course or experience, or who wish to learn C# before taking SOC 606.
Elective Courses
You must choose an additional six courses for your MS/SOC study plan. At least three of these courses must be SOC courses.
Up to three of the courses can be from any other discipline, including Computer Science and Information Systems, with the approval of the program director. Below are some suggested electives.
Area |
Course |
Prereqs |
Languages |
SOC 501
Introduction to Java Programming |
|
|
SOC
605 Introduction to Service Oriented Computing |
|
|
|
|
Data Mining |
SOC 550
Knowledge Discovery and Data Mining |
|
|
|
|
Security and Privacy |
SOC
551 Privacy in a Networked World |
SOC 594 |
|
SOC
594 Enterprise Security and Information Assurance |
SOC 542 |
|
|
|
Healthcare |
SOC 552 Health Informatics |
|
|
|
|
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 |
|
M.S. Sample Study Plan - Part Time via Webcampus
|
Fall |
Spring |
Year 1 |
SOC 605 Introduction to SOC
SOC 611 Fundamentals of SOC |
SOC 606 Intro to Internet Apps
SOC 542 Enterprise Soft Arch |
Year 2 |
SOC 510 HCI
Free elective |
SOC 594 Enterprise Security
SOC 552 Health Informatics |
Year 3 |
SOC 650 Data Mining
SOC 551 Privacy |
|
M.S. Sample Study Plan - Part Time via Webcampus
|
Fall |
Spring |
Year 1 |
SOC 605 Introduction to SOC
SOC 611 Fundamentals of SOC
Free elective |
SOC 606 Intro to Internet Apps
SOC 542 Enterprise Soft Arch |
Year 2 |
SOC 510 HCI
SOC 550 Data Mining
Free elective |
SOC 594 Enterprise Security
SOC 552 Health Informatics |
|