Bachelor of Science in Software Development

Choose Your Path

I am looking to earn my

Bachelor of Science in Software Development

Course Information

Bachelor of Science in Software Development (BSSD): 120 Credits

GLOBAL LEARN CLASSES

BSSD Courses

OFFERED TIMES
Monday – Friday at 6PM – 10PM EST

Program Core:

CS1000 Security +

(Prerequisite: IT1110) Security Plus provides students with the foundational knowledge needed within the field of Cybersecurity. This course highlights the vulnerabilities and threats organizations face today. Students will learn how to mitigate these vulnerabilities and various methods to prevent these occurrences.

IT3150 Application Development

This course introduces students to multiple areas of application development while stressing Python style, best practices and good programming habits. The course covers application development for clients and servers, databases, interfacing with popular Microsoft Office applications, the World Wide Web, the cloud and social media.

IT3000 Linux Operations

Students taking this course will build the skills and knowledge necessary to effectively deploy, manage and administer servers and clients using the Linux operating system in the enterprise and to effectively integrate devices using Linux based operating systems into the enterprise network.

IT2150 Client Configuration I

(Prerequisite: IT1010) Students taking this course will obtain the knowledge and skills necessary to implement, administer, and troubleshoot a desktop operating system in a network environment. This course aligns with the objectives in the Microsoft certification for client configuration.

IT1030 Virtual Computing

In the Virtual Computing course, students will learn about computer hardware virtualization, container technologies, and virtualization software. Students will deploy Linux and Windows operating systems using virtualization software and will apply these technologies throughout future courses as they build more complex systems. This course will provide a clear understanding of virtual machines and containers and how each are managed and implemented.

IT1010 Implementing & Troubleshooting OS Technology

This course is designed to prepare students for CompTIA A+ Essentials Certification examination (220-902). Topics include operating system fundamentals; operating system architecture; comparison of operating systems; the boot process; installing, configuring, supporting, and upgrading operating systems; diagnosing and troubleshooting operating systems, and file systems. Students will also be introduced to networking, hard drive support, and Internet concepts and configurations related to operating systems. At the conclusion of the course students will sit for the CompTIA A+ Essentials examination.

CY3250 Biometrics: Application Technology & Management

This course presents the student with an introduction to biometrics as applied to computer security. The course emphasizes the biometric technologies employed in authentication, authorization, identification and access control to protect valuable computer and network resources and assets. The course examines how and why biometric systems are emerging as an increasingly important aspect of cyber security.

CS4250 Ethical Hacking

Ethical hacking covers vulnerability and penetration testing, which are essential elements in modern cybersecurity. Ethical hacking consists of testing the security of IT systems by trying to find and exploit security vulnerabilities. This class demonstrates the ethical use of various “white hat” cyber penetration testing tools and techniques consistent with Ethical Hacking training. Network tools and techniques take place in an enclosed “sandbox” environment. Students are exposed to various computer hacking skills and analyze various protective measures and their effectiveness.

CS3500 Information Security Fundamentals

Students taking this course will learn the fundamental skills needed to evaluate and ultimately defend the networks and clients that they manage. This course introduces students to the core concepts of security, malicious attacks, threats, and vulnerabilities. Students in this course will have an understanding of cryptography, auditing, and security operations.

CS3300 Project Management for IT Professionals

Students taking this course will develop skills in project integration, scope, time, cost, quality, human resources, communications, risk, procurement and stakeholder management as well as planning, executing, monitoring, controlling and closing processes. This course emphasizes the principles distinctive to managing information technology projects that extend well beyond standard project management requirements.

CS3200 Cybersecurity Law & Ethics

Students taking this course will learn about laws concerning network and computer security, legal limits for accessing systems, data, and various other forms of regulations on digital information. Students in this course will also be introduced to Crimeware and how it relates to multiple areas of the application architecture.

CS2500 Systems Analysis & Design

