Computer Science and Software Engineering

Chair: Daniela Rosca, Department of Computer Science and Software Engineering

UNIX Administrator and Teacher: Joseph Chung

Bachelor of Science 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 B.S. in Computer Science, 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 Bachelor of Science in Computer Science identifies the following within a few years after graduation from the program:

  • Work as effective team members or team leaders in the development of secure computer and software systems covering a wide range of business, educational and scientific applications, or undertake graduate studies.
  • Work in teams to solve problems, communicating effectively with technical and non-technical team members, clients, and customers, while meeting the social and ethical responsibilities of their profession.
  • Adapt to new technologies, methodologies and regulations with the skills required to react to and innovate for a changing world.

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

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. 

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

  • Work as effective team members or team leaders in the development of secure computer and software systems covering a wide range of business, educational and scientific applications, or undertake graduate studies.
  • Work in teams to solve problems, communicating effectively with technical and non-technical team members, clients, and customers, while meeting the social and ethical responsibilities of their profession.
  • Adapt to new technologies, methodologies and regulations with the skills required to react to and innovate for a changing world.

Gil Eckert, Specialist Professor. B.S., Stockton University, M.S., Kean University. Research interests include simulation, data analysis and manipulation, algorithmic development, and quality control.
geckert@monmouth.edu

Daniela Rosca, Associate Professor and Chair (Graduate Faculty). M.S., Polytechnic University of Bucharest; Ph.D., 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. B.A., Columbia University; M.A., University of Chicago; Ph.D., University of Illinois. Interests include artificial intelligence (especially knowledge representation, automated reasoning and natural language processing), cognitive science, and databases.
rscherl@monmouth.edu

Jiacun Wang, Professor and Graduate Program Director (Graduate Faculty). B.S., Jiangsu University of Science and Technology; Ph.D., Nanjing University 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). B.S., Nanjing University of Aeronautics and Astronautics; Ph.D., University of Singapore, Singapore. Interests include database management systems, spatial databases, and information storage and retrieval.
cyu@monmouth.edu

Ling Zheng, Assistant Professor (Graduate Faculty). B.S., Southern Medical University, Guangzhou, China; M.S., Zhejiang University, Hangzhou, China; Ph.D., New Jersey Institute of Technology. Healthcare information systems, translational bioinformatics, biomedical ontologies/terminologies, and biomedical knowledge representation and discovery.
lzheng@monmouth.edu

Course usage information

CS-104   Introduction to Problem Solving and Software DevelopmentCredits: 3   

Term Offered: All Terms

Course Type(s): TL

Introduces a broad overview of problem solving, computing topics, and fundamental concepts and methodologies of software development designed to provide students with awareness of the computing field's many aspects. Topics include fundamentals of computer architecture, operating systems, applications, problem-solving. It emphasizes the main phases of the software development lifecycle, such as requirements, design, implementation, testing, project planning. Also, it stresses the difference between the software product and process. 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: 3   

Prerequisite(s): CS-104

Co-requisite(s): CS-175L

Term Offered: All Terms

Course Type(s): None

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

Course usage information

CS-175L   Introduction to Computer Science I labCredits: 1   

Prerequisite(s): CS-104

Co-requisite(s): CS-175

Term Offered: All Terms

Course Type(s): None

Introductions to the basic concepts of programming and program development in a modern Software Development Environment with debugger and source code control.

Course usage information

CS-176   Introduction to Computer Science IICredits: 3   

Prerequisite(s): CS-175 and CS-175L, both passed with a grade of C or higher

Co-requisite(s): CS-176L

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, inheritance, and interfaces.

Course usage information

CS-176L   Introduction to Computer Science II LabCredits: 1   

Prerequisite(s): CS-175 and CS-175L, both passed with a grade of C or higher

Co-requisite(s): CS-176

Term Offered: All Terms

Course Type(s): None

Introduction to advanced concepts of programming and program development in a modern Software Development Environment with debugger and source code control.

Course usage information

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

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. Prior permission of the directing professor and department chair is required to take this course.

Course usage information

CS-201   Introduction to Computer Programming for Data ScienceCredits: 1   

Prerequisite(s): IT-100 or IT-102 or IT-150 or CS-104

Term Offered: Spring Term

Course Type(s): None

This course introduces the most important data structures available in R and their practical application. Methodologies to import data from external sources (files, databases, on-line resources), to manipulate and transform data, and to save\export data to data repositories are described. The course also describes how to compute descriptive statistics and how to build chart for effective data visualization tasks. The students will become familiar in using some R data manipulation and visualization libraries.

Course usage information

CS-202   Discrete Mathematics and ApplicationsCredits: 4   

Prerequisite(s): 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: 3   

