Computer Science and Software Engineering

Chair: Jamie Kretsch, Department of Computer Science and Software Engineering

UNIX Administrator and Teacher: Joseph Chung

Bachelor of Science with a Major in Computer Science

The Computer Science curriculum provides a solid foundation in the computing sciences, preparing students for employment in industry or for graduate school. Software design and development is emphasized along with foundational computing concepts. The higher-level courses enable students to explore a variety of topics, such as databases, networks, artificial intelligence, scripting languages, game programming, UNIX administration, and computer security.

The Advanced Computing Concentration, which is accredited by the Computing Accreditation Commission of ABET, is recommended especially for students who plan to attend graduate school in computer science or who plan to specialize in scientific computing. The educational objectives of the Advanced Computing Concentration are to enable graduates, within a few years after graduation, to:

  • Work as effective team members or team leaders in the development of computer and software systems covering a wide range of business, educational and scientific applications.
  • Enter professional careers in positions including computer programmer, software tester, systems analyst, network administrator, software systems designer, database manager, computer systems integrator, software security analyst, and game developer.
  • Undertake graduate studies and develop the knowledge and expertise to complete advanced studies or do research in computer science, engineering, and other scientific fields.
  • Work in teams, communicating effectively with technical and non-technical team members, clients, and customers, while meeting the social and ethical responsibilities of their profession.
  • Explore, synthesize, and implement ideas in their areas of interest and activity.
  • Adapt to new technologies and methodologies with the skills required to react to a changing world.

Students interested in Computer Science but looking for a more flexible curriculum may choose to pursue the non-ABET-accredited Applied Computing Concentration. This program requires fewer math and science credits, which allows students to take additional coursework or a minor in other academic areas.

Certificate in Networking Technologies and Applications

This fifteen-credit certificate provides professional training in network technologies. Students in the certificate program will enhance their networking knowledge, gain focused professional expertise toward careers, and increase their employability. The certificate would focus on practical needs of students in the Applied Computer Science track as well as others who are interested in careers that require expertise in practical network technologies and skills.

Bachelor of Science in Software Engineering

The undergraduate Software Engineering curriculum, which is accredited by the Engineering Accreditation Commission of ABET is designed to give students a broad background in both computer and engineering science with a heavy emphasis on those aspects of software engineering that will enable graduates to efficiently participate in the design, development, and deployment of large software systems. Because of the sequential nature of the courses and the number of requirements for engineering majors, careful planning is necessary to complete the curriculum in four years.

The educational objectives of the BS in Software Engineering program are to prepare software engineering graduates to do the following things within the first few years after graduation from the program:

  • Obtain employment in organizations that develop or acquire software and/or enter graduate school;
  • Make strong contributions to teams that are responsible for the specification, design, construction, testing, deployment, maintenance, or use of software systems;
  • Develop experience in additional areas of professional specialty that, when combined with their BSSE education, will continue the path toward lifelong learning;
  • Use their engineering, communications, interpersonal, and business skills to advance their careers in a business, government, or academic environment;
  • Critically assess their engineering capabilities and acquire the additional knowledge and skills they need to maintain currency within their evolving work environment;
  • Assist their employers’ organizations in achieving their business goals.

Nafi Diallo, Assistant Professor (Graduate Faculty). PhD, New Jersey Institute of Technology. Areas of interest are programming languages, software engineering, machine learning and secure systems, more specifically techniques for building secure and reliable systems.
ndiallo@monmouth.edu

Jamie Kretsch, Specialist Professor and Chair. BS, Monmouth University; MS, University of Wisconsin-Madison. Interests are gender diversity in computing and technology and online education.
jkretsch@monmouth.edu

Janice Rohn, Specialist Professor.
Information Technology Coordinator. BA, Thomas Edison State University; MS, National Technological University. Areas of interest include Android application development.
jrohn@monmouth.edu

Daniela Rosca, Associate Professor (Graduate Faculty). MS, Polytechnic University of Bucharest; PhD, Old Dominion University. Interests include requirements elicitation, analysis and specification, and methodologies for the development and use of business rules.
drosca@monmouth.edu

Richard Scherl, Associate Professor (Graduate Faculty). BA, Columbia University; MA, University of Chicago; PhD, University of Illinois. Interests include artificial intelligence (especially knowledge representation, automated reasoning and natural language processing), cognitive science, and databases.
rscherl@monmouth.edu

William M. Tepfenhart, Professor (Graduate Faculty). BS, MS, PhD, University of Texas at Dallas. Interests include artificial intelligence, software architecture, and software design.
btepfenh@monmouth.edu

