Skip to content

B.S. in Computer Science: Curriculum

Curriculum Details

120 Total Credits Required

To receive a bachelor’s degree from Concordia University, St. Paul, all undergraduate students must complete the general education requirements. The online bachelor’s degree in computer science also requires 55 credit hours of coursework covering programming with Java, modern web design, database design, computer architecture, and more.

The computer science major can be completed in seven semesters, although your transfer credits and general education coursework will vary the time it takes you to finish.

Required Courses

This course introduces students to problem solving using the Python programming language. Students will learn computer hardware concepts, number systems, and Boolean algebra. The course will cover Python programming constructs such as conditional statement, iteration, function, class and object. Students are expected to take a problem description and write a program in Python that provides a solution to the problem. This course assumes the student has no prior programming experience.

Choose ONE of the following:

This course covers mathematical concepts that are widely used in the field of Computer Science, including discrete math, logic, and proofs. (Prerequisite: Minimum grade of C- in MAT 103, or Level 3 on the Math Placement Exam)

This course explores the concepts of limit and continuity, investigates techniques of differentiation and its applications, introduces integration, and provides the framework for the Fundamental Theorem. (Prerequisite: Minimum grade of C- in MAT 125 or level 5 placement on the Math Placement Exam.)

This course teaches student problem solving with structured programming techniques using Java. The topics covered includes variables, primitive data types, conditional statements, loops, static methods, file processing, string, arrays, and some concepts of object oriented programming. This course requires that students have some programming background. (Prerequisite: Minimum grade of C- in CSC 115)

In this course, students will start by learning basic HTML and CSS for building static Web pages, and later use JavaScript to build an interactive Website. Students will also learn about responsive Web development, user experience concepts, and accessibility topics. A prototyping tool will be used for wire framing, designing and prototyping.

This course serves as an introduction to formal proofs and is prerequisite for several upper level math courses. Additional topics covered include logic, set theory, function and relations. (Prerequisite: C- or better in MAT 135 or CSC 175)

Utilize a database tool to create a prototype for output that meets real-life business outcomes. Learn the fundamentals of database design including the relational model, SQL, and data warehousing. Practice working individually and in teams to learn the normalization process, minimizing opportunities for redundant, inaccurate data. Other topics include design implications for speeding data access (e.g. de-normalization), and the emergence of unstructured data systems.

This course teaches student problem solving with object oriented programming techniques using Java. The topics include exception handling, generics, object oriented programming, design patterns, and data structures. This course assumes that students already have a good programming background. (Prerequisite: Minimum grade of C- in CSC 222)

This course provides an overview of programming and database techniques used in server-side programming. Topics include handling web form data, SQL, database design, security considerations, stored procedures and JSON. (Prerequisite: minimum grade of C- in CSC 135 and CSC 230)

This course is designed as an introduction to the functional components of computer systems, including their hardware implementation and management at different levels, and their interaction, characteristics, and performance. The course also covers practical implications for computer programming. (Prerequisite: Minimum grade of C- in CSC 115 or equivalent)

The course provides a comparative survey of programming language paradigms. It includes an overview of the properties, applications, syntax, and semantics of selected object-oriented, functional, comparative, and declarative programming languages. (Prerequisite: Minimum grade of C- in CSC 322)

This course introduces students to concepts and tools in software engineering. The topics include software life-cycle models, the phases of software development, design patterns, software architecture and Agile software development. Students will learn various software engineering tools such as integrated development environment, version control systems, and project management software. This course assumes students have a good background in object-oriented programming in at least one programming language.(Prerequisite: Minimum grade of C- in CSC 322)

This course covers both theory and application of data structures such as lists, stacks, queues, sets, maps, binary search trees, and graphs. The algorithm portion covers time complexing of algorithms using big-O notation, various sorting algorithms, concepts of dynamic programming, and divide-and-conquer algorithms. By the end of the course, students should know to apply the appropriate data structures for a given problem for optimal performance. Students will be able to determine the efficiency of basic algorithms. Students must have a good object-oriented programming background. (Prerequisite: Minimum grade of C- in CSC 322 and MAT 220)

This course is a capstone course for the Bachelor of Science in Computer Science. The course provides students realistic hands-on software development experience. Students will work in teams to build a medium-size software. Students will use agile software development and tools necessary to support teamwork. This course assumes the student has a good programming background in at least one programming language and is willing to learn new tools and technologies. (Prerequisite: Minimum grade of C- in CSC 422 and CSC 315 or CSC 435)

Electives – Choose ONE of the Following:

This course teaches students how to build Android mobile applications from the bottom up using Android Studio and Java. Students will learn Android architecture, how to design user interface, and how to handle user interface events. Other topics include saving and restoring the state of an app and integrating Google Map. The course consists of several small projects giving students the ability to create an Android app incrementally. At the end of the course, students will use knowledge they have learned in the course to build a medium size Android app and to learn the process of preparing and publishing their app to Google Play Store. (Prerequisite: Minimum grade of C- in CSC 222)

This course teaches students Web application development using common tools and frameworks in the current industry. The course covers various front-end libraries and frameworks such as React and Angular and several back-end frameworks and tools such as Python Flasks, Code Igniter Node, and Java Spring Boot. Students will learn both relational databases and NoSQL databases. Students will build various Web applications using various frameworks throughout the term. Students are assumed to have good knowledge of JavaScript, have a good understanding of backend development and of databases. (Prerequisite: Minimum grade of C- in CSC 235)

Request More Information

By filling out the form, you’ll:

  • Gain access to a dedicated enrollment counselor who is ready to answer all of your questions.
  • Take one more step towards achieving your career goals.

Fill out the form to receive more information!