Group of students sitting around a table

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 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 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 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 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 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