Jiacun Wang, Professor and Graduate Program Director (Graduate Faculty). BS, Jiangsu University of Science and Technology; PhD, Nanjing Unviersity of Science and Technology, China. Interests include software architecture, Petri nets, real-time systems, discrete event systems, telecommunications, and networking.
jwang@monmouth.edu

Cui Yu, Associate Professor (Graduate Faculty). BS, Nanjing University of Aeronautics and Astronautics; PhD, University of Singapore, Singapore. Interests include database management systems, spatial databases, and information storage and retrieval.
cyu@monmouth.edu

Course usage information

CS-102   Introduction to Computing and Problem SolvingCredits: 4   

Term Offered: All Terms

Course Type(s): TL

Introduces a broad overview of computing topics, designed to provide students with awareness of the computing field's many aspects. Topics include fundamentals of computer architecture, operating systems, applications, networks and problem-solving. Computing topics are demonstrated and presented using computing applications including word processors, spreadsheets, databases, presentation software, and Web page development software. Introduces social and ethical issues related to computing and explores the local and global impact of computing on individuals, organizations and society. It also gives students their initial exposure to group project work.

Course usage information

CS-175   Introduction to Computer Science ICredits: 4   

Prerequisite: CS-102.

Term Offered: All Terms

Course Type(s): None

Introduction to the basic concepts of program development in a modern object-oriented language; problem-solving methods and algorithm development; basic data types; language syntax; style and documentation; and coding and testing of programs.

Course usage information

CS-176   Introduction to Computer Science IICredits: 4   

Prerequisite: CS-175 passed with a grade of C or higher.

Term Offered: All Terms

Course Type(s): None

Continuation in depth and breadth of problem-solving and algorithm development, using the same modern object-oriented language as in CS-175. More advanced, object-oriented design. Introduction to polymorphism and inheritance. Four hours per week.

Course usage information

CS-199   Independent Study in Computer ScienceCredits: 1-3   

Prerequisite: Prior permission of directing professor and department chair required.

Course Type(s): None

Independent study in a computer science topic not substantially treated in a regular course; for students with superior ability. One-hour consultation per week.

Course usage information

CS-202   Discrete Mathematics and ApplicationsCredits: 4   

Prerequisites: CS-175 and MA-109.

Term Offered: All Terms

Course Type(s): None

Covers the basic concepts, methods, structures, and models from discrete mathematics used throughout computer science. Topics addresses include: logic and mathematical reasoning, functions, sets, summations, asymptotic notation, algorithms and complexity, number theory, cryptography, matrix algebra, induction and recursion, counting techniques, combinatorial objects, discrete structures, discrete probability therapy, relations, and graph theory and graph algorithms.

Course usage information

CS-205   Data Structures and AlgorithmsCredits: 4   

Prerequisites: CS-176, passed with a grade of C or higher and either MA-130 or CS-202, passed with a grade of C or higher.

Term Offered: All Terms

Course Type(s): None

Introduction to the design, implementation, and use of fundamental data structures (list, stacks, queues, trees); extensions of these structures and associated algorithms and informal complexity analysis. Four hours per week.

Course usage information

CS-212   Networking Fundamentals ICredits: 3   

Term Offered: Spring Term

Course Type(s): None

Prepares students with knowledge and skills required to successfully install, operate, and troubleshoot a small branch office network. Includes topics on networking fundamentals; connecting to a WAN; basic security and wireless concepts; routing and switching fundamentals; the TCP/IP and OSI models; IP addressing; WAN technologies; operating and configuring IOS devices; configuring RIPv2, static and default routing; implementing NAT and DHCP; and configuring simple networks.

Course usage information

CS-222   Networking Fundamentals IICredits: 3   

Prerequisite: CS-212.

Term Offered: All Terms

Course Type(s): None

Prepares students with knowledge and skills required to successfully install, operate, and troubleshoot a small to medium size enterprise branch network. Covers topics on VLSM and IPv6 addressing; extending switched networks with VLANs; configuring, verifying and troubleshooting VLANs; the VTP, RSTP, OSPF and EIGRP protocols; determining IP routes; managing IP traffic with access lists; NAT and DHCP; establishing point-to-point connections; and establishing Frame Relay connections.

Course usage information

CS-250   Android Application DevelopmentCredits: 3   

Prerequisites: CS-175 and CS-176.

Course Type(s): None

Introduces students to writing applications for Android mobile devices. It familiarizes students with the development software for creating Android apps, programming logic used in the apps, and Java code that puts the software design and logic into the practice using an Android emulator.

Course usage information

