Applied Computing Curriculum

This page contains information on the curriculum of the Bachelor of Arts in Applied Computing.


Course descriptions

Follow the links below for descriptions of each course. Courses taught by the CSS Division include the following course prefixes:


Entry prerequisites

Visit the admissions page for information on prerequisite coursework.

Not sure about how to approach programming? Visit our Getting Started with Computer Programming page.


General education courses

All UW students must complete a common set of general education requirements. As an Applied Computing major, you will already have completed the English Composition (C), Additional Writing (W), Natural Science (NSc), and Reasoning (R) requirements by taking your prerequisite and core courses, but make sure to plan for completion of the following:

  1. Diversity (DIV) – 5 credits (almost always also fulfills A&H or SSc)
  2. Arts & Humanities (A&H) – 15 credits (cannot overlap with SSc)
  3. Social Sciences (SSc) – 15 credits (cannot overlap with A&H)

In general, these general education courses can overlap with the Second Discipline and Elective courses for your major.


Core courses

Applied Computing is a multidisciplinary major that integrates expertise in computer technology (your CSS courses) with another area of expertise called your “Second Discipline.” Together, these areas of expertise will become the focal point for your CSS 496 capstone course at the end of the program.

CSS courses

  • Statistics course
  • CSS 301: Technical Writing
  • Data Structures and Algorithms course
    • CSS 340: Applied Algorithmics; or
    • CSS 342: Advanced Data Structures, Algorithms, and Discrete Mathematics I; or
    • Both courses (one would count as a CSS Elective instead)
  • Business management course
    • CSS 350: Management for Computing Professionals; or
    • B BUS 300: Organizational Behavior, Ethics, and Inclusivity (if taking the Business Administration minor as second discipline of study)
  • CSS 360: Software Engineering
  • CSS 421: Hardware and Operating Systems
  • CSS 496: Applied Computing Capstone

Second discipline of study courses

All Applied Computing students must take a minimum of 25 credits (usually 5 courses) to complete this requirement. Credits earned beyond the minimum of 25 can count towards Upper Level General Electives (below) as long as they are 300-level or higher.

Options for your second discipline include:

  • A second undergraduate major or a minor offered by UW Bothel
  • A minor offered by a different UW campus
  • An approved custom cluster of interrelated courses in a non-computing discipline, totaling at least 25 credits
    • 15 credits at 300-level or higher
    • 10 credits at 100-level or higher

Second discipline contract

To ensure you have a well-formed plan for your major, you must declare your Second Discipline to the Applied Computing program by submitting this contract within your first year in the major:


Elective courses

When considering options for their elective and secondary discipline courses, Applied Computing students should reflect on the type of work that they are interested in pursuing after graduation.

  • CSS Electives (25 credits): Cannot overlap with other degree requirements
    • 10 credits at 400-level
    • 5 credits at 300-level or higher
    • 10 credits at 200-level or higher
    • Maximum of 15 total credits of CSS 397/495/498/499 (Variable Credit Courses)
    • Maximum of 10 total credits of CSS 290/390/490 (Special Topics Courses)
  • Upper Level General Electives (10 credits): Cannot overlap with other degree requirements
    • 10 credits at 300-level or higher in any subject area

Petitions

Computing-related courses that are not listed above are considered on a case-by-case basis. If you have a syllabus, letter from the instructor, or other detailed description for the class you want to use as an elective, you can submit a petition to request for the course to count.

Learning goals

The learning objectives for the Bachelor of Arts in Applied Computing and the Bachelor of Science in Computer Science & Software Engineering are described in terms of competencies achieved by students within the CSS programs.

The Foundation Level includes very broad competencies that are found in every CSS core course. The Technical Level is a set of broadly important competencies specific to the software engineering and computer science professions, to be developed in every undergraduate CSS education, across the set of required core courses. Competencies specific to the interests and needs of the individual student are achieved in the CSS advanced elective courses.

Foundation Level