Students taking this course are introduced to the analyses, methodology and tools used to translate business requirements into information systems that support the short- and long-term objectives of the enterprise. Students will learn about traditional structured analysis, object-oriented concepts and agile methods and the Systems Development Life Cycle (SDLC). They are also introduced to project management concepts and the software tools most commonly used by systems analysts.

CS1050 Introduction to Relational Database Management Systems

During this course students will learn concepts regarding various types of databases. Students will also explore concepts in designing basic and advanced databases. This course will also provide students with insight regarding database connectivity with web technologies.

PR2000 Introduction to Programming Logic

This course reviews the basic concepts of programming. The course takes a unique and language independent approach with an emphasis on modern programming principles while introducing universal programming concepts and ensuring strong programming and logical thinking. This course will also explore gaming concepts as well as debugging techniques.

NET4100 Implementing Collaboration Services

Students taking this course will obtain the knowledge and build the skills necessary to install, configure, and administer Microsoft SharePoint in the enterprise. The course also covers managing and monitoring sites and users. This course is designed to help students prepare for and pass Microsoft Certifications.

IT4300 Back End Processing

This course covers backend processing of web technologies that are used to build back-end systems that enable rich web applications. Utilizing technologies such as Python, Flask, Docker, RDBMS/NoSQL databases, and Spark, this class aims to cover the foundational concepts that drive the web today. This class focuses on building APIs using micro-services that power everything from content management systems to data engineering pipelines that provide insights by processing large amounts of data. The goal of this course is to provide an overview of the technical issues surrounding back-end systems today, and to provide a solid and comprehensive perspective of the web’s constantly evolving landscape.

IT4250 Front End Processing

This course provides a detailed explanation of selecting and manipulating DOM nodes using JavaScript. Generating DOM elements dynamically and manipulating the DOM structure including Fetching information from external sources. The topics will cover the Basic JavaScript constructs, testing and finding bugs, data persistence on the client and object-oriented programming, classes, objects, and methods.

IT4200 Software Assurance

This course provides a detailed explanation of software assurance practices, methods, and tools required throughout the software development life cycle. Students will apply life-cycle knowledge in exploring common programming errors and evaluate common software testing tools.

IT4050 Computer Networking

This class will cover the theory, design, engineering, and installation of networks to connect digital computers. The course will prepare students to plan and implement a network. Also includes peer-to-peer networks, the client-server model, network operating systems, and an introduction to wide-area networks. The network and implementation tools may vary to meet current development trends.

SD4450 SQL Programming

(Prerequisite: PR2000) This course introduces students to the concepts and skills required for database programming and their implementation using programmatic extensions to Structured Query language (SQL). Some of the topics include data manipulation, stored procedures, triggers, and query optimization. Concepts of this course will apply to any modern distributed database management system.

SD2350 Web Development

This course is an introduction to the design, creation, and maintenance of web pages and websites. Students will learn how to evaluate website requirements and learn how to create and maintain quality web pages. Students will also learn web design standards and learn to create and manipulate images. Various tools and techniques for web editing, graphics and marketing are presented during this course.

PR4350 NoSQL Programming

(Prerequisite: PR2000) This is an introduction to NoSQL Programming. This course provides students with basic database concepts including an overview of SQL and industrial database application domains. This course covers basic SQL commands and develops practical database programming skills. It begins with a review of the database environment, adding procedures, functions, indexes and optimization. The course also focusses on applying the skills to real world applications including integrating databases with applications, big data, and graphing and geo-spatial databases.

PR4150 C Programming Logic

(Prerequisite: PR2000) This course is designed to introduce students to the C programming language. This course is an introduction of basic programming concepts using the C Program. It also covers an introduction to Python programming. It also covers topics such as memory management, pointers, and arrays, which are covered in the context of C programming. This course covers general-purpose programming and is appropriate for all majors.

PR4050 Python

(Prerequisite: PR2000) This is an introductory course to the Python programming language. In this course, students will be introduced to various aspects of Python programming logic. This will include an introduction to the concepts of object-oriented, transaction, linear, and other such programming concepts and procedural program writing using variables, arrays, control statements, loops, recursion, data abstraction, and objects.

