Computer Science Catalog
Program Director: R. Mark Meyer, 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, and English.
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
Code | Title | Credits |
---|---|---|
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 | Automata and Algorithms | 3 |
CSC 310 & 310L | Information Organization and Processing and Information Organization and Processing Laboratory | 4 |
CSC 320 | The Social Impact of Computing | 3 |
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 380 & 380L | Web Development I and Web Development I 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 191 | Discrete Mathematics I | 4 |
MAT 192 | Discrete Mathematics II | 4 |
Completion of either the science track or interdisciplinary track curriculum (variable credit required) | ||
Total Credits | 53-54 |
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, and numerical analysis. Independent studies on specialized topics are also possible electives. 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:
Code | Title | Credits |
---|---|---|
CSC 360 & 360L | Intelligent Systems and Intelligent Systems Laboratory | 4 |
CSC 371 & 371L | Cybersecurity Principles and Cybersecurity Principles Lab | 4 |
MAT 341 | Numerical Analysis | 3 |
CSC 381 & 381L | Web Development II and Web Development II Laboratory | 4 |
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
Code | Title | Credits |
---|---|---|
MAT 111 | Calculus I | 4 |
MAT 112 | Calculus II | 4 |
Select one of the following sequences: | 8 | |
Biology Sequence: | ||
BIO 111 & 111L | Introductory Biology I and Introductory Biology Laboratory I | |
BIO 112 & 112L | Introductory Biology II and Introductory Biology Laboratory II | |
Chemistry Sequence: | ||
CHM 111 & 111L | General Chemistry I and General Chemistry I Laboratory | |
CHM 112 & 112L | General Chemistry II and General Chemistry II Laboratory | |
Physics Sequence: | ||
PHY 223 & 223L | General Physics for Physical Science Majors I and General Physics for Physical Science Majors I Laboratory | |
PHY 224 & 224L | General Physics for Physical Science Majors II and General Physics for Physical Science Majors I Laboratory | |
Total Credits | 16 |
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 380 in their junior year, while the students who entered the previous year will take CSC 380 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.
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 | |
---|---|
Fall | Spring |
CSC 111 & 111L | CSC 112 & 112L |
MAT 191 | MAT 192 |
MAT 111 | Track course |
Sophomore | |
Fall | Spring |
CSC 253 & 253L | CSC 213 & 213L |
CSC 281 | Track course |
Junior | |
Fall | Spring |
CSC 330 & 330L | CSC 351 & 351L |
CSC 380 & 380L | Track course |
Track course | |
Senior | |
Fall | Spring |
CSC 310 & 310L | CSC 320 |
CSC 395 & 395L | CSC Elective, if needed |
CSC elective, if needed | Track 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.
Combined Degree Programs
Courses
CSC 108 Introduction to Web Computing 3 Credits
Introduction to computer science through web pages, web page programming, focusing on HTML, CSS, JavaScript and other web technologies. 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.
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.
CSC 111L Introduction to Programming Laboratory 1 Credit
Required lab for CSC 111.
Corequisite: CSC 111.
Offered: every fall.
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.
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 fall & spring.
CSC 180 Capture the Flag & Cybersecurity 1.5 Credits
CTF stands for Capture The Flag. It’s a competition where contestants solve challenges related to cybersecurity. These challenges can range from basic programming exercises to more complex tasks like hacking into servers to retrieve hidden data. The ultimate goal is to find a specific piece of text called the flag. Students will participate in weekly meetings and at least two CTF events in the semester.
Prerequisite: CSC 111.
Offered: every fall & 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: occasionally.
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.
Offered: every fall.
CSC 310 Information Organization and Processing 3 Credits
Databases, SQL language, concepts of normalization and database design. Rudimentary discussion of data ethics and security. MySQL or SQLite 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.
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: every fall.
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 classic OS topics (scheduling, memory management, resource allocation and security) along with newer concepts including cloud computing and virtual machines. Taking CSC 253/L before this course is highly advised.
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: fall of even-numbered years.
CSC 330L Operating System Design and Distributed Computing Laboratory 1 Credit
Required lab for CSC 330. Students will write parallel programs using appropriate programming languages and techniques.
Prerequisite: 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. Various languages are used including logical, functional, hybrid and specialized languages
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, MAT 111 and minimum grade of C in either CSC 112 & CSC 112L or CSC 213 & CSC 213L. Corequisite: CSC 360L.
Offered: occasionally.
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 modern fullstack frameworks, possibly using React, VUE, Svelte, SolidJS or some other. Client/server architecture and programming.
Prerequisite: minimum grade of C in CSC 112 & CSC 112L or permission of instructor. Corequisite: CSC 380L.
Offered: fall of odd-numbered years.
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: fall of odd-numbered years.
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.