Computer Science

Computer Science

Courses & Curriculum


Students must maintain a 2.0 GPA in their major and a 2.0 overall average to graduate with a degree in Computer Science. All students must complete a minimum of 120 credit hours to graduate.


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

Curricular Requirements for the Major:

Core: All students complete Core Curriculum requirements as part of their overall Canisius education.

Free Electives:
Free electives are courses in addition to the Core Curriculum and major requirements sufficient to reach a minimum of 120 credit hours for graduation. Students may graduate with more but not less than 120 credit hours. Computer Science majors often benefit from taking more mathematics courses and also courses in ethics or logic that are offered by the Philosophy Department.

Major Courses




CSC 111

Introduction to Programming


CSC 111L

Introduction to Programming Lab


CSC 112

Data Structures


CSC 112L

Data Structures Lab


CSC 213

Large Scale Programming


CSC 213L

Large Scale Programming Lab


CSC 253

Computer Hardware


CSC 253L

Computer Hardware Lab


CSC 281

Automata and Algorithms


CSC 310

Information Organization and Processing


CSC 310L

Information Organization and Processing Lab


CSC 320

The Social Impact of Computing


CSC 330

Distributed Computing


CSC 330L

Distributed Computing Lab


CSC 351

Comparative Programming Languages


CSC 351L

Comparative Programming Languages Lab


CSC 360

Intelligent Systems


CSC 360L

Intelligent Systems Lab


CSC 395

Software Engineering


CSC 395L

Software Engineering Lab


Major Electives:
Two courses at the 300/400 level. These cover a variety of topics including web programming, advanced object oriented programming, cryptography, graphics, among others. Faculty teach these on a rotating basis. Consult the course schedule each semester to see what is offered.

Recent electives include:
CSC 313 Advanced Programming Topics (4 credits)
CSC 325 Graphics (4 credits)
CSC 380 Web Development (4 credits)
CSC 400L Special Topics in Computing
BIF 400 Bioinformatics Capstone (3 credits)

Additional Course Requirements:
MAT 111 Calculus I (4 credits)
MAT 191 Discrete Mathematics (4 credits)
Science Track only: MAT 112 Calculus II (4 credits), MAT 141 Inferential Statistics and Computers for Science (4 credits), two semesters of a lab science: BIO 111-112 (8 credits), CHM 111-112 (8 credits), or PHY 223-224 (8 credits)
Interdisciplinary Track only: an approved minor in another department

Recommended Semester Schedule for Major Course Requirements


Fall Semester

Spring Semester


CSC 111/L (4)

CSC 112/L (4)


MAT 111 (4)

Science Track: MAT 112 (4 credits)


 Interdisciplinary track: minor course

Interdisciplinary track: minor course


CSC 213/L (4)

CSC 281 (3)


CSC 253/L (4)

MAT 191 (4)


 Interdisciplinary track: minor course

Interdisciplinary track: minor course


Science track: MAT 141 (4)




CSC 310/L (4)

CSC Elective (3/4)


CSC 330/L (4)

Interdisciplinary track: minor course


 Science track: Laboratory Science Class

Science track: Laboratory Science Class


CSC 351/L (4)

CSC 320 (3)


CSC 360/L (4)

CSC 395/L (4)

Note: Students follow either the Science track or the Interdisciplinary track not both. Many 300-level computer science courses are offered on an alternating year basis, so some courses showing in the junior year will be taken in the senior year and vice versa.

Dual Majors:

Students who wish to expand their educational opportunities may decide to declare a dual major. The decision may be based on career goals or planned graduate studies. Before a student declares a dual major it is important to meet with the appropriate academic departments for advisement. Some dual major combinations can be completed within the minimum 120 credit hour degree requirement, but in some cases additional course work may be required. In order to declare a dual major, the student must complete the appropriate dual major request form and get the signature of each department chairperson and the appropriate associate dean. Computer Science majors have had dual majors in the past in many other areas. Physics, Mathematics, and Digital Media Arts are the most common, but some students have dual-majored in Religious Studies, English and other areas.

Minors: Two Minors are Offered




Computer Science Minor (5 courses, 18-20 credit hours)  

CSC 111 Introduction to Programming


CSC 111L Introduction to Programming Lab


CSC 112 Data Structures


CSC 112L Data Structures Lab


CSC 213 Large Scale Programming


CSC 213L Large Scale Programming Lab


One course at 300 or 400 level, chosen after consulting with advisor 


One Additional Computer Science Course


Computer Theory Minor (5 courses, 18-19 credit hours)


CSC 111 Introduction to Programming


CSC 111L Introduction to Programming  Lab


CSC 112 Data Structures


CSC 112L Data Structures Lab


CSC 281 Automata and Algorithms


MAT 191 Introduction to Discrete Mathematics


One Additional Computer Science Course


