Computer Science (BS)

Program Director: Jeffrey J. McConnell, PhD

Introduction

A degree in computer science from Canisius University provides you with the experience and background required to continue with graduate school or to find employment in a variety of fields. Our graduates enjoy challenging and lucrative careers all over the country in many types of companies, from banking to the defense industry, from startups to major corporations. The computer science major provides you with an essential theoretical background along with practical programming experience and knowledge about many of the important and cutting edge areas of computer science, including cybersecurity, web development, software engineering, databases, operating systems, distributed computing, programming language design, and the social impact of computing.

Qualifications

Students must maintain a 2.0 GPA in the major and a 2.0 overall average to graduate with a degree in Computer Science.

Advisement

All students should have an advisor in the major and should contact the department directly to have an advisor assigned if they do not already have one.  Meetings with academic advisors are required prior to students receiving their PIN for course registration each semester. All majors should work closely with their advisor in discussing career expectations, choosing their major electives, developing their entire academic program and planning their co-curricular or supplemental academic experiences.

Double Majors

Students who wish to expand their educational opportunities may decide to declare a double major. This decision may be based on career goals, planned graduate studies, and/or other student interests. Before a student declares a double major, it is important to meet with the appropriate academic departments for advisement.  In order to declare a double major, the student must complete the Major/Minor Declaration form. This form will be submitted electronically and reviewed and approved by each department chairperson as well as the appropriate associate dean. 

Per university policy, each additional major requires a minimum of 15 credits that do not apply to the student's first or subsequent major.  Some double major combinations can be completed within the minimum 120 credit hour degree requirement, but in other cases additional course work may be required. Please note that students will receive only one degree unless completing the dual degree requirement including at least 150 undergraduate credit hours, regardless of the number of majors they complete. Both (all) majors appear on a student’s transcript.

In the past, Computer Science majors have had double majors in many other areas including Mathematics, Digital Media Arts, Religious Studies, English, and Classics.

Minors in Other Disciplines

Minors provide students the opportunity to pursue additional interests but generally do not require as many courses as a major.  Minors generally range from five to eight required courses. To receive a minor, the student must complete at least 9 credit hours of coursework distinct from their other credentials (i.e., majors, other minors). The complete list of minors is available on the Canisius website and in the catalog and provides links to each minor. Some majors and minors can be completed within the minimum 120 credit hour degree requirement, but in some cases additional coursework may be required. Students must complete the appropriate minor request form.

Students following the Interdisciplinary Track are required to complete a minor outside of computer science.  A double major also satisfies this requirement.  Students in the Science Track are not required to complete a minor but may choose to do so.

Curriculum

An Ignatian Foundation

All undergraduate students must complete either the Canisius Core Curriculum or the All-College Honors Curriculum. Many schools refer to their college-wide undergraduate requirements as "general education" requirements. We believe that the core curriculum and the honors curriculum are more than a series of required classes; they provide the basis for a Jesuit education both with content and with required knowledge and skills attributes that are central to our mission.

Free Electives

Students may graduate with a bachelor's degree in Computer Science with more but not less than 120 credit hours. Free electives are courses in addition to the Canisius Core Curriculum or All-College Honors Curriculum and major requirements sufficient to reach the minimum number of credits required for graduation. The number of credits required to complete a bachelor's degree may vary depending on the student's major(s) and minor(s).

Major Requirements

CSC 111
111L
Introduction to Programming
and Introduction to Programming Laboratory
4
CSC 112
112L
Data Structures
and Data Structures Laboratory
4
CSC 213
213L
Large Scale Programming
and Large Scale Programming Laboratory
4
CSC 253
253L
Computer Hardware
and Computer Hardware Laboratory
4
CSC 281
281L
Automata and Algorithms
and Automata and Algorithms Lab
4
CSC 310
310L
Information Organization and Processing
and Information Organization and Processing Laboratory
4
CSC 320The Social Impact of Computing3
CSC 330
330L
Operating System Design and Distributed Computing
and Operating System Design and Distributed Computing Laboratory
4
CSC 351
351L
Comparative Programming Languages
and Comparative Programming Languages Laboratory
4
CSC 360
360L
Intelligent Systems
and Intelligent Systems Laboratory
4
CSC 395
395L
Software Engineering
and Software Engineering Lab
4
Major Elective at the 300- or 400-level (see list below)3-4
MAT 111Calculus I4
MAT 191Introduction to Discrete Mathematics4
or MAT 230 Logic, Set Theory, and Proofs
Completion of either the science track or interdisciplinary track curriculum (variable credit required)
Total Credits54-55

Major Elective Options