CS-275   Introduction to an Algorithmic LanguageCredits: 3   

Prerequisite: Permission of the instructor.

Term Offered: All Terms

Course Type(s): None

A thorough overview of the syntax of an algorithmic language and stress on the concepts of structured programming. Four hours per week.

Course usage information

CS-286   Computer Architecture ICredits: 3   

Prerequisites: CS-176 or CS-275, passed with a grade of C or higher.

Term Offered: All Terms

Course Type(s): None

Number representations and operations. Processor data path. Pipelining. Memory hierarchy. Input/Output. Assembly language programming.

Course usage information

CS-288   Cooperative Education: Computer ScienceCredits: 3   

Prerequisites: Junior standing, thirty or more earned credits with at least fifteen taken at Monmouth University and CS-205 passed with a grade of C or higher.

Term Offered: All Terms

Course Type(s): EX2

Provides an opportunity for students who are engaged in a computer science-related work experience. Fifteen to twenty hours of work experience per week. May be repeated for credit.

Course usage information

CS-298   Special Topics in Computer Science (200 Level)Credits: 1-3   

Prerequisite: As announced in the course schedule.

Term Offered: All Terms

Course Type(s): None

An intensive study of a particular subject or problem in computer science to be announced prior to registration. May be conducted on either a lecture-discussion or a seminar basis. Three or four hours per week.

Course usage information

CS-299   Independent Study in Computer ScienceCredits: 3   

Prerequisite: Prior permission of directing professor and department chair required.

Term Offered: Spring Term

Course Type(s): None

Independent study in a computer science topic not substantially treated in a regular course; for students with superior ability. One-hour consultation per week.

Course usage information

CS-302   Designing and Implementing Routing in Enterprise NetworksCredits: 3   

Prerequisites: CS-212 and CS-222, both passed with a grade of C or higher.

Term Offered: All Terms

Course Type(s): None

Prepares students with knowledge and skills necessary to use advanced IP addressing and routing in implementing scalable and secure routers connected to LANs and WANs. Also covers configuration of secure routing solutions to support branch offices and mobile workers.

Course usage information

CS-306   Computer Algorithms IICredits: 4   

Prerequisite: CS-205, passed with a grade of C or higher.

Course Type(s): None

Continuation in depth and breadth of the design, implementation, and use of data types (list, binary search tree, tree, hash table, graph); intermediate algorithm design; complexity analysis. Four hours per week.

Course usage information

CS-310   Advanced Object-Oriented Programming and DesignCredits: 4   

Prerequisite: CS-205, passed with a grade of C or higher; and EN-101 and EN-102 or permission of the instructor.

Term Offered: Fall Term

Course Type(s): WT

Object-oriented programming and design, using a language different from that used in CS-176. Use of classes, inheritance, polymorphism, and libraries. Topics will include flexible system design for such requirements as globalization.

Course usage information

CS-312   Designing and Implementing Switching in Enterprise NetworksCredits: 3   

Prerequisite: CS-302, passed with a grade of C or higher.

Term Offered: All Terms

Course Type(s): None

Prepares students with knowledge and skills necessary to plan, configure, and verify the implementation of complex enterprise switching solutions using Enterprise Architecture. Also covers secure integration of VLANs, WLANs, and voice and video into campus networks.

Course usage information

CS-315   Theory of ComputingCredits: 3   

Prerequisites: CS-176 or CS-275, passed with a grade of C or higher and either CS-202 or MA-120 or MA-130, passed with a grade of C or higher.

Term Offered: All Terms

Course Type(s): None

An introduction to phrase structure languages and their relation to automata, computability, and program verification.

Course usage information

CS-316   Implementing Network SecurityCredits: 3   

Prerequisites: CS-212 and CS-222, both passed with a grade of C or higher.

Term Offered: All Terms

Course Type(s): None

Prepares students with knowledge and skills required to secure networks. Includes topics on core security technologies, the installation, troubleshooting and monitoring of network devices to maintain integrity, confidentiality and availability of data and devices, and competency in the technologies that use its security structures. A hands-on career oriented course, with an emphasis on practical experience, to help students develop specialized security skills, along with critical thinking and complex problem solving skills.

Course usage information

CS-320   IP Telephony Design and ImplementationCredits: 3   

Prerequisites: CS-212 and CS-222.

Term Offered: All Terms

Course Type(s): None

Prepares students with knowledge of how to implement and support data and voice integration solutions at the network-access level. Topics covered include basic IP Telephony operation, router configuration, support, troubleshooting, and integration with an existing PSTN network.

Course usage information

CS-322   Network TroubleshootingCredits: 3   