Many courses at the 200 level and above are offered every two years. For example, some students will take, for example, CSC 330 in their junior year, while the students who entered the previous year will take CSC 330 in their senior year.

All CSC majors and minors may use the departmental facilities starting in their freshman year. The facilities include Linux workstations, personal computers, printers and some storage space for student books and personal effects.

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 get credit for an internship, but the experience must include a significant learning component that does not overlap required coursework and must be pre-approved by the department chair. The Internship cannot count as one of the two CSC electives.


CSC 108/L Introduction to Web Computing        4 credits
Introduction to computer science through web sites, web pages, web page programming, HTML, XML, XHTML, CSS and JavaScript. The history and social impact of computers, networks and the World Wide Web are included in the course. Field 7 Ethics attribute. Fall and Spring

CSC 109/L Robotics Introduction to Computer Science        4 credits
Introduction to computer science through robotics, the basics of artificial intelligence and the fundamental ideas of logic, algorithms, computer systems and programming. Focus on ethical issues in robotics. Field 7, Ethics Attribute. Spring

CSC 111/L Introduction to Programming        4 credits
Algorithms, programming, computers, and applications to problem solving in Python. Field 7. Fall and Spring

CSC 127/L Introduction to Game Programming        4 credits
Computer game development and underlying computer concepts necessary for game programming. Game components related to the player, game component, stories, characters, game play, graphics, the interface and audio. Field 7 Oral Communication. Fall and Spring

CSC 112/L Data Structures        4 credits
Basic concepts of data structures, including lists, stacks and queues. Object-oriented programming and design,user-defined structures and abstract data types in Python. Prerequisites: C or higher in CSC 111 and CSC 111L. Fall

CSC 213 Large Scale Programming        4 credits
Introductory concepts of software engineering applied to the design and implementation of larger software systems. Advanced data structures. Intensive instruction in Java including graphics and 00 design. Prerequisites: CSC 211/L. Fall

CSC 253/L Computer Hardware        4 credits
Introduction to digital logic, Boolean algebra, hardware and computer organization. Overview of current and future architectures. Prerequisites: CSC 111/L. Fall

CSC 281 Automata and Algorithms        3 credits
Formal language theory including finite and pushdown automata, grammars, Turing Machines and the Halting Problem. Introduction to the design and analysis of algorithms, classes of problems and methods for developing an analysis. Prerequisite: CSC 112/L. Spring

CSC 310/L Information Organization and Processing        4 credits
Databases, high-level organization and processing of information, access to and ethical use of information. Prerequisites: CSC 112/L. Spring

CSC 313/L Advanced Programming Topics        4 credits
Focuses on the practice of computer science by investigating emerging development techniques from industry. Topics include design patterns, application profiling, code optimization and testing techniques. Prerequisites: CSC 213 and CSC 213L. Spring

CSC 320 - The Social Impact of Computing        3 credits
Examines the societal issues involved in accessibility, ethical issues, privacy, censorship, social media, and professional responsibilities. Prerequisites: CSC 112/L Core Capstone. Spring

CSC 325 Computer Graphics        4 credits
Techniques involved in realistic image production including illumination models, object modeling, shadowing, texturing, ray tracing, radiosity, animation and advanced modeling techniques for natural phenomenon and characters. Prerequisites: CSC 112/L.

CSC 330 Distributed Computing        4 credits
System software and distributed applications. Modern distributed operating systems, client/server and other models, security and ethical issues. Prerequisites: CSC 112/L and CSC 253/L. Fall

CSC 351 Comparative Programming Languages        4 credits
Systematic study of programming languages and their implementations. Programming in logical and functional programming languages is included. Prerequisites: CSC 112/L. Spring

CSC 360 Intelligent Systems        4 credits
An introduction to intelligent systems including expert systems, reasoning systems, neural networks, language understanding and basic robotics. Ethical, legal and social issues will be discussed. Prerequisites: CSC 112/L. Spring

CSC 380 Web Development        4 credits
Web history, design principles, programming and scripting (both client-side and server-side), database access, client/server mechanisms, search engines, copyright and ethical issues, security. Prerequisites: CSC 111/L and junior/senior standing. Spring

CSC 391-491 Computer Science Seminar        1 credit
Student-faculty research-based seminar for majors. Recent topics include parallel computing, dynamic memory management, robotics and game engine evaluation.

CSC 395 Software Engineering 4 credits
The application of engineering principles to the design, production, use and maintenance of software is studied through readings and a team project. Prerequisites: CSC 213 and CSC 213L. Oral Communication Fall

CSC 400 Special Topics in Computing        3-4 credits
Current topics of interest to faculty and students. Possible topics: cryptography, advanced scripting languages, networking, etc. Prerequisites: Permission of Instructor.

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. Credit is not given for part-time work. Approved project proposal and results documentation required. Does not count as a CSC elective. Prerequisite: Permission of chair.

CSC 499 Independent Study        1-4 credits
Prerequisite: Permission of chair.