One additional course at the 300/400 level is required. These courses cover a variety of topics including web programming, advanced object oriented programming and design patterns, cryptography, app development, graphics, numerical analysis and bioinformatics. All these courses are either 3 or 4 credits. Faculty teach these courses on a rotating basis. To determine what is offered each semester consult the class schedule. Recent major electives include:

CSC 371
371L
Cybersecurity Principles
and Cybersecurity Principles Lab
4
CSC 380
380L
Web Development
and Web Development Laboratory
4
CSC 400
400L
Special Topics in Computing
and Special Topics in Computing Laboratory
4
MAT 341Numerical Analysis3

Tracks

Students must complete one of the following two tracks:

Interdisciplinary Track

Completion of an approved major or minor in another department or program.

Science Track

MAT 112Calculus II4
Select one of the following sequences:8
Biology Sequence:
Introductory Biology I
and Introductory Biology Laboratory I
Introductory Biology II
and Introductory Biology Laboratory II
Chemistry Sequence:
General Chemistry I
and General Chemistry I Laboratory 1
General Chemistry II
and General Chemistry II Laboratory
Physics Sequence:
General Physics for Physical Science Majors I
and General Physics for Physical Science Majors I Laboratory
General Physics for Physical Science Majors II
and General Physics for Physical Science Majors I Laboratory
Select one of the following math courses:3-4
Inferential Statistics and Computers for Science
Linear Algebra
Probability & Statistics I
Total Credits15-16
1

Students can complete CHM 109 and CHM 110 in lieu of CHM 111.

Many courses at the 300-level and above are offered every two years on a rotating schedule. Thus, some students will take, for example, CSC 360 in their junior year, while the students who entered the previous year will take CSC 360 in their senior year.

The CSC department maintains a lab for use by majors and minors that contains a number of computers that provide access to departmental and university-wide software along with a printer.

CSC majors often get part-time jobs or paid internships in the Western New York region while still taking classes, though we do not formally require an internship. CSC 497 “Internship” is a way to earn credit for an internship, but the experience must include a significant learning component that does not overlap with required coursework and must be pre-approved by the program director. The Internship cannot count as the CSC elective.

Roadmap

Recommended Semester Schedule for Major Course Requirements

Freshman
FallSpring
CSC 111
111L
CSC 112
112L
MAT 191MAT 192
 Track course
Sophomore
FallSpring
CSC 253
253L
CSC 213
213L
CSC 281
& CSC 281L
Track course
Junior
FallSpring
CSC 330
330L
CSC 351
351L
CSC 380
380L
Track course
Track course 
Senior
FallSpring
CSC 310
310L
CSC 320
CSC 395
395L
CSC Elective, if needed
CSC elective, if neededTrack course, if needed

Learning Goals and Objectives

Student Learning Goal 1

Majors will develop a computational solution to a problem

Students will:
  • Objective A: Translate a problem description to a formal representation;
  • Objective B: Implement, justify and test acceptable computational solutions;
  • Objective C: Describe the basic principles of artificial intelligence (AI).

Student Learning Goal 2

Majors will know the foundations of computing.

Students will:
  • Objective A: Identify computational power and its limits;
  • Objective B: Describe the operational details of computer systems;
  • Objective C: Describe the operational details of programming languages.

Student Learning Goal 3

Majors will understand the social impact of computing.

Students will:
  • Objective A: Describe the social impact of computing.

Minors

The following two minors are offered:

Minors are an important part of the undergraduate curriculum.  If students declare a minor by sophomore year, they can usually complete it in a timely manner.  Students should work with their advisor to determine if it is possible that the minor can be completed by graduation.  

To receive a minor, a student must complete at least 9 credit hours of coursework distinct from their major(s) and from other minors, and students must complete more than 50% of the coursework required for the minor at Canisius. Please note that “ancillary/supporting” courses required for a major may still count as distinct courses as long as the remaining coursework still meets the 30 credit-hours required for a major. For more information about minor policies, please see the Declaring Majors and Minors page in the catalog.

Courses

CSC 108 Introduction to Web Computing 3 Credits

Introduction to computer science through web sites, web pages, web page programming, HTML, XML, CSS and JavaScript. The history and social impact of computers, networks and the World Wide Web are included in the course.

Fulfills College Core: Ethics, Field 7 (Mathematical Sciences)

Offered: fall & spring.

CSC 111 Introduction to Programming 3 Credits

Algorithms, programming, computers, and applications to problem solving in Python.

Corequisite: CSC 111L.

Fulfills College Core: Field 7 (Mathematical Sciences)

Offered: every fall, spring, & summer.

CSC 111L Introduction to Programming Laboratory 1 Credit

Required lab for CSC 111.

Corequisite: CSC 111.

Offered: every fall, spring, & summer.

