CEN6016 Software Engineering Process: Review of current topics and trends in software engineering. Prominent software engineering approaches, methods, and processes (e.g., CMMI, Agile processes) are examined and compared. Culminates with a detailed study of one specific software engineering process. Students must have passed their diagnostic examinations or have been declared exempt from those exams. Permission is required. Fall semesters.
CEN6095 Software Engineering Practice and Tools: Practicum course simulating best practices used in the software industry for maintaining software systems. Emphasis on the use of modern software methods and tools. Permission is required. Spring semesters.
CAP5771 Data Mining: Exposes students to data mining concepts and techniques and different data mining software. Covers data preprocessing and cleaning, concept hierarchy generation, attribute relevance analysis, association rule mining, decision tree induction, bayesian classification and prediction, and cluster analysis. Offered concurrently with CAP4770; graduate students will be assigned additional work. Prerequisite: COP4710 Database Systems or COP5725 Database Systems. Fall semesters even-numbered years.
CEN5990 Software Engineering Foundations: Java Programming: A course in the Accelerated Software Engineering Foundations Series in which students will gain an understanding of principles/concepts of Java programming and how to apply those principles/concepts in conjunction with principles of software engineering to design and develop object-oriented software systems. Fall, Spring, and Summer
CEN5991 Software Engineering Foundations: Operating Systems and Networks: A course in the Accelerated Software Engineering Foundations Series in which students will gain an understanding of the fundamental concepts and principles of modern operating systems and networks with an emphasis on the application of these principles within the software engineering domain. Fall, Spring, and Summer
CEN6064 Software Design: Examination of the design principles/methodologies appropriate for developing complex software systems. Goals include comparative analysis of existing design methods, object-based design paradigms, and the extensions of modern design techniques and principles to the design of software with distributed implementations in mind. Fall semesters even-numbered years.
CEN6070 Software Testing and Verification: Introduction to the main concepts and methods used to produce correct software. Focuses on software quality assurance through systematic software testing. Students learn to create test sets that exercise software to specified coverage standards and to conduct software inspections. Other verification and validation methods selected by the instructor are also introduced. Spring semesters odd-numbered years.
CEN6075 Software Specifications & Implementation: Study of the concepts and importance of software specification as an essential stage in the development of a software product. Students learn to prepare software specifications using both formal specification techniques and informal text-based specifications that follow a standard model. Spring semesters even-numbered years.
CEN6930 Advanced Topics in Software Engineering: Selected topics in computer software and engineering. Summer 2008.
CEN6990 Capability Maturity Model Integration in Software Engineering: New course under development. Fall semesters - odd-numbered years.
COP5725 Database Systems: Introduction to database systems and database management system architectures. Various database models are discussed with emphasis on the relational model and relational database design. Case applications using fourth-generation languages, such as SQL are included. Offered concurrently with COP 4710; graduate students will be assigned additional work. Fall semesters.
COP5775 Database Administration: Database administration skills covering installation, configuration and tuning a database, administering servers and server groups, managing and optimizing schemas, tables, indexes, and views, creating logins, configuring permissions, assigning roles and performing other essential security tasks, backup and recovery strategies, automation and maintenance. Offered concurrently with COP4723; graduate students will be assigned additional work. Prerequisite: COP4710 Database Systems or COP5725 Database Systems. Spring semesters even-numbered years.
COP6727 Advanced Database Systems: Advanced topics in database management systems will be covered, for example, further dependencies and higher normal forms, transaction processing, concurrency control, backup and recovery, indexing, replication, managing large databases, and contemporary issues and topics in databases. Prerequisite: COP4710 Database Systems or COP5725 Database Systems. Spring semesters odd-numbered years.
COT5930 Seminar in Computer Science and Software Engineering: A seminar-style course that provides graduate and advanced undergraduate students with exposure to material beyond the standard curriculum. Specific topics will be based on the interests of the students enrolled. Summers - starting 2009.
COT6931 Computer Science Project: Capstone course for Masters students who do not elect the thesis option. Normally taken for 3 credits in each of two consecutive semesters. Students will define and carry out a project under faculty mentorship that shows mastery of some topic in computing and produces some concrete product such as a report or a computer program. Students should not enroll until they have completed at least one third of their graduate coursework. Permission is required. Fall, Spring, and Summer semesters. Must be arranged to coincide with faculty mentor's availability. Students are assessed at the end of each of the two semesters using the Computer Science Rubric of Assessment of ALP Based on Graduate Thesis or Project which is contained at the end of the webpage that contains the CS department's Academic Learning Plan.
Students may choose from three different alternatives for types of projects, some projects might share aspects of more than one alternative. Projects may be individual or team-based. Graduate students are encouraged to become familiar with faculty research interests early on in their program to identify potential mentors for prospective projects, and to then make arrangements with a faculty mentor prior to the beginning of the term that the student wishes to start the project.
ALTERNATIVE A - DOMAIN-BASED PROJECT The goal of a domain-based project is to demonstrate mastery of computing needs in a specific technical or application domain. Examples of domains include: high performance computing, medical software, chemical engineering software, data acquisition software, etc. Students will document the techniques and specific challenges of computing for the domain. If there are software libraries or tools specific to the domain, the student will demonstrate familiarity with them. The end product of a domain-based project will normally be a written report, and may also include sample software written by the student.
ALTERNATIVE B - SOFTWARE ENGINEERING PROJECT The goal of a software engineering project is to demonstrate mastery of the processes required to develop and maintain quality software. The student will develop a significant software product or make a substantial enhancement to an existing product. The work shall follow a clearly laid down software engineering process, and include activities of specification, design, implementation, and verification. The focus shall be on a quality product that is not a "throw-away" but that is left in a well-documented and managed configuration, ready for deployment and future enhancement. The end product of a software engineering project shall be a written report on the project and the process followed, together with a working demonstration of the software itself.
ALTERNATIVE C - RESEARCH-FOCUSED PROJECT The goal of a research-focused project is to demonstrate mastery of the computing needs of researchers in some specific area. The student will work with a faculty person in Computer Science or elsewhere in the University to make a substantial contribution to a defined research project. Work will probably involve some combination of developing software in support of the research and active participation in the research itself. The end product of a research-focused project shall normally be a scientific paper, co-authored by the student, suitable for submission to a recognized conference or journal.