Bachelor of Science (BS)

The Flagship Program

The Bachelor of Science program is the degree that most students pursue and addresses the more formal requirements for most Masters’ or Ph. D. Level programs. It provides the best all-around preparation for those intending to make a career in computing areas. View the BS Standard Track Flow Chart and full list of Computer Science Course Descriptions.

The learning outcomes of the program focus on the ability to;

  • identify, formulate, and solvecomplex engineering problems by applying principles of engineering, science, and mathematics
  • apply engineering design to produce solutions that meet specified needs with consideration of public health, safety, and welfare, as well as global, cultural, social, environmental, and economic factors
  • communicate effectively with a range of audiences
  • recognize ethical and professional responsibilities in engineering situations and make informed judgments, which must consider the impact of engineering solutions in global, economic, environmental, and societal contexts
  • function effectively on a team whose members together provide leadership, create a collaborative and inclusive environment, establish goals, plan tasks, and meet objectives
  • develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions
  • acquire and apply new knowledge as needed, using appropriate learning strategies.
High School Preparation

You should have the basic college preparatory courses in high school. Courses that develop the ability to think logically, to organize and to analyze are especially recommended (e.g., algebra, geometry, trigonometry, statistics, and calculus) if you plan to pursue this degree.

Plan of Study

Those wishing to earn a BS degree typically start with the core computer science courses CSCI 160 and 161. The major requires the courses from the following list;

CSCI 160: Computer Science I (fall and spring)
CSCI 161: Computer Science II (fall and spring)
CSCI 213: Modern Software Development (fall)
CSCI 222: Discrete Mathematics (fall and spring)
CSCI 313: Advanced Software Development (spring)
CSCI 336: Theoretical Computer Science (spring)
CSCI 366: Database Systems (fall and spring)
CSCI 372: Comparative Programming Languages (fall and spring)
CSCI 374: Computer Organization and Architecture (fall and spring)
CSCI 445: Software Projects Capstone (spring)
CSCI 455: Networking and Parallel Computation (fall and spring)
CSCI 467: Algorithm Analysis (spring)
CSCI 474: Operating Systems Concepts (fall and spring)
CSCI 489: Social Implications of Computers (fall)
MATH 165: Calculus I (fall and spring)
MATH 166: Calculus II (fall and spring)
STAT 367: Probability (fall)
STAT 368: Statistics (spring)

Computer Science Capstone Courses
CSCI 445:
 Software Projects Capstone is typically taken during the last spring semester prior to degree completion and CSCI 489: Social Implications of Computers is typically taken during the last fall semester prior to degree completion.


Requirements for the STANDARD TRACK (view Standard Track Flowchart

MATH 129: Basic Linear Algebra OR
CSCI 277: Introduction to UNIX

ELECTIVES: Students need to take an additional 9 credits of CSCI 300-400 electives that are not part of the core requirement as well.



Requirements for the CYBERSECURITY TRACK (view Cybersecurity Track Flowchart

CSCI 277: Introduction to UNIX

ELECTIVES: Students need to take an additional 9 credits of cybersecurity electives from CSCI 401-410, CSCI 469: Network Security, or CSCI 473: Foundations of the Digital Enterprise



Requirements for the DATA SCIENCE TRACK (view Data Science Track Flowchart

MATH 129: Basic Linear Algebra

ELECTIVES: Students need to take an additional 9 credits of data science electives from CSCI 420-428, CSCI 436: Intelligent Agents, CSCI 450: Cloud Computing, CSCI 479: Introduction to Data Mining, or GEOG 455: Introduction to Geographic Information Systems



Requirements for the SOFTWARE ENGINEERING TRACK (view Software Engineering Track Flowchart

MATH 129: Basic Linear Algebra OR
CSCI 277: Introduction to UNIX

ELECTIVES: Students need to take an additional 9 credits of software engineering electives from CSCI 411-419, CSCI 450: Cloud Computing, CSCI 473: Foundations of the Digital Enterprise, or CSCI 488: Human-Computer Interaction

Additional university, college, and departmental requirements include;

 Communication (C):  12 credits 

 ENGL 110: College Composition I 
 ENGL 120: College Composition II
 COMM 110: Fundamentals of Public Speaking
 Upper Division Writing 

 Quantitative Reasoning (R) 3 credits 
 Science and Technology (S):   10 credits 
 Humanities and Fine Arts (A) 6 credits 
 Social and Behavioral Sciences (B) 6 credits 
 Wellness (W) 2 credits 
 Cultural Diversity (D) *† 
 Global Perspectives (G) *†  


 Total Credits: 39 credits 

* May be satisfied by completing courses in another General Education category.

General education courses may be used to satisfy requirements for both general education and the major, minor, and program emphases, where applicable.  Students should carefully review major requirements to determine if specific courses can also satisfy these general education categories.

A list of university approved general education courses and administrative policies are available here.

Students should consult the current general education requirements for specific courses in the NDSU Catalog. If you consult the General Education Requirements, or the College requirements for a B.S. as described in the NDSU Catalog, you may see requirements that appear to be slightly different from those described above, as well as other categories of requirements, such as Quantitative Reasoning and Science & Technology. However, if you satisfy the requirements described above, you should have any of these other requirements satisfied automatically. A grade of C or better is required in all Computer Science (CSCI) courses used toward the major. All core Computer Science courses must be taken at NDSU or transferred in when the student enters NDSU as a transfer student. Actual student schedules for each semester will vary depending on start year, education goals, applicable transfer credit, and course availability. Students are strongly encouraged to work with their academic advisor on a regular basis to review degree progress and customize an individual plan of study.

Top of page