Software Engineering (SE)

SE 602  Fundamental Computer Science I with Java  (4 credits)  

Students will be introduced to the fundamental concepts of Object oriented approach using Java as the programming language. The course places a strong focus on problem solving and object oriented thinking. The course will also cover: Introduction to objects and Object Oriented analysis and design, Class libraries, packages and formatted output, compiling and running applications, fundamental issues of programming: I/O, data types, assignments and expressions, conditional statements, loop statements, classes and Objects, events, listeners, animations, strings, arrays, graphics, colors.

Course Rotation: NY:Summer
SE 616  Introduction to Software Engineering  (4 credits)  

This seminar will examine the methodologies used in design, documentation, verification, implementation, validation, performance, evaluation and maintenance for the development of large software systems. Methodologies included are structured programming and walk-throughs, top-down modular design, proof of correctness and automated testing techniques. Seminar participants will design and implement large modular software systems using techniques chosen or evolved from those presented.

SE 673  Software Design Methodologies  (4 credits)  

The objective of this course is to get you thinking seriously about how people interact and communicate with computers. There are several specific goals: to examine basic concepts and design guidelines for HCI, to acquire practical experience in the implementation and evaluation of interfaces, to explore appropriate uses of multimodal input and output methods, to answer the challenge of designing for universal accessibility, and to discover the state of the art in HCI research. We will discuss principles which can be applied to improving how people interact with all kinds of systems which incorporate computers, such as: desktop machines, the web, handheld devices, and nontraditional systems such as the new NYC subway trains. Throughout the semester, the emphasis will be on learning through watching and doing, rather than on formal lectures.

Course Rotation: NY: Fall
SE 675  Requirements Engineering  (3 credits)  

The objective of this course is to get you thinking seriously how people interact and communicate with computers. There are specific goals: to examine basic concepts and design guidelines for HCI, to acquire practical experience in the implementation and evaluation of interfaces, to explore appropriate uses of multimodal and output methods, to answer challenges of designing for universal accessibility, and to discover the state of the art in HCI research. We will discuss principles which can be applied to improving how people interact with all kinds of systems which incorporate computers, such as: desktop machines, the web, handheld devices, and nontraditional systems such as the new NYC subway trains. Throughout the semester, the emphasis will be on learning through watching and doing, rather than on formal lectures.

Course Rotation: Spring:NY
SE 677  Software Reliability & Quality Assurance  (3 credits)  

Reliability is a key attribute of software quality defined as the probability of failure-free software operation for a specified period of time in a specified environment. The course focuses on modeling, measuring and improving software reliability. It covers the place of dependability in reliability. It introduces different software reliability models, metrics to assess and techniques to improve software reliability. It looks at the specific roles of auditing, testing, standards and processes in the context of quality.

Course Rotation: NY;Spring
SE 679  Contemporary Software Engineering Theory and Practice  (4 credits)  

Contemporary Software Engineering Theory and Practice is an introduction to advanced software engineering research and methodologies. It surveys the entire field of software engineering, drawing upon the latest advances that have been published in software engineering journals and conference proceedings. Topics to be covered include: Requirements Engineering, Software and System Design, Testing Methodologies, Maintenance Techniques, Project Management Practices, Software Engineering Tools and Methods, Quality Assurance Procedures, Software Models and Metrics, Visualization in Software Engineering and Risk Management.

Course Rotation: Spring:NY
SE 700  Independent Study in Software Engineering  (1-4 credits)  

Students will take this course in order to complete a study in the area of their own interest in close cooperation with the professor. It is a variable credit course. The number of credits is determined by the professor and is based on the depth of the study and the volume of the work performed by the student.

Course Rotation: Summer:NY
SE 701  Software Development Thesis I  (3 credits)  

Students choosing this option will select and research a topic in software development in consultation with a faculty advisor. A brief written Thesis Proposal must be approved by the advisor and a committee chosen by the student, advisor and Department Chair. Students enrolled for Thesis I, will complete preparatory research culminating in a written Thesis Report. Those not electing to continue with Thesis II will receive a grade for Thesis I and may use it as an elective coursework.

Course Rotation: NY;Summer
SE 702  Software Development Thesis II  (3 credits)  

This is a continuation of software development Thesis I. Students are expected to register for this course as long as they work on their thesis. Work on a thesis is expected to last at least two full semesters. It may well be expected beyond that point based on particular requirements of the research subject being pursued.

Course Rotation: NY;Spring:Summer
SE 725  Component Architectures for Enterprise Application Development  (3 credits)  

The objective of this course is to get you thinking seriously about how people interact and communicate with computers. There are several specific goals: to examine basic concepts and design guidelines for HCI, to acquire practical experience in the implementation and evaluation of interfaces,to explore appropriate uses of multimodal input and output methods, to answer the challenge of designing for universal accessibility, to discover the state of the art in HCI research. We will discuss principles which can be applied to improving how people interact with all kinds of systems which incorporate computers, such as: desktop machines, the web, handheld devices, and nontraditional systems such as the new NYC subway trains. Throughout the semester, the emphasis will be on learning through watching and doing, rather than on formal lectures.

Course Rotation: Spring;NY
SE 735  Data & Document Representation and Processing  (3 credits)  

