B.S. Software Development Areas of Study
The WGU Bachelor of Science in Software Development program was developed in consultation with our IT Council, which is made up of industry experts representing all facets of the discipline from the high-tech business world to national research laboratories. The degree uses industry-endorsed certifications to validate a student’s skill competency.
Information Technology Fundamentals
Introduction to IT
This course introduces students to information technology as a discipline and the various roles and functions of the IT department as business support. Students are presented with various IT disciplines including systems and services, network and security, scripting and programming, data management, and business of IT, with a survey of technologies in every area and how they relate to each other and to the business.
IT Foundations helps students gain an understanding the personal computer components, and their function, in a desktop system as well as computer data storage and retrieval; classifying, installing, configuring, optimizing, upgrading, and troubleshooting printers, laptops, portable devices, operating systems, networks, and system security; recommending appropriate tools, diagnostic procedures, preventative maintenance and troubleshooting techniques for personal computer components in a desktop system; strategies for identifying, preventing, and reporting safety hazards and environmental/human accidents in a technological environments; and effective communication with colleagues and clients as well as job-related professional behavior. This course prepares a student for the CompTIA A+ part I certification exam.
IT Applications helps students gain an understanding the personal computer components, and their function, in a desktop system as well as computer data storage and retrieval; classifying, installing, configuring, optimizing, upgrading, and troubleshooting printers, laptops, portable devices, operating systems, networks, and system security; recommending appropriate tools, diagnostic procedures, preventative maintenance and troubleshooting techniques for personal computer components in a desktop system; strategies for identifying, preventing, and reporting safety hazards and environmental/human accidents in a technological environments; and effective communication with colleagues and clients as well as job-related professional behavior. This course prepares a student for the CompTIA A+ part II certification exam.
Critical Thinking and Logic
This course introduces students to the basic concepts of logic and critical thinking. Students are introduced to the use of logical principles to accurately express and establish the validity of various forms of reasoning. The main objective of the course is for students to understand the range of concepts and techniques employed by critical thinkers. Students learn how to correctly apply the principles of logic and cultivate the skills they need to be able to recognize, analyze, and critically evaluate arguments.
Elements of Effective Communication
Elements of Effective Communication introduces learners to elements of communication that are valued in college and beyond. Materials are based on five principles: being aware of your communication with yourself and others; using and interpreting verbal messages effectively; using and interpreting nonverbal messages effectively; listening and responding thoughtfully to others, and adapting messages to others appropriately.
English Composition I
This course introduces learners to the types of writing and thinking that is valued in college and beyond. Students will practice writing in several genres and several media, with emphasis placed on writing and revising academic arguments.
English Composition II
English Composition II introduces learners to research writing and thinking that are valued in college and beyond. The Composition II course at WGU should be seen as a foundational course designed to help undergraduate students build fundamental skills for ongoing development in writing and research. Students will complete an academic research paper.
Introduction to Humanities
This introductory humanities course allows students to practice essential writing, communication, and critical thinking skills necessary to engage in civic and professional interactions as mature, informed adults. Whether through studying literature, visual and performing arts, or philosophy, all humanities courses stress the need to form reasoned, analytical, and articulate responses to cultural and creative works. Studying a wide variety of creative works allows students to more effectively enter the global community with a broad and enlightened perspective.
Introduction to Geography
This course will discuss geographic concepts, places and regions, physical and human systems and the environment.
Understanding algebraic functions and their graphs as well as methods for solving equations and inequalities allows you to model real-world phenomena and solve problems. Engaging in this course will help you build these skills, as well as build a strong foundation in algebra for further mathematics courses you may complete for your degree program. Additionally, this course aims to help you build your problem-solving and critical-thinking skills, which can be used in any course, job, or situation.
Introduction to Physics
This course provides students with a comprehensive overview of the basic principles and unifying concepts of physics. You will integrate conceptual knowledge with practical and laboratory skills.
Introduction to Probability and Statistics
Web Development Fundamentals
These courses introduce the fundamentals of web development, which will enable the student to design, develop, and deploy a website. Students will create web content using HTML 5 and gain the knowledge to style and create layouts using Cascading Style Sheets (CSS). Students will also learn how to host and upload a website to a free web server.
Network and Security
Network and Security – Foundations
This course introduces students to the components of a computer network and the concept and role of communication protocols. The course will cover widely used categorical classifications of networks (i.e CAN, LAN, MAN, WAN) as well as network topologies, physical devices, and layered abstraction. The course will also introduce students to basic concepts of security, covering vulnerabilities of networks and mitigation techniques, security of physical media, and security policies and procedures.
Network and Security – Applications
This course introduces the student to network security concepts including encryption, access control, and authentication. The course covers basic concepts of security, a survey of hardware and software used for securing information within a network, and best practices for protecting information and assets. This course prepares a student for the CompTIA Security+ certification exam.
This course focuses on network topologies including: protocols, ports, addressing schemes, routing, and wireless communication standards; physical and logical topologies, including wiring standards; differentiating, installing, and configuring network devices; troubleshooting network connectivity and performance issues as well as common security threats; and using hardware and software utilities to track and maintain network performance in optimized state. This course prepares a student for the CompTIA Network+ certification exam.
Scripting and Programming
Scripting and Programming - Foundations
This course provides an introduction to programming covering data structures, algorithms, and programming paradigms. The course presents the student with the concept of an object as well as the object-oriented paradigm and its importance. A survey of languages is covered and the distinction between interpreted and compiled languages is introduced.
Scripting and Programming - Applications
This course provides an introduction to programming. It covers data structures, algorithms, and programming paradigms. It presents the concept of an object as well as the object-oriented paradigm and its importance. A survey of languages is covered and the distinction between interpreted and compiled languages is introduced.
Leadership and Management
Principles of Management
This course addresses strategic planning, total quality, entrepreneurship, conflict and change, human resource management, diversity, and organizational structure.
Organizational Behavior and Management
This course explores how to lead and manage effectively in diverse business environments. Students are asked to demonstrate the ability to apply organizational leadership theories and management strategies in a series of scenario-based problems.
Operating Systems for Programmers
This course covers operating systems from the perspective of a programmer including the placement of the operating system in the layered application development model. Primarily OSs provide Memory Management, Task Scheduling, and CPU allocation. Secondarily, OSs provide tools for file storage/access, permission control, event handling, network access, and cross-process interaction. OSs also provide tools for debugging problems within a single process or within groups of programs.
Data Management - Foundations
This course introduces students to the concepts and terminology used in the field of data management. They will be introduced to Structured Query Language (SQL) and will learn how to use Data Definition Language (DDL) and Data Manipulation Language (DML) commands to define, retrieve, and manipulate data. This course covers differentiations of datastructured vs. unstructured and quasi-structured (relational, hierarchical, XML, textual, visual, etc); it also covers aspects of data management (quality, policy, storage methodologies). Foundational concepts of data security will be included.
Data Management - Applications
This course covers conceptual data modeling and provides an introduction to MySQL. Students will learn how to create simple to complex SELECT queries including subqueries and joins, and will also learn how to use SQL to update and delete data. Topics covered in this course include exposure to MySQL; developing physical schemas; creating and modifying databases, tables, views, foreign keys/primary keys (FKs/PKs), and indexes; populating tables; and developing simple Select-From-Where (SFW) queries to complex 3+ table join queries.
Data Management for Programmers
This course introduces storage of various kinds and formats of data. Students will use standard SQL to demonstrate query capabilities provided by database management systems. The course will further cover data-related topics: data presentation, security (access and encryption), transaction management, and administration (backup, disaster recovery, and performance tuning). This course will address advanced topics such as data warehousing, data mining and distributed databases.
Students will learn the fundamentals of dynamic data structures, such as bags, lists, stacks, queues, trees, hash tables, and their associated algorithms, using object-oriented design and abstract data types as a design paradigm. The course emphasizes problem solving and techniques applied to the design of efficient, maintainable software applications. Students will implement simple applications using the techniques learned.
Business of IT
Business of IT – Project Management
This course introduces the student to the project management & business analysis process within the context of an IT project. Fundamental concepts of project management will be covered including all phase of project management during a system life cycle including business analysis, requirements capturing, issue tracking, and release planning. Additional topics to include: development environments (dev, integration, QA, production), help desk and support, IT planning for business continuity. This course prepares a student for the CompTIA Project+ certification exam.
Business of IT – Applications
This course introduces IT students to information systems (IS). The course includes important topics related to management of information systems (MIS), such as system development, and business continuity. The course also provides an overview of management tools and issue tracking systems.
This course focuses on skills and concepts students need to know, to understand, and to apply object-oriented concepts in the Java programming. This course prepares a student for the Oracle Certified Associate, Java SE 7 Programmer certification exam.
This course introduces the concepts of software engineering to IT core graduates. It is a standalone course that is critical to the IT program. It emphasizes the need for a disciplined approach to software engineering by providing an overview of software and software engineering processes and why they are challenging. A generic process framework is covered to provide the groundwork for formal process models. Prescriptive process models (e.g., Waterfall Model) and Agile Development is included. An introduction to the elements/phases of software engineering is introduced which includes Requirements Engineering (including UML, Use Cases), Design Concepts, Software Quality and Software Testing, and Project Management.
Software II – Advanced Java Concepts
This course focuses on skills and concepts students need to know, to understand, and write Perl scripts. This course prepares a student for the Oracle Certified Professional, Java SE 7 Programmer certification exam.
Client-Server Application Development
This course introduces students to client/server application programming classes, structures, and concepts. The course covers networking and client/server, streams, threads, URLs, URIs, HTTP, and socket programming concepts.
Mobile Application Development
This course introduces students to programming for mobile devices using a Software Development Kit (SDK). Students with previous knowledge of programming will learn how to install and utilize a SDK, build a basic mobile application, build a mobile applications using a graphical user interface(GUI), adapt applications to different mobile devices, save data, execute and debug mobile applications using emulators, and deploy a mobile application.
The technical writing requirement draws from the evidence students have accumulated in improved proficiency in research and professional written communication; the ability to think about and write for different audiences; and improved style, grammar and syntax.