Edmonds College Logo
Bachelor of Applied Science Degree

Course Descriptions

ITAD 300: Software Engineering

Credits: 5.0

The course journeys through multiple facets of software engineering, including software process models, software testing, requirements engineering, and systems engineering.  Additionally, the software development process is analyzed to explore conceptual design, product release, and user testing. Prerequisite(s): CS 143 or equivalent.

Course Level Objectives

  1. Explain software process models.
  2. Examine agile software development and understand its relevance in software engineering; explore techniques and approaches to project management.
  3. Describe critical components of requirements engineering, detailing the process from defining to documenting and maintaining requirements for the software design.
  4. Analyze various stages of software testing, including development, release, and user testing.
  5. Break down systems engineering, investigating sociotechnical systems, conceptual design, system procurement, development, operation, and evolution.
  6. Discuss ethical issues in software engineering.

ITAD 315: Discrete Mathematics for Developers

Credits: 5.0

Students are introduced to logic and proof, structures and algorithms, and number theory. Focus is also given to induction and recursion and counting and discrete probability to provide the essential foundation and framework for software development. Prerequisite(s): MATH& 141.

Course Level Objectives

  1. Utilize propositional logic, inference, and proof.
  2. Define structures, sets, functions, and matrices.
  3. Make use of mathematical induction and recursion definitions on arithmetic sequences.
  4. Examine counting theory and its application on a series of events to determine all possible outcomes.
  5. Define discrete probability and its purpose for determining outcomes of individual events.

ITAD 330: Database Models and Design

Credits: 5.0

This course examines the functional design and operation of relational databases in a computing environment. Database theory and appropriate modeling are discussed. The class additionally looks at the inner workings of databses and any connected software applications. Prerequisite(s): ITAD 300 and ITAD 315.

Course Level Objectives

  1. Define the parameters discovered during the information gathering process in order to successfully design a database that meets the requirements of the critical stakeholders.
  2. Identify best practices utilized in designing relational databases and the various forms of normalization in order to prevent redundancies and anomalies.
  3. Demonstrate knowledge of the structure of database tables, records, keys, and indexing.
  4. Design and implement software connections to databases using programming languages. 

ITAD 345: Usability Engineering

Credits: 5.0

This class explores foundational components of usability engineering.  Subjects covered include: defining usability engineering, establishing a sound usability engineering lifecycle, usability heuristics, and analysis of usability testing methods. Prerequisite(s): ITAD 300 and ITAD 315.

Course Level Objectives

  1. Define usability, examine examples, and consider tradeoffs, and address differences in end users.
  2. Examine the usability engineering lifecycle by detailing goal setting, prototyping, and follow up.
  3. Understand usability heuristics by learning the user dialogue and language in order to develop consistency and efficiency.
  4. Analyze usability testing: selecting appropriate test subjects, maintaining ethics with the test users, and utilizing interviews and questionnaires. 

ITAD 360: Application and Data Integration

Credits: 5.0

This course examines the principles and practices of developing processes to manipulate data in a variety of forms and structures for the purposes of enterprise integration, data analytics, or other data-intensive applications. Prerequisite(s): ITAD 330 and ITAD 345.

Course Level Objectives

  1. Understand the uses and types of Application Programming Interface (API) architectures.
  2. Design and work with Application Programming Interfaces (APIs).
  3. Analyze application design principles for working with big data sets.
  4. Create and manipulate data in Relational Database Management Systems (RDBMS) and manage multiple data sources.
  5. Work with unstructured data and manage data in motion.

ITAD 375: Cloud Computing

Credits: 5.0

This class takes a requisite look at the cloud computing landscape and offers insights into software as a service, platform as a service, and infrastructure as a service. Additionally, an analysis of creating scalable systems in elastic environments is made through the lens of software engineering. Prerequisite(s): ITAD 330 and ITAD 345.

Course Level Objectives

  1. Define software as a service, platform as a service, and infrastructure as a service.
  2. Define public, private, and community cloud computing, noting strengths and weaknesses for each.
  3. Analyze, compare and contrast, and use different current cloud platform services.
  4. Determine and implement best security practices for cloud computing environments.

