Computer Science, BA

  • Student using computer

    Build Career Flexibility with the BA Degree

    With this flexible degree option, you gain a solid computer science foundation and then build on it in any direction you choose, with more computer science courses or courses in any other major such as music, art, or mathematics.

    While the three BS in Computer Science tracks gear students toward particular goals, the BA in Computer Science track is more flexible and allows you to choose any other focus or none.

    The track may be used to prepare for the same jobs the Computer Science/Software Engineering track prepares students for or for a variety of other computer-related jobs, depending on what you select for electives.

    Enrollment and Graduation Statistics

    The Bachelor of Arts track currently has 60 students enrolled in the program. In 2015, six (6) students completed the program received their BA degree in Computer Science.

    Course Requirements

    • Computer Science: 37 credits
    • Additional Requirements: 6-12 credits
    • Liberal Studies: 48 credits
    • Free Electives: 23-29 credits

    Note: See the IUP Undergraduate Academic Catalog for official degree requirements. This list is for basic reference only.

  • Computer Science

    Required Courses

    • COSC 105 - Fundamentals of Computer Science,
      3 credits
    • COSC 110 - Problem Solving and Structured Programming, 3 credits
    • COSC 210 - Object-Oriented and GUI Programming,
      3 credits
    • COSC 220 - Applied Computer Programming,
      4 credits
    • COSC 300 - Computer Organization and Assembly Language, 3 credits
    • COSC 310 - Data Structures and Algorithms,
      3 credits
    • COSC 341 - Intro to Database Management Systems, 3 credits
    • COSC 380 - Seminar in Computing Profession and Ethics, 2 credits
    • COSC 480 - Seminar on Technical Topics, 1 credits

    Controlled Electives

    • COSC/MATH 250 - Introduction to Numerical Methods, 3 credits
    • COSC 216 - Introduction to Cybersecurity, 3 credits [2]
    • COSC 319W - Software Engineering Concepts, 3 credits
    • COSC 320 - Software Engineering Practice, 3 credits
    • COSC 345 - Computer Networks, 3 credits
    • COSC/IFMG 354 - Testing and Controlling LANs, 3 credits
    • COSC 355 - Computer Graphics, 3 credits
    • COSC 356 - Network Security, 3 credits
    • COSC 362 - UNIX Systems, 3 credits
    • COSC 365 - Web Architecture and Application Development, 3 credits
    • COSC 481 - Special Topics in Computer Science, 1-4 credits
      -(Only sections approved for majors)
    • COSC 482 - Independent Study, 1-4 credits
    • COSC 493W - Internship in Computer Science, 12 credits [3]
    • IFMG 455 - Data Warehousing and Mining, 3 credits

    Upper-Level Electives by Categories: 6 credits [4]

    • Artificial Intelligence: COSC 405
    • Computer Architecture: COSC 410
    • Database Management: COSC 444
    • Numerical Methods: COSC 427, 451
    • Systems Programming: COSC 430, 432
    • Theory of Languages: COSC 420, 424, 460

    Liberal Studies

    Note: As outlined in Liberal Studies section with the following specifications:

    • Mathematics (3 credits): MATH 125
    • Liberal Studies electives (3 credits): MATH 216

    Additional Requirements

    • ENGL 222 Technical Writing, 3 credits
    • Foreign Language Intermediate Level, 0-6 credits
    • MATH 219 Discrete Mathematics, 3 credits 


    • MATH 125 can be substituted by MATH 121.
    • Select at least six credits from the list of controlled electives. Note: Only four credits of COSC 493W may be counted toward these six credits.
    • COSC 216 cannot be counted for major credit if a student does a cyber security minor.
    • COSC 493W may be selected in either the second semester of the junior year or the first semester of the senior year. If COSC 493W is selected and approved, COSC 380 should be taken in the immediately preceding semester.
    • Select at least two additional courses, from at least two different categories, from the list of upper-level electives.

    Program Educational Objectives

    Our graduates are expected to attain these objectives within a few years of graduation:

    1. Possess analytical skills to assess and troubleshoot technical problems and to research and analyze alternatives.
    2. Possess verbal skills to interact with customers, colleagues, and managers, and written communication skills to describe ideas and document processes. Have the ability to explain complexity, or what others find to be ambiguous into understanding.
    3. Possess the ability to think logically and the capacity to understand technical and business problems and design solution alternatives.
    4. Possess an attention to detail the ability to thoroughly think through ideas and problems, then implement and test total solutions.
    5. Possess an ability to understand and vision beyond the immediate problem.
    6. Possess an ability to research and analyze how others have understood application needs, and then identify technical alternatives and their use to meet the need.
    7. Possess an ability to anticipate effect and outcomes.
    8. Maintain professional work ethic, appearance and acceptance and demonstration of personal responsibility.
    9. Possess an ability to collaborate as a team member and team leader to affect technical solutions and solve business problems, providing business outcomes.

    Student Outcomes   

    Upon graduation, all computer science students are expected to possess the following knowledge, skills, and behaviors:

    1. Apply computer science knowledge to application areas from science and industry.
    2. Apply appropriate data structures and algorithms to analyze and solve new problems.
    3. Apply software engineering techniques to designing, implementing, documenting, testing, and maintaining software systems.
    4. Contribute to improving the design and implementation of databases.
    5. Use more than one programming language and choose an appropriate ones for a project.
    6. Work with and communicate effectively with professionals in various fields.
    7. Continue a lifelong professional development in computing.
    8. Act ethically and professionally.

    In addition a graduate of the Bachelor of Arts track will be prepared to:

    1. Apply knowledge of computing to an area not usually associated with computer science.
    2. Be particularly effective in communicating with others of different cultural and educational background regarding computing issues.
    3. Be employed in entry-level positions in business.