PR4250 Java Programming

(Prerequisite: PR2000) This course is an introductory course to Java Programming. This course introduces students to the methodology of programming from an object-oriented perspective. Students will develop programs using built-in, programmer-created, and dynamic data structures. Sorting and search algorithms will be examined to further develop understanding and skills in Java programming. Topics include inheritance, class hierarchy, polymorphism, and abstract and interface classes. The course emphasizes good software engineering principles and fostering basic programming skills in the context of a language that supports the object-oriented paradigm.

SD3050 Software Design

(Prerequisite: PR2000) This is an introductory course to Software Design. During this course, students will learn the basic knowledge for designing programs. Students will be introduced to the concepts of structured programming and object-orientated design patterns. This course will provide students with the principles and concepts involved in the analysis and design of small software systems.

SD3150 Software Engineering

(Prerequisite: CS2500) This is an introductory course in Software Engineering. In this course, students will learn basic principles and best practices for Software Engineering, including information security, user interface, architectural design, system models, verification, and validation. Students will be introduced to techniques used in high-level languages and system programming. The Fundamental Practice of Software Engineering Software Engineering introduces readers to the overwhelmingly important subject of software programming and development including process models, agile methods, software requirement and development testing and management.

SD3210 Operating Systems

This class introduces students to several operating systems. These operating systems include UNIX, Linux, Windows and Android. Some of the topics discussed include the history of operating systems and an overview of the most popular operating systems currently being used today. Another key topic being discussed includes memory management to include virtual memory management. This course is also a good introduction to networking.

SD3250 Software Architecture

(Prerequisite: CS2500) This course will explore large-scale software systems and the components needed to support them. This course aims to provide a sound understanding of architecture concepts, functions, tasks and techniques; and how the system constituent parts interact. Students will be exposed to the practical aspects of architecture. This course introduces students to architecture principles and tactics to support development of systems that exhibit system qualities required for successful software systems, such as performance, availability, security, and maintainability.

SD4990 Software Development Capstone Seminar

(Prerequisite: Can be taken in conjunction with other classes as long as it is in the last term) In this capstone project course, students complete an integrative Software Engineering/IT project that combines multiple aspects of their bachelor program. The project requires collaboration with a team of students to manage, analyze, design, implement, and evaluate a computer-based information system. The system development process is initiated with a case study included within the course structure. Students will develop a project charter that will guide them through the discovery of functional and nonfunctional requirements, the creation of a system design based on those requirements, and the development and testing of a functional computer application. Students will develop a management presentation to describe the project design and justify the continuation of the project. The capstone course will involve reading, writing, discussion, as well as the preparation by students of a substantive piece of work (e.g., a senior thesis, a research paper, or a creative work.).

 

General Education Course

ENG1020 English Composition

Students taking this course will study and discuss rhetoric, style, and composition, with special emphasis on written communication skills. Students will learn how to effectively communicate. Students will learn how to demonstrate an effective writing style and composition. Students will demonstrate the ability to prepare forceful written communication using logical thinking.

CPL1010 Computer Literacy

Since technology is in constant flux, you must keep up with the changes to remain digitally literate which involves having a current knowledge and understanding of computers, mobile devices, the web, and related technologies. This course introduces students to computing hardware, software, devices, networks, systems, and the web via home computers, mobile devices, laptops, tablets, e-book readers, and the like.

MAT2140 Algebra

(Prerequisites: MAT0900, if applicable; MAT1010) Students will learn algebraic problem solving, radicals, quadratic equations, polynomials, inequalities, and applied problem solving. Students will learn how to solve a system of equations by the substitution method, the addition method, and the graphing method.

MAT1010 Understanding Mathematics

(Prerequisite: MAT0900, if applicable) Students taking this course will examine the fundamental principles of mathematical theory and grow to understand the logic and inter-relationship of various mathematical functions. Students will learn how to use fundamental vocabulary and symbols related to mathematics. Students will learn how to understand the relationships between various mathematical functions.