Prerequisite(s): MA-130, CS-176, and CS-176L, all passed with a grade of C or higher

Co-requisite(s): CS-205L

Term Offered: All Terms

Course Type(s): None

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

Course usage information

CS-205L   Data Structures and Algorithms LabCredits: 1   

Prerequisite(s): MA-130, CS-176, and CS-176L, all passed with a grade of C or higher

Co-requisite(s): CS-205

Term Offered: All Terms

Course Type(s): None

Introductions to the basic concepts of programming and program development in a modern Software Development Environment with debugger and source code control.

Course usage information

CS-250   Android Application DevelopmentCredits: 3   

Prerequisite(s): CS-176 and CS-176L

Term Offered: Spring Term

Course Type(s): None

This course will teach students software methodologies for Android App Development. This will include Android Development Studio, Kotlin programming language, and interfaces to external services required to develop simple to moderately complex Android mobile apps. Also listed as SE-250.

Course usage information

CS-286   Computer Architecture ICredits: 3   

Prerequisite(s): CS-176 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-289   Internship in Computer ScienceCredits: 3   

Term Offered: All Terms

Course Type(s): EX1

Supervised practical experience in Computer Science. Repeatable for credit. Sophomore standing, departmental approval, and placement are required to take this course.

Course usage information

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

Term Offered: Spring Term

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. If a prerequisite is required it will be announced in the course schedule.

Course usage information

CS-299   Independent Study in Computer ScienceCredits: 3   

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. Prior permission of the directing professor and department chair is required to take this course.

Course usage information

CS-305   Advanced ComputingCredits: 3   

Prerequisite(s): CS-205 passed with a grade of C or higher

Term Offered: Fall Term

Course Type(s): None

