Computer Science Major, Concentration in Software Development

Software systems impact all aspects of life, from phones, to cars, to work lives, and beyond. Software developers analyze the software and infrastructure needs of people and organizations and then coordinate the design, implementation, and testing of the solutions. This concentration provides students with the skills, techniques, and knowledge needed to pursue a career in this field.

Program Outcomes for the Major in Computer Science, Concentration in Software Development

Graduates of the Software Development Concentration will be able to (in addition to the Computer Science Major Program Learning Outcomes):

  • Work with stakeholders to specify, design, develop, test, modify, and document a software system.
  • Organize, plan, follow, and improve on, appropriate software development methodologies and team processes for a software project.
  • Evaluate, select, and use appropriate tools for source code control, build, test, deployment, and documentation management.
  • Evaluate, select, and apply appropriate testing techniques and tools, develop test cases, and perform software reviews.
  • Apply professional judgement, exhibit professional behavior, and keep skills up-to- date

A laptop computer running Windows, macOS, or Linux is required for courses in the Computer Science program. 16GB of memory is suggested. A Chromebook will not work.

Requirements for the Concentration in Software Development

12 credits in addition to the Core, Elective, and Ancillary courses.

Core Courses(38 credits)
CS-101Basics of Computer Science3
CS-140Introduction to Programming4
CS-155Computer Networking and Security3
CS-225Discrete Structures I3
CS-242Data Structures3
CS-248Algorithm Analysis3
CS-254Computer Organization and Architecture4
CS-282Unix Systems Programming3
CS-286Database Design and Applications3
CS-295Discrete Structures II3
CS-348Software Process Management3
CS-373Operating Systems3
Elective Courses(3 credits)
Credits in Computer Science courses at the 300 level or above 13
Ancillary Requirements 2(31 credits)
CM-110Public Speaking3
EN-252Technical Writing3
UR-230Technology, Public Policy and Urban Society3
or PH-134 Computing Ethics
MA-150Statistics I 33
or MA-302 Probability and Statistics
MA-200Calculus I4
2 lab science courses8
2 approved math or science course chosen from a department-approved list of courses 47
Requirements for the Concentration in Software Development(9 credits)
CS-343Software Construction, Design and Architecture3
CS-443Software Quality Assurance and Testing3
CS-448Software Development Capstone3
Total Credits81

Up to 3 credits of Internship (CS-498) and up to 3 credits of Independent Study (CS-499) may be used to satisfy the major elective requirements.


31 credits (may apply to LASC requirements). These ancillary courses cannot be taken on a pass/fail basis


Students planning a Mathematics minor or a Computer Science/Mathematics double major should take MA-302.


Students planning a Mathematics minor or a Computer Science/Mathematics double major should take math courses required for the Mathematics minor/major.

Department of Computer Science: Software Development Concentration
Sample Timeline for Completion of Degree

This four-year plan assumes a Math Placement score of at least 6.

Plan of Study Grid
Year One
Semester OneCredits
CS-101 Basics of Computer Science 3
EN-101 College Writing I 3
MA-190 Pre-calculus (or Math/Science Course) 1,2 4
LASC Freshman Seminar (FYS) 3
LASCLASC Elective (CON) 3 3
Semester Two
CS-140 Introduction to Programming 4
CS-155 Computer Networking and Security 3
EN-102 College Writing II 3
MA-200 Calculus I (QR) 4
Year Two
Semester Three
CS-225 Discrete Structures I 3
CS-242 Data Structures 3
CS-286 Database Design and Applications 3
EN-252 Technical Writing 3
Technology, Public Policy and Urban Society (HBS)
or Computing Ethics
Semester Four
CS-282 Unix Systems Programming 3
CS-295 Discrete Structures II 3
CM-110 Public Speaking (TLC) 3
LASCLASC Elective (GP) 3 3
LASCLASC Elective (CA) 3
Year Three
Semester Five
CS-248 Algorithm Analysis 3
CS-254 Computer Organization and Architecture 4
CS-348 Software Process Management 3
Statistics I 4
or Probability and Statistics
LASCLASC Elective 3
Semester Six
CS-373 Operating Systems 3
CS-443 Software Quality Assurance and Testing 3
LASCMath or Science course 2 3-4
LASCLab Science (NSP) 4
LASCLASC Elective (USW) 3 3
Year Four
Semester Seven
CS-343 Software Construction, Design and Architecture 3
LASCLASC Elective (NSP) 3 4
SELECTGeneral Elective 3
SELECTGeneral Elective 3
Semester Eight
CS-448 Software Development Capstone 3
LASCLASC Elective (ICW) 3 3
SELECT300+ Level Elective in Major 3
SELECTGeneral Elective 3
SELECTGeneral Elective 3
 Total Credits120-121

If the students math placement score requires her/him to take MA-190, it should be taken this semester, so that MA-200 can be taken in the Spring semester. EN-101 & EN-102 satisfy LASC writing requirements.


All Math and Science courses must be selected from a list of department approved courses.


The sequence of LASC courses marked with 3 is a suggestion but serves as a reminder that LASC designated courses must be taken to satisfy the LASC requirements


Students planning a Mathematics minor or a Computer Science/Mathematics  double major should take MA-302.


Once LASC requirements are satisfied, students may select general requirements. Please refer to the University Catalog for specific curriculum details regarding major and LASC requirements.


Students are required to meet with their academic advisor to review their courses for the upcoming semester. A minimum of 120 credits is required for graduation.  First-year and transfer students with 45 or fewer credits at the time of admission shall complete two academic programs (a major/major or major/minor) to qualify for graduation.  For more information, please view the MajorPlus section of this catalog.