LOG3570 Logic & Critical Thinking

This practical course provides students with an introduction to the art of thinking based on examining and discussing different types of reasoning and the requirements of logical consistency.

ENG1260 Professional Communication

(Prerequisite: ENG0900, if applicable) Students taking this course will develop the ability to express themselves effectively in public and private settings. Students will learn about the various theories and strategies of effective communication.

PSY1270 Psychology

This course provides students with an overview of the fundamental principles and methods of psychology. Topics for discussion include biological basis of behavior, sensory and perceptual processes, learning, motivation, developmental changes, personality, social behavior, and behavioral disorders.

POL2020 Political Science

This course provides the student with the means and opportunity to engage their government as a concerned individual. Global political systems and principal theories will be examined and compared to events and decisions affecting each student at the local level. Throughout the course, students will be encouraged to become participants in their local government and to recognize and understand the various challenges that influence local decisions. The information and skills students learn in this course may be applied to many professional fields.

ETH2050 Ethics

Students taking this course will study ethical thought and ideals, with emphasis on the central assumptions of personal and social morality. Students will also investigate ethics and related problems in industry, civil society, and the typical American community.

ENV1010 Environmental Science

Environmental Science is a general course for non-biology majors in which students will explore the following basic principles: concepts required to understand interrelationships of the environment and the natural world; environmental problems both natural and man-made; risks associated with air, water, land pollution; health of humans and ecosystems; deforestation and climate change; overpopulation and environmental law, economics, and ethics.

Note(s):

All course prerequisites must be satisfied prior to admission to the program.
For program disclosure information, please visit

https://www.an.edu/programs/master-of-science-cybersecurity/

Technology Requirements

Following are the recommended general technical hardware/software specifications for students enrolled in all academic programs at the University of Fairfax. Please note that

a) these specifications are sufficient for the entire duration of the program,

b) need for specific applications/software would be determined by the actual course(s) registered and the availability of the applications, and

c) although students with Mac computers can access any applications/software by leveraging remote access tools, Mac platform is not recommended and supported, and

d) doctoral students will be required to user several open-source applications, hosted services, and publicly available virtual machines. This may include but is not limited to SAS (Statistical Analysis System) OnDemand, Oracle Virtual Box, Kali OS, Apache Web Server, GNU/Linux, OpenSSL, ROS (Robot Operating System), Blender (3D computer graphics), and Orange (Data Mining).

Minimum Recommended Specifications 

1. Ownership of either laptop or desktop is mandatory. Mobile devices such as Tablets/Smart Phones cannot be used for running any applications. Mobile devices may be used for simple tasks such as accessing Canvas courses for checking messages, grades, due dates, and read the slides. For other tasks such as taking test, uploading assignments, and participating in discussion forums, mobile devices are not recommended and must not be used.

2. These recommendations are universal across all academic programs and provide a basic format for all courses. As you move further into a degree program, these requirements may increase (only minimal) based on the expectations of the program and the availability of applications.

 Platform: Intel-based systems

Minimum

Better

Best

CPU 4 core 3.0 GHz. 6 core 3.0 GHz. 8 core 3.0 GHz.
RAM 16GB 32GB 32GB
Storage 500GB SSD 1TB SSD 1TB SSD
Graphics {Integrated} OR {2GB} OR {1GB DirectX 11} {Integrated} OR {4GB} OR {2GB DirectX 11} OR {NVIDIA 4GB} OR {NVIDIA 4GB DirectX 11} {4GB} OR {NVIDIA 4GB} OR {4GB DirectX 11} OR {NVIDIA 6GB DirectX 11}
Operating System Windows 10 or 11 64-bit (Professional Edition only), No Home Edition Windows 10 or 11 64-bit (Professional Edition only), No Home Edition Windows 10 or 11 64-bit (Professional Edition only), No Home Edition
Extras

2-3 USB 2.0 or 2-3 USB 3.0 Ports

 

Microphone

 

Camera

 

External USB Drive for backup (minimum 1 TB)