Prerequisite: CS-312, passed with a grade of C or higher.

Term Offered: All Terms

Course Type(s): None

Prepares students with knowledge and skills necessary to plan and perform regular maintenance on complex enterprise routed and switched networks and use technology-based practices to perform network troubleshooting.

Course usage information

CS-324   Computer Architecture IICredits: 3   

Prerequisite: CS-286, passed with a grade of C or higher.

Term Offered: All Terms

Course Type(s): None

Boolean algebra, combinational and sequential circuit devices are presented in lectures and laboratory. Computer hardware organization. Memory and CPU design. CPU control with microcode. Four hours per week.

Course usage information

CS-325   Software Engineering ConceptsCredits: 3   

Prerequisite: CS-205, passed with a grade of C or higher; and EN-101 and EN-102 or permission of the instructor.

Term Offered: Fall Term

Course Type(s): WT

Overview of software engineering concepts, analysis/design techniques, Unified Modeling Language (UML), software documentation, and group development of software.

Course usage information

CS-330   Administrating Unified Communication ManagerCredits: 3   

Prerequisites: CS-212 and CS-222, passed with a grade of C or higher.

Term Offered: All Terms

Course Type(s): None

Prepares students with knowledge of deploying a Unified Communications Manager to support single site and multi-site deployment models.

Course usage information

CS-335   Programming Language ConceptsCredits: 3   

Prerequisite: CS-205, passed with a grade of C or higher.

Term Offered: All Terms

Course Type(s): None

Design, evaluation, and implementation of programming languages. Discussion of imperative, applicative, object-oriented and concurrent languages. Four hours per week.

Course usage information

CS-350   Research in Computer ScienceCredits: 1-4   

Prerequisites: Junior standing, CS-306, passed with a grade of C or higher, a minimum of fifteen credits at Monmouth University, and a minimum GPA of 3.25.

Course Type(s): EX5

Original research work, associated with an external constituent and/or organization, planned and carried out with assistance of faculty research advisor. Research conducted by the student will be shared with the external constituency and submitted for outside publication and review. Number of credits arranged with advisor. Limited to Computer Science students with approval of chair, program director, or advisor.

Course usage information

CS-360   Introduction to Game DevelopmentCredits: 3   

Prerequisite: CS-205 passed with a grade of C or higher.

Term Offered: Fall Term

Course Type(s): None

An introduction to the creation of computer/video games and the different elements of games, including computer graphics, animation, artificial intelligence, algorithms, data structures, networking, software development cycles and human-computer interaction. Also listed as SE-360.

Course usage information

CS-370   Program Development Under UnixCredits: 3   

Prerequisite: CS-176 or CS-275, passed with a grade of C or higher.

Term Offered: Fall Term

Course Type(s): None

Introduction to the use of the UNIX operating system and its utilities for incremental and distributed program development, maintenance, and debugging. The course covers the UNIX shell, utilities, and program development tools that are used for large projects involving multiple developers on multiple machines. Three hours per week.

Course usage information

CS-371   Scripting LanguagesCredits: 3   

Prerequisite: CS-176 or equivalent.

Term Offered: All Terms

Course Type(s): None

An introduction to programming using widely-used, dynamically-typed, interpreted programming languages, which are sometimes called "scripting" languages. Covers general-purpose scripting languages, such as Perl and Python that are used to develop a wide range of applications. Scripting languages, such as PHP, that are used primarily in web development, will not be covered in this course.

Course usage information

CS-375   File ManagementCredits: 4   

Prerequisite: CS-205, passed with a grade of C or higher.

Course Type(s): None

Overview of files, records and files, blocking and buffering, secondary storage devices; sequential file organization, external sort/merge algorithms; random access; relative file organization; tree-structured file organization; search trees, indexed sequential file organization; list-structured file organization; multiple-key file organization. Four hours per week.

Course usage information

CS-388   Cooperative Education: Computer ScienceCredits: 3   

Prerequisites: Junior standing, thirty or more earned credits with at least fifteen taken at Monmouth University and CS-205 passed with a grade of C or higher.

Term Offered: All Terms

Course Type(s): EX2

Provides an opportunity for students who are engaged in a computer science-related experience. Fifteen to twenty hours of work experience per week. This course may be repeated for credit.

Course usage information

CS-398   Special Topics in Computer Science (300 Level)Credits: 1-3   

Prerequisite: As announced in the course schedule.

Course Type(s): None

An intensive study of a particular subject or problem in computer science to be announced prior to registration. May be conducted on either a lecture-discussion or a seminar basis. Three or four hours per week.