CSC 112 Data Structures 3 Credits

Introduction to object-oriented programming, recursion, and data structures, including lists, stacks, queues, trees and maps. Rudimentary discussion of analysis of algorithms. Python language is used.

Prerequisite: minimum grade of C in CSC 111 & CSC 111L. Corequisite: CSC 112L.

Offered: every fall, spring, & summer.

CSC 112L Data Structures Laboratory 1 Credit

Required lab for CSC 112.

Prerequisite: minimum grade of C in CSC 111 & CSC 111L. Corequisite: CSC 112.

Offered: every spring.

CSC 200 Computational Thinking on the Internet 3 Credits

This course provides an in-depth dive into the Internet, as a user, creator, and member of a society impacted by its development and day to day use. Students will learn the history of the Internet along with common technologies, uses, and the societal issues posed by the constantly developing landscape of Internet customs, expectations, and laws. Students will also learn basic concepts of web development and deploy their own webpage. In addition, students will learn about cyberethics through classroom discussions and engage with case studies related to modern day cases in cyberethics. The course will wrap up with learning about networking principles and the underlying architecture of the internet.

Fulfills College Core: Ethics, Field 7 (Mathematical Sciences)

Offered: every fall & spring.

CSC 213 Large Scale Programming 3 Credits

Introduction to the design, implementation, and testing of larger software systems. Intensive instruction in Java including graphics and object-oriented design.

Prerequisite: minimum grade of C in CSC 112 & CSC 112L. Corequisite: CSC 213L.

Offered: every spring.

CSC 213L Large Scale Programming Laboratory 1 Credit

Required lab for CSC 213.

Prerequisite: minimum grade of C in CSC 112 & CSC 112L. Corequisite: CSC 213.

Offered: every spring.

CSC 253 Computer Hardware 3 Credits

Introduction to computer hardware and organization, focusing on digital logic components and Boolean algebra. Rudimentary presentation of computer networking. Assembler programming is used.

Prerequisite: minimum grade of C in CSC 112 & CSC 112L, can be taken concurrently. Corequisite: CSC 253L.

Offered: every fall.

CSC 253L Computer Hardware Laboratory 1 Credit

Required lab for CSC 253.

Corequisite: CSC 253.

Offered: every fall.

CSC 281 Automata and Algorithms 3 Credits

Formal language theory including finite and pushdown automata, grammars, Turing Machines and the Halting Problem. Provides an introduction to the design and analysis of algorithms, including classes of problems and methods for analysis.

Prerequisite: minimum grade of C in CSC 112 & CSC 112L. Corequisite: CSC 281L.

Offered: every fall.

CSC 310 Information Organization and Processing 3 Credits

Databases, SQL, and NOSQL systems, along with concepts of normalization and database design. Rudimentary discussion of data ethics and security. MySQL and MongoDB used.

Prerequisite: minimum grade of C in CSC 112 & CSC 112L or a minimum grade of C in CSC 213 & CSC 213L. Corequisite: CSC 310L.

Offered: every fall & spring.

CSC 310L Information Organization and Processing Laboratory 1 Credit

Required lab for CSC 310.

Prerequisite: minimum grade of C in CSC 112 and CSC 112L or minimum grade of C in CSC 213 & CSC 213L. Corequisite: CSC 310.

Offered: occasionally.

CSC 320 The Social Impact of Computing 3 Credits

Examines the societal issues involved in computing such as accessibility, ethical issues, privacy, censorship, social media, and professional responsibilities. Includes applications of information literacy techniques to the major.

Prerequisite: minimum grade of C in CSC 112 & CSC 112L or a minimum grade of C in CSC 213 & CSC 213L.

Fulfills College Core: Advanced Writing-Intensive, Ethics

Offered: once a year.

CSC 330 Operating System Design and Distributed Computing 3 Credits

The design of operating system software, including processor scheduling, memory management, storage and resource allocation, and security issues. Taking CSC 253/L before this course is preferred.

Prerequisite: Either minimum grade of C in CSC 112 & CSC 112L or minimum grade of C in CSC 213 & CSC 213L. Corequisite: CSC 330L.

Offered: every fall.

CSC 330L Operating System Design and Distributed Computing Laboratory 1 Credit

Required lab for CSC 330. Students will write parallel programs using MPI and a High Performance Computing Cluster.

Prerequisite: CSC 281L and CSC 112/L (min grade of C) or CSC 213/213L (minimum grade of C). Corequisite: CSC 330.

Offered: every fall.

CSC 351 Comparative Programming Languages 3 Credits

A study of programming languages and their implementations. Programming in logical and functional programming languages is included.

Prerequisite: minimum grade of C in CSC 112 & CSC 112L or minimum grade of C in CSC 213 & CSC 213L. Corequisite: CSC 351L.

