The Computer Science-Software Development degree completion program includes courses in the following areas:
- Foundations of Computer Science
- Data Structures and Algorithms
- Computer Networks and Telecommunications
- Database Management Systems
- Web Application Programming
- Software Development
- Software and Systems Engineering
- Computer Organization and Architecture
- Computer and Information Security
- Technology and Society
- Software Application Practicum
|CSCI3103||Foundations of Computer Science 1||3||6|
|CSCI3113||Foundations of Computer Science 2||3||6|
|CSCI3123||Data Structures and Algorithms||3||6|
|CSCI3013||Computer Networks and Telecommunications||3||6|
|CSCI3133||Database Management Systems||3||6|
|CSCI3143||Web Application Programming||3||6|
|CSCI3024||Software and Systems Engineering||4||8|
|CSCI4011||Software Application Practicum 1||1||2|
|CSCI3054||Computer Organization and Architecture||4||8|
|CSCI4003||Computer Information Security||3||6|
|CSCI4021||Software Application Practicum 2||1||2|
|CSCI3083||Technology and Society||3||6|
|CSCI4031||Software Application Practicum 3||1||2|
Foundations of Computer Science 1 
An introduction to Computer Science using the Java programming language. Topics include: fundamental concepts of computer systems and software development; algorithm design and implementation using subroutines, functions and arrays; introduction to object-oriented programming and graphical user interfaces; and consideration of ethical issues related to computers and technology.
Prerequisite: CSCI1033, or a course in computer programming, or a passing score on the Computer Science Placement Exam; and MATH1053 or a course in discrete mathematics.
Foundations of Computer Science 2 
This course is a continuation of CSCI3103, emphasizing object-oriented software design and programming using the Java language; introduction to common data structures such as lists, stacks, queues, and trees; introduction to fundamental concepts of abstraction, recursion, computational complexity and software testing methods.
Prerequisite: CSCI3103 Foundations of Computer Science 1.
CSCI3123 Data Structures and Algorithms 
A study of common data structures including lists, stacks, queues, trees, graphs and networks, algorithm design methods, and object-oriented design and implementation.
Prerequisites: CSCI3113 Foundations of Computer Science 2.
Computer Networks and Telecommunications 
A study of networking and telecommunication concepts, models, standards, addressing, and protocols. Topics include advances in wireline and wireless networks, Ethernet, optical networks, broadband including DSL and cable, cellular networks, and network security and management. Network management and administration is also discussed.
Prerequisite: CSCI3103 Foundations of Computer Science 1.
CSCI3133 Database Management Systems 
A study of database models, designs, organization, normalization, integrity, and distributed database systems. Includes lab project work in design and implementation of relational databases, and software applications that use databases.
Prerequisites: MATH1053 Elementary Discrete Mathematics, and CSCI3103 Foundations of Computer Science 1.
Web Application Programming 
Prerequisites: CSCI3113 Foundations of Computer Science 2, and CSCI3033 Database Management Systems.
Introduction to Software Development 
An introductory course in software development. Concepts include software specifications and design, methodologies for software organization and development, user interfaces, file processing techniques, and software debugging, testing, and documentation.
Prerequisite: CSCI3123 Data Structures and Algorithms.
Software and Systems Engineering 
A study of the planning, specification, design, implementation, validation, documentation and management of computer software and computer systems. Participation in a major group project is required.
Prerequisites: CSCI3033 Database Management Systems, and CSCI3004 Introduction to Software Development.
Computer Organization and Architecture 
A study of computer system logic, components, hardwired and micro-programmed control units, memory organization, and RISC architecture. A digital design laboratory is included.
Prerequisites: CSCI3113 Foundations of Computer Science 2, and MATH1053 Elementary Discrete Mathematics.
Computer and Information Security 
An advanced study of computer and information security. Topics include threats, vulnerabilities, and associated response mechanisms used to protect an organization. Hardware and software solutions are presented with security-related models, principles, and concepts for analyzing and implementing organizational security programs. This course includes hands-on lab experience using current tools for analysis, monitoring and testing.
Prerequisite: CSCI3013 Computer Networks and Telecommunications.
Technology and Society 
A study of technology’s impact on individuals, groups, and institutions. Special emphasis is given to worker displacement, computer illiteracy, environmental and health issues, depersonalization, computer crime, intellectual property, invasion of privacy and other ethical/legal issues.
Software Application Practicum 1 
An independent software development project selected in conjunction with the instructor. This course includes the project planning and requirements specification to define the project that will be completed in the remainder of the software practicum course sequence.
Co-rerequisite: CSCI3024 Software and Systems Engineering.
Software Application Practicum 2 
An independent software development project selected in conjunction with the instructor. This course includes refinement of the requirements specification, design, and initial implementation of prototypes for part of the project that will be completed in the final course of the software practicum sequence.
Prerequisite: CSCI4011 Software Application Practicum 1.
Software Application Practicum 3 
Completion of an independent software development project selected in conjunction with the instructor. This course includes the implementation, testing and final documentation of a project, based on the requirements and design completed in the previous courses of the software practicum sequence.
Prerequisite: CSCI4021 Software Application Practicum 2.