Course usage information

CS-414   Computer NetworksCredits: 4   

Prerequisite: CS-286, passed with a grade of C or higher.

Term Offered: All Terms

Course Type(s): None

Provides introduction to computer-networking concepts, technologies, and services, including basic communications theory, analog and digital devices, Public Switched Telephone Network, data networks, LANs, wireless services, data protocols, the Internet, multi-media, and B-ISDN.

Course usage information

CS-418   Compiler ConstructionCredits: 3   

Prerequisite: CS-205 passed with a grade of C or higher.

Term Offered: All Terms

Course Type(s): None

The principles and practices of incorporating the theory of finite automata and context-free languages, the maintenance and use of semantic information, and the generation and optimization of code to produce a compiler. Four hours per week.

Course usage information

CS-420   Survey of Artificial Intelligence Concepts and PracticesCredits: 4   

Prerequisite: CS-205, passed with a grade of C or higher.

Term Offered: All Terms

Course Type(s): None

Introduction to fundamental concepts and practices of artificial intelligence, covering problem definition, search techniques, knowledge representation, control knowledge, and symbolic reasoning. Includes at least two of the following advanced topics: planning, understanding, natural language processing, learning, connectionist models, common sense reasoning, and expert systems. Four hours per week.

Course usage information

CS-432   Database SystemsCredits: 4   

Prerequisite: CS-205, passed with a grade of C or higher.

Term Offered: Fall Term

Course Type(s): None

Overview of database system concepts; data modeling; ER and UML diagrams; relational database schema definition; database design; query languages; hands-on experience of SQL and Oracle. Four hours per week.

Course usage information

CS-435   Systems ProgrammingCredits: 3   

Prerequisites: CS-286 and CS-205, both passed with a grade of C or higher, and Senior standing.

Term Offered: All Terms

Course Type(s): None

Introduction to the implementation of basic system software: text editors, assemblers, loaders, and macro processors, with emphasis on software methodology for creating and maintaining large programs. The language of instruction will be C, which will be briefly introduced. Four hours per week.

Course usage information

CS-438   Operating Systems AnalysisCredits: 4   

Prerequisites: CS-286 and CS-205, both passed with a grade of C or higher.

Term Offered: All Terms

Course Type(s): None

Management of memory, processes, files, and devices. OS design principles and performance measures. Multiprogramming, multiprocessing, concurrency, deadlock, virtual machines. Competitive and cooperating processes. Programs will be written in C. Throughout the course, students will be expected to work in pairs to solve problems and in a larger group for a more substantial project.

Course usage information

CS-445   Computer GraphicsCredits: 3   

Prerequisite: CS-205, passed with a grade of C or higher.

Term Offered: All Terms

Course Type(s): None

Drawing lines and curves, area filling, fractals, three dimensional viewing, clipping, ray-tracing, shading, hidden line and surface removal. Four hours per week.

Course usage information

CS-461   Simulation and ModelingCredits: 3   

Prerequisite: CS-205, passed with a grade of C or higher.

Term Offered: All Terms

Course Type(s): None

An introduction to the use of discrete event simulation and other modeling methods and tools to predict the performance of computer systems and communications networks.

Course usage information

CS-471   System AdministrationCredits: 3   

Prerequisite: CS-370 or CS-371, passed with a grade of C or higher.

Term Offered: Spring Term

Course Type(s): None

Fundamental topics in system administration, focused primarily on UNIX administration with added coverage of Microsoft Windows NT descendant systems. The course is a hands-on introduction to installing and maintaining modern, multi-user, production UNIX-like operating systems and the essential services that are hosted on these systems.

Course usage information

CS-488   Cooperative Education: Computer ScienceCredits: 3   

Prerequisites: Junior standing, thirty or more earned credits with at least fifteen taken at Monmouth University and CS-204 passed with a grade of C or higher.

Term Offered: All Terms

Course Type(s): EX2

Provides an opportunity for students who are engaged in a computer science-related experience. Fifteen to twenty hours of work experience per week. May be repeated for credit.

Course usage information

CS-490   Senior ProjectCredits: 4   

Prerequisites: CS-325 and CS-432, both passed with a grade of C or higher.

Term Offered: Spring Term

Course Type(s): RD

Affords the student an opportunity to integrate topics and techniques from previous coursework in a capstone project. The project will combine investigation into computer science literature and actual implementation, either in an area of current research or an application area of interest to industry. Implementation might involve collaboration with other students. The project will be presented formally, both orally and in written form. This course satisfies the reasoned oral discourse requirement for computer science students.

Course usage information