ITAD 400: Mobile Application Development

Credits: 5.0

The class inspects the necessary procedures required in developing software for various mobile platforms. A survey analysis includes creating imperative user designs and interfaces for software applications which run on mobile devices and either utilize a network connection or execute natively. Security considerations for mobile applications are also examined. Prerequisite(s): ITAD 360 and ITAD 375.

Course Level Objectives

  1. Define user requirements for mobile applications and develop appropriate user interface design.
  2. Design mobile software applications for both native and network environments.
  3. Compare and contrast the requirements for mobile software application development and architectures in differing platform environments.
  4. Develop mobile applications utilizing various technologies and programming languages to solve problems.
  5. Discover and implement best practices for securing mobile applications.

ITAD 415: Introduction to Machine Learning

Credits: 5.0

The course takes an introductory look at machine learning, beginning with analyzing problems and creating appropriate tasks for training computing systems. Probability and similarities are utilized to aid in understanding and programming for the machine learning process. Artificial neural networks and how they are implemented to garner artificial intelligence are discussed.  Additional topics include: decision trees, computational learning theory, and performance evaluation. Prerequisite(s): ITAD 360 and ITAD 375.

Course Level Objectives

  1. Select the appropriate search problem to use for a machine learning task.
  2. Analyze the use of probability and similarities for machine learning.
  3. Examine artificial neural networks and how they mimic biological neural networks in order to assist machine learning from various inputs.
  4. Demonstrate knowledge of decision trees, the foundational mechanism that machine learning builds upon.
  5. Assess performance evaluation methodologies and measurement techniques implemented in machine learning.      

ITAD 430: Embedded Systems

Credits: 5.0

The course introduces students to programming embedded systems. It details the underlying development of system components: boot up, memory management, peripherals, and bus interfaces. Additional topics include: power management, distributed computing, and The Internet of Things (IoT). Prerequisite(s): ITAD 400 and ITAD 415.

Course Level Objectives

  1. Demonstrate the ability to analyze and create the boot up procedure, using startup code and bootloaders (allocated in memory) in order to load the embedded system.
  2. Implement memory management, utilizing the address space, by creating stack and heap storage for program usage.
  3. Configure and design peripheral interrupts and general purpose I/O for the embedded system.
  4. Develop distributed systems and understand an IoT architecture.

ITAD 445: Emerging Trends

Credits: 5.0

The course discusses current and emerging trends in the technology industry. It provides an opportunity for students to research and interact with innovative and disruptive technologies that are changing the programming landscape. Prerequisite(s): ITAD 430 and ITAD 460.

Course Level Objectives

  1. Discuss and analyze emerging trends within the industry.
  2. Classify and compare current and emerging trends, determining the magnitude in which they are affecting society and/or relevant disclipines.
  3. Evaluate current trends and formulate what future trends might develop as a result.

ITAD 460: Capstone I

Credits: 5.0

This course is the first of the two-part capstone practicum series.  Students will implement their acquired knowledge through the creation of defined projects, portfolios, and established internships in order to refine and master software development skills and abilities. Prerequisite(s): ITAD 400 and ITAD 415.

Course Level Objectives

  1. Detrmine the best software development model to implement for the capstone programming project.
  2. Select appropriate software application type, differentiating between mobile, cloud, and traditional programming applications, for development of the capstone programming project.
  3. Identify the best data algorithms to be used for the capstone programming project.
  4. Determine whether to use local or remote database storage for the capstone programming project.

ITAD 470: Capstone II

Credits: 5.0

This course is the second of the two-part capstone practicum series.  Students will implement their acquired knowledge through the creation of defined projects, portfolios, and established internships in order to refine and master software development skills and abilities. Prerequisite(s): ITAD 445 and ITAD 460.

Course Level Objectives

  1. Detrmine the best software development model to implement for the capstone programming project.
  2. Select appropriate software application type, differentiating between mobile, cloud, and traditional programming applications, for development of the capstone programming project.
  3. Identify the best data algorithms to be used for the capstone programming project.
  4. Determine whether to use local or remote database storage for the capstone programming project.