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

Students will be introduced to a wide range of Computer Science topics. Some of the many aspects covered will include computer hardware, programing, operating systems, data analysis, operating systems, cyber security, artificial intelligence, networking, web applications, databases and emerging technologies.

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.

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 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)

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!