CS-498   Special Topics in Computer Science (400 Level)Credits: 1-3   

Prerequisite: As announced in the course schedule.

Term Offered: All Terms

Course Type(s): None

An intensive study of a particular subject or problem in computer science to be announced prior to registration. May be conducted on either a lecture-discussion or a seminar basis. Three or four hours per week.

Course usage information

CS-499   Independent Study in Computer ScienceCredits: 1-3   

Prerequisite: Prior permission of directing professor and department chair required.

Term Offered: All Terms

Course Type(s): None

Independent study in a computer science topic not substantially treated in a regular course; for students with superior ability. One-hour consultation per week.

Course usage information

IT-100   Information TechnologyCredits: 3   

Term Offered: All Terms

Course Type(s): TL

Introduction to computer-based information management concepts that provide an integrated approach to personal computer software in a Windows environment. These include, word processing, spreadsheet, database, presentation graphics, and electronic communication applications; information retrieval from the Internet and online library resources; fundamental computer literacy; and the ethical and societal implications of computer technology. Hands-on experience with a microcomputer on a networked system is provided. Not open to students who have completed CS-102 or IT-102 or IT-150.

Course usage information

IT-102   Information Technology for ScientistsCredits: 3   

Term Offered: All Terms

Course Type(s): TL

Introduction to computer-based information management that provides an integrated approach to personal computer software in a Windows environment, which includes word processing, spreadsheet, mathematics, database, presentation graphics, Internet and electronic communication applications. Emphasizes scientific applications, technical report preparation and presentation. Hands-on experience with a microcomputer on a networked system is provided.

Course usage information

IT-150   Information Technology for BusinessCredits: 3   

Term Offered: All Terms

Course Type(s): TL

Introduction to computer-based information business management that provides an integrated approach to personal computer software in a Windows environment. This includes fundamental technology literacy; operating systems, word processing, spreadsheet, database, presentation graphics, and electronic communication applications; computer and network security; troubleshooting; information retrieval from the Internet and on-line library resources; intranet and extranet systems; and the ethical, societal, legal, and economic implications of computer technology. Hands-on experience with a microcomputer on a networked system is provided.

Course usage information

IT-200   Advanced Information TechnologyCredits: 3   

Prerequisite: IT-100 or IT-102, or CS-102 or IT-150.

Term Offered: All Terms

Course Type(s): None

Advanced concepts and techniques in computer-based information management are provided through an integrated approach to personal computer hardware and software in a Windows environment. These include: hardware and software considerations; societal and ethical considerations; the program development life cycle; creating tables; merging documents and desktop publishing in word processing; creating templates, workbooks with multiple worksheets, and creating a data map in electronic spreadsheets; creating custom reports and an application system using macros in database management; and using embedded visuals in presentation graphics applications. Hands-on experience with a microcomputer on a networked system is provided.

Course usage information

IT-250   Internet and Network TechnologyCredits: 3   

Prerequisite: IT-200 or CS-175 or permission of the department.

Term Offered: All Terms

Course Type(s): None

Introduction to integrated application software used for authoring and publishing Web sites in a Windows environment. Applications include markup programming and Internet scripting languages used to create Web pages. Network technologies and the fundamental concepts involved in creating a network and in facilitating network operation will also be introduced. Concepts include: protocols, networking media, and architectures. Hands-on experience with a microcomputer on a networked system is provided.

Course usage information

IT-298   Special Topics in Information Technology (200 Level)Credits: 3   

Prerequisites: IT-100 and as announced in the course schedule.

Course Type(s): None

Topics of current interest in Information Technology.

Course usage information

IT-300   Windows Applications: Program Design and ImplementationCredits: 3   

Prerequisite: IT-250 or permission of the department.

Term Offered: All Terms

Course Type(s): None

Program development life cycle, core programming concepts, and software design and methodologies used to create Windows applications with Visual Basic. Practical problems are used to illustrate application-building techniques used in a variety of applications, including Windows desktop application and applications targeted for the Internet and intranets. Topics include designing customized user interfaces, building dialog boxes, adding drag-and-drop functionality to applications, and creating customized database management and reporting applications. Hands-on experience with a microcomputer on a networked system is provided.

Course usage information

IT-398   Special Topics in Information Technology (300 Level)Credits: 3   

Prerequisites: IT-100 and as announced in the course schedule.

Course Type(s): None

Topics of current interest in Information Technology.

Course usage information

IT-399   Independent Study in Information TechnologyCredits: 3   

Course Type(s): None

Reading and research on a selected topic under the direction of a faculty member.

Course usage information