Offered: spring of odd-numbered years.

CSC 351L Comparative Programming Languages Laboratory 1 Credit

Required lab for CSC 351.

Prerequisites: minimum grade of C in CSC 112 and 112L or minimum grade of C in CSC 213 & CSC 213L. Corequisite: CSC 351.

Offered: spring of odd-numbered years.

CSC 360 Intelligent Systems 3 Credits

An introduction to intelligent systems including logic and rule-based systems, machine learning, and applications of AI.

Prerequisite: completion of MAT 191 or MAT 230 and minimum grade of C in either CSC 112 & CSC 112L or CSC 213 & CSC 213L. Corequisite: CSC 360L.

Offered: fall of odd-numbered years.

CSC 360L Intelligent Systems Laboratory 1 Credit

Required lab for CSC 360.

Prerequisite: completion of MAT 191 or MAT 230 and minimum grade of C in either CSC 112 and 112L or in CSC 213 & CSC 213L. Corequisite: CSC 360.

Offered: fall of odd-numbered years.

CSC 371 Cybersecurity Principles 3 Credits

This course examines the landscape and the broad areas of cybersecurity which includes topics such as: Symmetric & Public-Key Encryption, Access Control, Database Security, Malware, DoS (Denial-of-Service) Attacks, Intrusion Detection & Firewalls, Software Security, Security Management & Policies, Internet Security, and Legal & Ethical Aspects of Cybercrime. Students will also complete hands-on labs and exercises to reinforce their working knowledge of computer, network and information security topics.

Prerequisite: CSC 310 and CSC 310L; may be taken concurrently. Corequisite: CSC 371L.

Offered: every fall & spring.

CSC 371L Cybersecurity Principles Lab 1 Credit

Required lab for CSC 371.

Prerequisite: CSC 310 and CSC 310L; may be taken concurrently. Corequisite: CSC 371.

Offered: every fall & spring.

CSC 380 Web Development I 3 Credits

Web design using HTML, CSS and JavaScript language and frameworks, including React, VUE and Svelte. Client/server architecture and programming. Includes a rudimentary presentation of social impact, ethics and security.

Prerequisite: minimum grade of C in CSC 112 & CSC 112L or permission of instructor. Corequisite: CSC 380L.

Offered: every fall.

CSC 380L Web Development I Laboratory 1 Credit

Required lab for CSC 380.

Prerequisite: minimum grade of C in CSC 112 and 112L. Corequisite: CSC 380.

Offered: every fall.

CSC 381 Web Development II 3 Credits

Advanced web design and programming, focusing on new features of HTML5, CSS3 and JavaScript. Largely a project based course with emphasis on a JavaScript framework (either React, VUE or Svelte.)

Prerequisite: CSC 380 & CSC 380L or permission of instructor. Corequisite: CSC 381L.

Offered: spring of even-numbered years.

CSC 381L Web Development II Laboratory 1 Credit

Required lab for CSC 381.

Prerequisite: CSC 380 and CSC 380L. Corequisite: CSC 381.

Offered: spring of even-numbered years.

CSC 395 Software Engineering 3 Credits

An examination of a variety of techniques and concepts that have been created to improve the software production process. Includes discussions of software processes, Agile software development, requirements engineering, testing, and software evolution.

Prerequisite: minimum grade of C in CSC 213 & CSC 213L. Corequisite: CSC 395L.

Offered: fall of even-numbered years.

CSC 395L Software Engineering Lab 1 Credit

Required lab for CSC 395.

Prerequisite: minimum grade of C in CSC 213 and 213LCorequisite: CSC 395.

Offered: fall of even-numbered years.

CSC 480 Research Experience 0 Credits

Research project done in conjunction with a faculty advisor.

Offered: occasionally.

CSC 481 Research Experience 1 Credit

Research project done in conjunction with a faculty advisor for credit.

Offered: occasionally.

CSC 497 Internship 1-3 Credits

Special projects for local institutions/businesses. Must be related to a specific focused task and involve a significant learning component. Internships require an application and approval by the associate dean. Credit is not given simply for a part-time job. Approved project proposal and results documentation required. Does not count as a CSC elective.

Prerequisite: permission of program director & associate dean.

Offered: occasionally.

CSC 498 Independent Project 3 Credits

A directed project course that includes research, design, and implementation of a software system.

Prerequisite: permission of instructor.

Offered: occasionally.

CSC 499 Independent Study 1-4 Credits

An in-depth study of a specific computing topic. Independent studies require an application and approval by associate dean.

Prerequisite: junior or senior standing; & permission of instructor, program director, & associate dean.

Offered: occasionally.