Analysis & Problem Solving

  • Information Gathering: Effectively searches out and organizes pertinent information before making decisions or taking actions.
  • Efficiency: Identifies ways to solve problems or complete tasks smoothly and effectively; choose the optimum solution form and set of alternative possibilities.
  • Systemic Thinking: Follows a well-ordered and logical approach to analyzing problems, organizing work, and searching for solutions.
  • Thoroughness: Ensures that work is done correctly, completely, on time and to the highest standards.
  • Creativity: Challenges existing assumptions, proposes novel alternative ways to framing or solving a problem, pushes the boundaries of knowledge.
  • Learning by Doing: Demonstrates the ability to learn continuously, capitalize on mistakes, exploit new knowledge, increase productivity over time.

Interpersonal Skills

  • Collaboration & Team Building: Collaborates effectively with others to achieve a common objective, creates an environment that fosters and sustains successful teamwork.
  • Leadership: Champions new ideas, persuades and influences, breaks logjams, and promotes momentum toward solving problems.
  • Writing & Speaking: Expresses ideas correctly and convincingly in reports, memos and other forms of written communication
  • Managing Change & Uncertainty: Adapts to changing circumstances, deals positively with uncertainties and contingencies, manages crises effectively.

Management Skills

  • Project Management: Plans, monitors, and controls projects; ensures efficient utilization of resources; keeps projects on schedule and within budgeted resource allocation.
  • Project Administration: Administers and maintains projects, using appropriate monitoring tools and complying with relevant standards and reporting requirements.
  • Risk Management: Foresees and takes action pro-actively in anticipation of future problems and opportunities.
  • User Orientation: Gains understanding of users needs by immersing self in users environment; carefully studies user’s requirements; puts self in users shoes.

Technical Level

General Business, Social & Technical

  • Business Case Justification: Justifies project expenditures, equipment and other resources in terms of business costs, benefits and risks.
  • Technology Evaluation and Selection: Evaluates and selects software and hardware appropriate to the application, architecture and resource constraints; maintains awareness and understanding of emerging technology.
  • Process Reengineering: Performs business requirement analysis, using appropriate tools and methodologies to maximize organizational performance.
  • Mathematical Principles and Techniques: Understands theory and application of numerical, statistical, set theory, and other mathematical techniques in the context of applications and systems programming.
  • General Software Systems: Has general understanding of the principles and applications of software development and design; understands the relationship between software development and other functions in the business organization.
  • Social Implications of Science & Technology: Understands the interaction between science and technology and the broader social, political, and organizational environment; critically assesses ethical implications of computing technology.
  • Technical Writing: Designs and writes effective guidelines, standards, procedures, processes, applications, using appropriate methods, tools and delivery options.

Application Programming

  • Requirements Definition and Analysis: Elicits and clearly defines user\’s needs, assessing potential solutions against benefits and risks; uses appropriate tools for analyzing requirements and creating appropriate data and work flow models.
  • Software Development Life Cycle: Understands and effectively manages the process of developing designing, testing, and delivering a software application.
  • Functional Design: Identifies system platform, components, inputs, interface requirements, and dependencies which ensure that the system will achieve its objectives.
  • Testing: Plans, executes, and validates results of unit, systems, and acceptance testing to ensure conformity to user\’s requirements.
  • Implementation: Plans and executes smooth integration of an application into the computing environment.
  • Programming: Comprehends and applies principles of programming; effectively translates design specifications into appropriate software components.
  • Collaborative Programming Techniques: Uses methods and tools that support cooperative software development among users in different locations.
  • Quality Assurance: Employs appropriate quality assurance standards and procedures to ensure delivery of bug-free applications that meet user\’s needs.

Infrastructure/Operations

  • Technology Integration: Integrates various technologies, systems, applications, database and components across multiple platforms.
  • Hardware Architecture: Understands hardware components, architecture, and interrelationship among hardware, software, and operating systems.
  • Performance Measurements & Tuning: Uses appropriate performance metrics to monitor, optimize and troubleshoot system performance.
  • Operating Systems: Understands operating systems fundamentals including: file systems, process, and memory management.
  • System Administration: Understands appropriate procedures and techniques for management and administrating a network, data center, or other computer system; manages changes to the computing environment.
  • Technical Training and Support: Provides user support through analysis and problem solving to facilitate installation, implementation, maintenance, education, and documentation of computer hardware and software systems.