IT-405   Advanced Internet TechnologyCredits: 3   

Prerequisites: IT-250 and IT-300.

Term Offered: All Terms

Course Type(s): None

The most current tools and technologies used in professional Web site development are introduced through the case study and lecture approach. Topics include the application of advance scripting languages and software applications for interactive controls, cascading style sheets, dynamic page layout, special effects, document formatting and transformation.

Course usage information

IT-450   Information Systems Project ManagementCredits: 3   

Prerequisite: IT-250 or permission of the department.

Corequisite: IT-300.

Term Offered: All Terms

Course Type(s): EX5

The tools and skills of the systems analyst needed in information systems project management are introduced through the case study and experiential approach. Project management software will be used within an integrated-software environment-systems framework; students will complete two information technology projects in Web and database design for external clients.

Course usage information

IT-498   Special Topics in Information Technology (400 Level)Credits: 3   

Prerequisites: IT-100 and as announced in the course schedule.

Course Type(s): None

Topics of current interest in Information Technology.

Course usage information

SE-104   Introduction to Software EngineeringCredits: 3   

Term Offered: Spring Term

Course Type(s): None

Introduction to the methods and tools for software development. Topics include the personal software process, requirements engineering, software design, testing methods, project management, and other management techniques.

Course usage information

SE-199   Independent Study in Software EngineeringCredits: 3   

Course Type(s): None

Independent Study of a particular subject or problem in software engineering under the guidance of a software engineering faculty member.

Course usage information

SE-205   Requirements Engineering and SpecificationsCredits: 3   

Prerequisites: SE-104 and CS-175.

Term Offered: Fall Term

Course Type(s): None

Elicitation, analysis, specification, validation, and management of user requirements; conflict resolution; process, notations, methods and tools, requirements standards, operational concepts documents (OCD) and system requirements specifications (SRS).

Course usage information

SE-207   Software Design and ArchitectureCredits: 3   

Prerequisites: SE-104 and CS-176 or CS-275; and EN-101 and EN-102 or permission of the instructor.

Term Offered: Spring Term

Course Type(s): WT

Design process notations, methods, paradigms, and tools. System architecture tradeoff analysis; component and subcomponent specification. Generic (domain) design; architectural styles, frameworks, and patterns. Test and integration plan documents. Architecture standards; design tools.

Course usage information

SE-299   Independent Study in Software EngineeringCredits: 3   

Term Offered: All Terms

Course Type(s): None

Independent Study of a particular subject or problem in software engineering under the guidance of a software engineering faculty member.

Course usage information

SE-306   Formal Methods in Software EngineeringCredits: 3   

Prerequisite: MA-120 or MA-130.

Term Offered: Fall Term

Course Type(s): None

Covers a variety of formal methods and applies them to software-specification development. Assumes a firm grounding in mathematical logic, knowledge of proof techniques, and skill in the translation of problems expressed in English into predicate logic.

Course usage information

SE-312   Software Verification, Validation, and MaintenanceCredits: 3   

Prerequisites: SE-104 and CS-176 or CS-275.

Term Offered: Fall Term

Course Type(s): None

Covers inspections of requirements, design and code, as well as testing, the handling of change requests, software evolution, code comprehension, and change management.

Course usage information

SE-351   Microprocessor LaboratoryCredits: 3   

Prerequisite: MA-120 or MA-130.

Term Offered: Fall Term

Course Type(s): None

Introduces the student to microprocessor-based, hardware-interface design. Provides practice in developing software that drives the interfaces between a microprocessor and the outside world. Topics include: logic circuit analysis and synthesis, digital hardware components, microprocessor system architecture, and assembly and C/C++ language programming of input/output device drivers.

Course usage information

SE-352   Embedded and Real-Time SoftwareCredits: 3   

Prerequisite: SE-351.

Term Offered: Spring Term

Course Type(s): None

Familiarizes students with the fundamental issues related to embedded and real-time software systems and gives them an opportunity to become familiar with a commercially available system for developing and testing embedded and real-time software. Topics include: definition of embedded systems, process concurrency, interprocess communications, synchronization, and process scheduling.

Course usage information

SE-353   Comparative LanguagesCredits: 3   

Prerequisite: CS-176 or CS-275.

Term Offered: All Terms

Course Type(s): None

Begins with a history of the development of programming languages that provides the background necessary to understand programming-language design and evaluation. This is followed by an introduction to the basic programming language constructs and then critically comparing their implementation in some of the most common languages. Included is a discussion of the advantages and disadvantages of modern programming languages for a variety of applications. Some of the languages discussed are LISP, C, Small Talk, C++, Java, Ada, PL/1, and Prolog.