Introduction to fundamental concepts of computer science theory and methods of parallel and distributed programming, The course covers automata theory (including finite-state machines and Turing machines, algorithm complexity (including the distinction between P and NP problems), BNF specification of programming languages, methods of parallel programming, methods of distributed programming, measuring the speedup obtained by parallelization, and methods of addressing NP completeness through approximation. The course will provide experience in the implementation of parallel and distributed programming.

Course usage information

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

Term Offered: All Terms

Course Type(s): WT

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

Course usage information

CS-315   Theory of ComputingCredits: 3   

Prerequisite(s): CS-176 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: Spring Term

Course Type(s): None

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

Course usage information

CS-325   Software Engineering ConceptsCredits: 3   

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

Term Offered: All Terms

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-335   Programming Language ConceptsCredits: 3   

Prerequisite(s): CS-205 passed with a grade of C or higher

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-337   Enterprise Mobile Apps Design and DevelopmentCredits: 3   

Prerequisite(s): CS-205 passed with a grade of C or higher

Term Offered: Fall Term

Course Type(s): None

Presents methodologies to build enterprise mobile apps on iPad tablets and iPhone smartphones using iOS. The course will cover technologies to use in the design and development of apps on mobile devices and integration of these apps with corporate data sources, sensor devices and cloud computing services. Also listed as SE-337.

Course usage information

CS-350   Research in Computer ScienceCredits: 1-4   

Prerequisite(s): 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-357   Engineering Web-Based SystemsCredits: 3   

Prerequisite(s): CS-176 and CS-176L

Term Offered: Fall 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. Also listed as SE-357.

Course usage information

CS-358   Software FrameworksCredits: 3   

Prerequisite(s): EN-101, EN-102, CS-205 and SE-207 both passed with a grade of C or higher; and SE-357 or CS-357, or permission of the instructor.

Course Type(s): WT

An introduction to Design Patterns and modern Software Frameworks, programming languages, data access methods and asynchronous Application Programming Interfaces (APIs). This is a writing intensive course. Restricted to Computer Science or Software Engineering students only. Also listed as SE-358. and SE-357 or CS-357 or permission of the instructor.

Course usage information

CS-360   Introduction to Game DevelopmentCredits: 3   

Prerequisite(s): 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(s): CS-176 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(s): CS-176 or equivalent

Term Offered: Spring Term

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(s): 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   

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

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. Departmental approval is required to take this course.

Course usage information

CS-389   Internship in Computer ScienceCredits: 3   

Term Offered: All Terms

Course Type(s): EX1

Supervised practical experience in Computer Science. Repeatable for credit. Junior standing, departmental approval, and placement are required to take this course.

Course usage information

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

Prerequisite(s): CS-176 or CS-275 passed with a grade of C or higher

Term Offered: Spring Term

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. If a prerequisite is required it will be announced in the course schedule.

Course usage information

CS-399   Independent Study in Computer ScienceCredits: 3   

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. Prior permission of the directing professor and department chair is required to take this course.

Course usage information

CS-414   Computer NetworksCredits: 3   

Prerequisite(s): CS-286 passed with a grade of C or higher

Term Offered: All Terms

Course Type(s): None

An introductory-level course on the hierarchy of networking software and hardware. Emphasis on the; description of protocols in the Internet, specifically, client-server Application Layer Protocols such as HTTP, SMTP, DNS, DHCP; Transport Layer Protocols such as UDP/TCP, Network Layer Protocols such as IP, ICMP, as well as Network Layer Routing and Forwarding techniques, such as RIP and OSPF for IPv4 and Tunneling for IPv6.

Course usage information

CS-418   Compiler ConstructionCredits: 3   

Prerequisite(s): CS-205 passed with a grade of C or higher

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

Prerequisite(s): CS-205 and MA-130 both passed with a grade of C or higher

Term Offered: Fall Term

Course Type(s): None

Introduction of fundamental concepts and practices of artificial intelligence, covering search techniques, constraint satisfaction, knowledge representation, machine learning, planning, and natural language processing. The course will provide experience in the implementation of techniques from these areas. Three hours per week.

Course usage information

CS-432   Database SystemsCredits: 3   

Prerequisite(s): CS-205 passed with a grade of C or higher

Term Offered: All Terms

Course Type(s): None

Overview of database system concepts; data modeling; ER and UML diagrams; relational database schema definition; database design; query languages; introduction to NoSQL and comparison between relational and non-relational databases; hand-on experience of SQL, Oracle, and NoSQL.

Course usage information

CS-438   Operating Systems AnalysisCredits: 3   

Prerequisite(s): 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, concur-ency, deadlock, virtual machines. Competitive and cooperating processes. Programs will be written in C or in Java. Three hours per week.

Course usage information

CS-450   Cyber SecurityCredits: 3   

Prerequisite(s): CS-205

Term Offered: Fall Term

Course Type(s): None

Cover fundamental theory and practice of cyber security. Review cryptographic tools used to provide security, such as shared key encryption; public key encryption, key exchange, authentication, digital signature, and intrusion detection. Learn implementation of secure mechanisms in object-oriented programming languages. Also listed as SE-450.

Course usage information

CS-451   Applied Computer SecurityCredits: 3   

Prerequisite(s): CS-450 or SE-450

Term Offered: Spring Term

Course Type(s): None

This course will introduce students to multiple aspects of computer security and practice into a series of well-defined security topics such as network security and hacking tools. Also, the student will introduce different topics of digital forensics. Also listed as SE-451.

Course usage information

CS-471   System AdministrationCredits: 3   

Prerequisite(s): 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   

Prerequisite(s): 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. May be repeated for credit. Departmental approval is required to take this course. 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 are required to take this course.

Course usage information

CS-489   Internship in Computer ScienceCredits: 1-3   

Term Offered: All Terms

Course Type(s): EX1

Supervised practical experience in Computer Science. Repeatable for credit. Junior standing, departmental approval, and placement are required to take this course.

Course usage information

CS-490   Senior ProjectCredits: 4   

Prerequisite(s): 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-492A   Computer Science Senior Project ACredits: 3   

Prerequisite(s): CS-325 and CS-432, both passed with a grade of C or higher

Term Offered: All Terms

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-492B   Computer Science Senior Project BCredits: 3   

Prerequisite(s): CS-492A

Term Offered: All Terms

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   

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. If a prerequisite is required it will be announced in the course schedule.

Course usage information

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

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. Prior permission of the directing professor and department chair is required to take this course.

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-103   Applied Information TechnologyCredits: 3   

Term Offered: Fall Term

Course Type(s): TL

Applies the principles and tools of information technology toward a deeper understanding of their impact on scientific, social and ethical issues via a central theme for the semester such as (but not limited to) climate change, big data, health-care cost analysis and others. This course will use software such as spreadsheets, databases, modeling, simulation, data analysis, software, electronic-communication applications; information retrieval from the internet and on-line library resources; social media, intranet and extranet systems to help students emerge with thematic materials in a way that deepens their understanding of associated topics.

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(s): IT-100 or IT-102; or CS-104 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(s): IT-200 or CS-175 or permission of the instructor

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   

Prerequisite(s): IT-100 and as announced in the course schedule

Course Type(s): None

Topics of current interest in Information Technology.

Course usage information

IT-299   Independent Study in Information TechnologyCredits: 3   

Term Offered: Summer Term

Course Type(s): None

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

Course usage information

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

Prerequisite(s): 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   

Prerequisite(s): 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   

Term Offered: Spring Term

Course Type(s): None

Reading and research on a selected topic under the direction of a faculty member. Prior permission of the directing professor and department chair is required to take this course.

Course usage information

IT-450   Information Systems Project ManagementCredits: 3   

Prerequisite(s): IT-250 or permission of the department

Co-requisite(s): 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   

Prerequisite(s): 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   

Term Offered: Summer Term

Course Type(s): None

Independent Study of a particular subject or problem in software engineering under the guidance of a software engineering faculty member. Prior permission of the directing professor and department chair is required to take this course.

Course usage information

SE-205   Requirements Engineering and SpecificationsCredits: 3   

Prerequisite(s): CS-104 and CS-175

Term Offered: All Terms

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   

Prerequisite(s): CS-104 and CS-176; 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-250   Android Application DevelopmentCredits: 3   

Prerequisite(s): CS-176 and CS-176L

Course Type(s): None

This course will teach students software methodologies for Android App Development. This will include Android Development Studio, Kotlin programming language, and interfaces to external services required to develop simple to moderately complex Android mobile apps. Also listed as CS-250.

Course usage information

SE-289   Internship in Software EngineeringCredits: 3   

Term Offered: Summer Term

Course Type(s): EX1

Supervised practical experience in Software Engineering. Repeatable for credit. Junior standing, departmental approval, and placement are required to take this course.

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. Prior permission of the directing professor and department chair is required to take this course.

Course usage information

SE-306   Formal Methods in Software EngineeringCredits: 3   

Prerequisite(s): MA-120 or MA-130

Term Offered: All Terms

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   

Prerequisite(s): CS-104 and CS-176

Term Offered: All Terms

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-337   Enterprise Mobile Apps Design and DevelopmentCredits: 3   

Prerequisite(s): CS-205 passed with a grade of C or higher and CS-337

Term Offered: Fall Term

Course Type(s): None

Presents methodologies to build enterprise mobile apps on iPad tablets and iPhone smartphones using iOS. The course will cover technologies to use in the design and development of apps on mobile devices and integration of these apps with corporate data sources, sensor devices and cloud computing services. Also listed as CS-337.

Course usage information

SE-351   Microprocessor LaboratoryCredits: 3   

Prerequisite(s): 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(s): 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(s): CS-176

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-357   Engineering Web-Based SystemsCredits: 3   

Prerequisite(s): CS-176 and CS-176L

Term Offered: All Terms

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. Also listed as CS-357.

Course usage information

SE-358   Software FrameworksCredits: 3   

Prerequisite(s): EN-101, EN-102, CS-205 and SE-207 both passed with a grade of C or higher; and SE-357 or CS-357, or permission of the instructor.

Term Offered: Spring Term

Course Type(s): WT

An introduction to Design Patterns and modern Software Frameworks, programming languages, data access methods and asynchronous Application Programming Interfaces (APIs). This is a writing intensive course. Restricted to Computer Science or Software Engineering students only. Also listed as CS-358. SE-357 or CS-357 or permission of the instructor.

Course usage information

SE-360   Introduction to Game DevelopmentCredits: 3   

Prerequisite(s): 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(s): CS-176 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

SE-398   Special Topics in Software EngineeringCredits: 3   

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. If a prerequisite is required it will be announced in the course schedule.

Course usage information

SE-399   Independent Study in Software EngineeringCredits: 1-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. Prior permission of the directing professor and department chair is required to take this course.

Course usage information

SE-402   Human Computer InteractionCredits: 3   

Term Offered: Spring Term

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(s): 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   

Prerequisite(s): CS-176; and EN-101 and EN-102 or permission of the instructor

Term Offered: All Terms

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-450   Cyber SecurityCredits: 3   

Prerequisite(s): CS-205

Term Offered: Fall Term

Course Type(s): None

Cover fundamental theory and practice of cyber security. Review cryptographic tools used to provide security, such as shared key encryption; public key encryption, key exchange, authentication, digital signature, and intrusion detection. Learn implementation of secure mechanisms in object-oriented programming languages. Also listed as CS-450.

Course usage information

SE-451   Applied Computer SecurityCredits: 3   

Prerequisite(s): CS-450 or SE-450

Term Offered: Spring Term

Course Type(s): None

This course will introduce students to multiple aspects of computer security and practice into a series of well-defined security topics such as network security and hacking tools. Also, the student will introduce different topics of digital forensics. Also listed as CS-451.

Course usage information

SE-485A   Software PracticumCredits: 3   

Prerequisite(s): CS-205, SE-205, SE-207, and SE-312 All passed with a grade of C or higher.

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(s): 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   

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. If a prerequisite is required it will be announced in the course schedule.

Course usage information

SE-499   Independent Study in Software EngineeringCredits: 1-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. Prior permission of the directing professor and department chair is required to take this course.