2-3 USB 2.0 or 2-3 USB 3.0 Ports

 

Microphone

 

Camera

 

External USB Drive for backup (minimum 1 TB)

2-3 USB 2.0 or 2-3 USB 3.0 Ports

 

Microphone

 

Camera

 

External USB Drive for backup (minimum 1 TB)

Recommended Standard Productivity Applications

Access, Excel, OneNote, Outlook, PowerPoint, Power BI, Project, Publisher, Visio, Sway, Word, Forms, Delve

 

Internet browsers like Microsoft Edge, Google Chrome, Safari, Firefox, etc. (recommend the use of multiple browsers)

 

Document Management Application – Adobe Acrobat Professional

 

Zoom Desktop Client (https://zoom.us/download)

 

Free Video / Photo Editing (select 1 or2) Application – PowerDirector (best) – Google, Promeo – Best App for Social Media, iMovie – Video Editor App for Beginners, Splice – Free Video Editor for Trimming and Cropping, Quik – Best Video Editor for Montages, KineMaster – Video Editing App For Experienced Editors, Filmmaker Pro – Best for Vertical Editing, InShot – Best Video Editor App for Aspiring Social Media Content Creators, Mojo – Best for Any Kind of Social Media Post, VivaVideo – Best for Beginners

 

Keep the system up to date with Windows Updates, .NET Framework etc.

 

Access, Excel, OneNote, Outlook, PowerPoint, Power BI, Project, Publisher, Visio, Sway, Word, Forms, Delve

 

Internet browsers like Microsoft Edge, Google Chrome, Safari, Firefox, etc. (recommend the use of multiple browsers)

 

Document Management Application – Adobe Acrobat Professional

 

Zoom Desktop Client (https://zoom.us/download)

 

Free Video / Photo Editing (select 1 or 2) Application – PowerDirector (best) – Google, Promeo – Best App for Social Media, iMovie – Video Editor App for Beginners, Splice – Free Video Editor for Trimming and Cropping, Quik – Best Video Editor for Montages, KineMaster – Video Editing App For Experienced Editors, Filmmaker Pro – Best for Vertical Editing, InShot – Best Video Editor App for Aspiring Social Media Content Creators, Mojo – Best for Any Kind of Social Media Post, VivaVideo – Best for Beginners

 

Keep the system up to date with Windows Updates, .NET Framework etc.

Access, Excel, OneNote, Outlook, PowerPoint, Power BI, Project, Publisher, Visio, Sway, Word, Forms, Delve

 

Internet browsers like Microsoft Edge, Google Chrome, Safari, Firefox, etc. (recommend the use of multiple browsers)

 

Document Management Application – Adobe Acrobat Professional

 

Zoom Desktop Client (https://zoom.us/download)

 

Free Video / Photo Editing (select 1 or 2) Application – PowerDirector (best) – Google, Promeo – Best App for Social Media, iMovie – Video Editor App for Beginners, Splice – Free Video Editor for Trimming and Cropping, Quik – Best Video Editor for Montages, KineMaster – Video Editing App For Experienced Editors, Filmmaker Pro – Best for Vertical Editing, InShot – Best Video Editor App for Aspiring Social Media Content Creators, Mojo – Best for Any Kind of Social Media Post, VivaVideo – Best for Beginners

 

Keep the system up to date with Windows Updates, .NET Framework etc.

Policy on Sync Sessions

  • The Sync Sessions must be held in weeks 2, 4, 6, 8.
  • The Sync Sessions must be spent having students defending and explaining their research assignment for that week. This time should not be spent lecturing as it should be structured in a manner to help prepare candidates in the process of defending and justifying their research.
  • The Sync Sessions must be held Thursday-Saturday.
  • If the Sync Sessions are held on a Thursday or Friday night, the times to begin should be 8pm, 9pm, or 10pm Est to accommodate students who are on the west coast.

Note: Certain courses may require specific software. Before registering for a course, please contact your instructor or a Student Services Representative for applicable software requirements.