This course describes a variety of important aspects of modern software application development: the data and document interchange between different applications. Emerging technologies such as Extended Markup Language (XML), XML Schema, Style-sheet Language (XSL) and Document Object Model (DOM). Existing applications and tools will be discussed and used in small projects for parsing, transforming and manipulating documents.

Course Rotation: Spring:NY
SE 741  Formal Software Development  (3 credits)  

The objective of this course is to get you thinking seriously about how people interact and communicate with computers. There are several specific goals: to examine basic concepts and design guidelines for HCI, to acquire practical experience in the implementation and evaluation of interfaces, to explore appropriate uses of multimodal input and output methods, to answer the challenge of designing for universal accessibility, to discover the state of the art in HCI research.We will discuss principles which can be applied to improving how people interact with all kinds of systems which incorporate computers, such as: desktop machines, the web, handheld devices, and nontraditional systems such as the new NYC subway trains. Throughout the semester, the emphasis will be on learning through watching and doing, rather than on formal lectures.

Course Rotation: Summer:NY
SE 745  Concurrent Software Development  (3 credits)  

This course provides an overview of the principles of concurrent software development along with detailed study of the following topics: Threads, RMI, CORBA, and Java IDL JDBC, safety and live ness, strategies and patterns in Java.

Course Rotation: NY;Spring
SE 751  Software Validation & Verification Techniques  (3 credits)  

This course covers software validation and verification techniques and their role in the software engineering process and quality assessment. Testing processes, metrics, and a variety of testing techniques (including unit, blackbox/whitebox, structural, security, and performance testing) and supportive tools are introduced. The course also addresses the use of logic to specify and prove properties of programs using model checking and theorem proving.

Course Rotation: Spring;NY
SE 760  Intro to Human-Computer Interaction  (3 credits)  

Design principles and practical techniques will be introduced for building and evaluating user-centered, intuitive, effective computing systems; these will be explored through a series of design projects and student presentations. Topics include principles of usable design, interface elements, user psychology, prototyping, and an introduction to interface evaluation. Project examples may include web design, multimedia interfaces, mobile and specialized applications.

Course Rotation: Spring;NY
SE 761  Human Factors and Usability Metrics  (3 credits)  

This course surveys methods for evaluating user interfaces. Students will learn essential knowledge to be able to perform a heuristic evaluation, a cognitive walkthrough, a usability test and a comparison study. Class meetings will also introduce, discuss and occasionally practice additional techniques including user modeling, usage logging, surveys, and focus groups. A primary goal is to learn how to conduct various methods for evaluating user interfaces.

Course Rotation: Spring;NY
SE 765  Distributed Software Development  (3 credits)  

This course introduces design and implementation of network distributed systems. Design and formal specification of client-server applications using state machines and communication protocol techniques. Also teaches the fundamentals and techniques of developing distributed object-oriented applications, using a patterns-based approach. Concepts covered include: networks, client-server architectures, dataflow networks, sockets, and message-passing systems.

Course Rotation: Spring:Summer;NY
SE 770  Software Risk Management  (3 credits)  

This course will discuss Software Security Touchpoints (i.e., software security best practices), including: Code Review, Architectural Risk Analysis, Penetration Testing, Risk-Based Security Testing, Abuse Cases, Security Requirements, and Security Operations. Additional topics such as Enterprise Software Security Program will also be covered.

Course Rotation: NY;Spring
SE 780  Software Develop Process Improvement  (3 credits)  

This course will discuss the CMM model from SEI. Each level of this capability maturity model will be studied and case studies will be development. Also CMMI will be extensively discussed and studied.

Course Rotation: NY;Spring
SE 785  Software Engineering Studio  (3 credits)  

The SE studio is the capstone course for this program. It provides the opportunity for students to apply the knowledge and expertise that they have gained throughout the program to a significant, realistic and practical problem. They plan, estimate, develop and evaluate software solutions to these problems. The main goal is to apply the majority of the content of the core in this course. The software projects would be used from clients outside the group of students. These clients could be the Information Systems Division at Pace University or local business and software development companies.

Course Rotation: NY;Summer
SE 790  Topics in Software Development/HCI/Software Management  (3 credits)  

The objective of this course is to get you thinking seriously about how people interact and communicate with computers. There are several specific goals: to examine basic concepts and design guidelines for HCI, to acquire practical experience in the implementation and evaluation of interfaces, to explore appropriate uses of multimodal input and output methods, to answer the challenge of designing for universal accessibility, to discover the state of the art in HCI research We will discuss principles which can be applied to improving how people interact with all kinds of systems which incorporate computers, such as: desktop machines, the web, handheld devices, and nontraditional systems such as the new NYC subway trains. Throughout the semester, the emphasis will be on learning through watching and doing, rather than on formal lectures.

Course Rotation: Spring:Summer;NY
SE 796  Software Research Seminar  (3 credits)  

The objective of this course is to get you thinking seriously about how people interact and communicate with computers. There are several specific goals: to examine basic concepts and design guidelines for HCI, to acquire practical experience in the implementation and evaluation of interfaces, to explore appropriate uses of multimodal input and output methods, to answer the challenge of designing for universal accessibility, to discover the state of the art in HCI research. We will discuss principles which can be applied to improving how people interact with all kinds of systems which incorporate computers, such as: desktop machines, the web, handheld devices, and nontraditional systems such as the new NYC subway trains. Throughout the semester, the emphasis will be on learning through watching and doing, rather than on formal lectures.

Course Rotation: Spring:Summer;NY