Course usage information

SE-356   Internet Technologies for Software EngineersCredits: 3   

Prerequisites: CS-102 and CS-176 or CS-275.

Term Offered: All Terms

Course Type(s): None

Provides an intensive look at the leading-edge technologies that are used to build Internet applications, what they do, and how they do it. Topics covered will include: hyper-text markup language, cascading style sheets, scripting languages, active server pages, Pert/CGI, and the extensible markup language.

Course usage information

SE-357   Engineering Web-based SystemsCredits: 3   

Prerequisites: SE-205 and SE-207.

Term Offered: Spring Term

Course Type(s): None

A practical introduction to the principles, methods, and tools required to create high-quality software applications for the distributed, client-server context of the Web. Emphasis is on architectural designs, and language and data access methods that are common in Web-based systems.

Course usage information

SE-360   Introduction to Game DevelopmentCredits: 3   

Prerequisite: CS-205 passed with a grade of C or higher.

Term Offered: Fall Term

Course Type(s): None

An introduction to the creation of computer/video games and the different elements of games, including computer graphics, animation, artificial intelligence, algorithms, data structures, networking, software development cycles and human-computer interaction. Also listed as CS-360.

Course usage information

SE-370   Program Development Under UnixCredits: 3   

Prerequisite: CS-176 or CS-275 passed with a grade of C or higher.

Term Offered: All Terms

Course Type(s): None

Introduction to the use of the UNIX operating system and its utilities for incremental and distributed program development, maintenance, and debugging. The course covers the UNIX shell, utilities, and program development tools that are used for large projects involving multiple developers on multiple machines. Three hours per week. Also listed as CS-370.

Course usage information

SE-398   Special Topics in Software EngineeringCredits: 3   

Prerequisite: As announced in the course schedule.

Term Offered: All Terms

Course Type(s): None

A 300-level intensive study of a particular subject or problem in software engineering to be announced prior to registration. May be conducted on either a lecture-discussion or a seminar basis. Three or four hours per week.

Course usage information

SE-402   Human Computer InteractionCredits: 3   

Prerequisite: Completion of forty-eight credits of coursework.

Term Offered: All Terms

Course Type(s): IM

Covers basic human psychology, computer technology, and the interface between them. The key topics of HCI are examined, grounded in the context of usability and the design lifecycle.

Course usage information

SE-403   Software Process ImprovementCredits: 3   

Prerequisite: CS-205.

Term Offered: Spring Term

Course Type(s): None

Students will be introduced to the various aspects related to software processes. It will focus on the definition and modeling of a software process, as well as on methods for process assessment and improvement. The concepts will be illustrated through process-improvement case studies, followed by hands-on experience with the improvement of the personal software-development process.

Course usage information

SE-418   Software Project ManagementCredits: 3   

Prerequisites: CS-176 or CS-275; and EN-101 and EN-102 or permission of the instructor.

Term Offered: Spring Term

Course Type(s): WT

Project management and its application to software-development projects. Emphasis will be on planning, organizing, monitoring, and controlling. Students will learn how to develop work breakdown structures, estimate task durations, assign resources, specify network precedence, and determine a project's critical path. Methods for scheduling in the face of resource constraints will be included, as well as function point counting, algorithmic models for estimating total project cost, and software tools for project planning and monitoring.

Course usage information

SE-485A   Software PracticumCredits: 3   

Prerequisites: CS-205, SE-205, SE-207, and SE-312.

Corequisite: SE-402.

Term Offered: Fall Term

Course Type(s): EX5, RD

Team work on substantial software projects submitted by corporate sponsors. Interim progress reports required, with a final formal defense and presentation to corporate staff, faculty, and other students in the course. At the end of SE-485A, students must submit their software engineering portfolio for review by the Software Engineering faculty.

Course usage information

SE-485B   Software PracticumCredits: 3   

Prerequisite: SE-485A.

Term Offered: Spring Term

Course Type(s): EX5, RD

Team work on substantial software projects submitted by corporate sponsors. Interim progress reports required, with a final formal defense and presentation to corporate staff, faculty, and other students in the course. At the end of SE-485B, students must submit their software engineering portfolio for review by the Software Engineering faculty.

Course usage information

SE-498   Special Topics in Software EngineeringCredits: 3   

Prerequisite: As announced in the course schedule.

Term Offered: Fall Term

Course Type(s): None

A 400-level intensive study of a particular subject or problem in software engineering to be announced prior to registration. May be conducted on either a lecture-discussion or a seminar basis. Three or four hours per week.