Computer Science

Chair: Jeffrey J. McConnell, PhD

Introduction

A degree in computer science from Canisius College 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 web 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 artificial intelligence, web development, software engineering, databases, operating systems, and distributed computing.

For a more detailed description of the program, faculty, facilities, academic and co-curricular opportunities please go to the Computer Science website.

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.  Major advisors are normally assigned in the sophomore year, but may be requested in the freshman year to supplement a student's freshman advisor (their GRIF 101 facilitator). 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.

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.

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

Minors

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. The minors page provides a complete list of minors 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.

General Education Requirements

All undergraduate students must complete either the Canisius Core Curriculum or the All-College Honors Curriculum.

Free Electives

Free electives are courses in addition to the Core Curriculum or Honors Curriculum and major requirements sufficient to reach the minimum of 120 credit hours required for graduation. Students may graduate with more but not less than 120 credit hours.

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 281Automata and Algorithms3
CSC 310
310L
Information Organization and Processing
and Information Organization and Processing Laboratory
4
CSC 320The Social Impact of Computing3
CSC 330
330L
Distributed Computing
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
Total Credits42

Major Elective

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 electives include:

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

Required Mathematics Courses

MAT 111Calculus I4
MAT 191Introduction to Discrete Mathematics4
or MAT 230 Logic, Set Theory, and Proofs

Tracks

Students must complete one of the following two tracks:

Interdisciplinary Track

Completion of an approved minor in another department or program

Science Track

MAT 112Calculus II4
Select two of the following options:8
Option 1:
Introductory Biology I
and Introductory Biology Laboratory I
Introductory Biology II
and Introductory Biology Laboratory II
Option 2:
General Chemistry I
and General Chemistry I Laboratory
General Chemistry II
and General Chemistry II Laboratory
Option 3:
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:3-4
Inferential Statistics and Computers for Science
Linear Algebra
Probability & Statistics I
Total Credits15-16

Many courses at the 200-level and above are offered every two years on a rotating schedule. Thus, 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.

The CSC department maintains a lab for use by majors and minors that contains a number of computers that provide access to departmental and college-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 department chair. The Internship cannot count as the CSC elective.

Recommended Semester Schedule for Major Course Requirements

Freshman
FallSpring
CSC 111
111L
CSC 112
112L
MAT 111 or 109Track course
 MAT 110 (if needed)
Sophomore
FallSpring
CSC 213
213L
MAT 191
Select one of the following:Select one of the following:
Track courseTrack course
Junior
FallSpring
CSC Elective (take 1 elective in junior or senior year)CSC 310
310L
Track courseCSC 330
330L
Senior
FallSpring
CSC 360
360L
CSC 320
Track course, if neededCSC 351
351L
 CSC 395
395L

Learning Goals & 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: Perform programming logic.

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.

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.

Corequisite: CSC 108L.

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

Offered: fall & spring.

CSC 108L Introduction to Web Computing Laboratory 1 Credit

Required lab for CSC 108.

Corequisite: CSC 108.

CSC 109 Robotics Introduction to Computer Science 3 Credits

Introduction to computer science through robotics, the basics of artificial intelligence and the fundamental ideas of logic, algorithms, computer systems and programming. Includes ethical issues in robotics.

Corequisite: CSC 109L.

Fulfills College Core: Field 7 (Mathematical Sciences)

CSC 109L Robotics Introduction to Computer Science Laboratory 1 Credit

Required lab for CSC 109.

Corequisite: CSC 109.

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

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

CSC 111L Introduction to Programming Laboratory 1 Credit

Required lab for CSC 111.

Corequisite: CSC 111.

CSC 112 Data Structures 3 Credits

Basic concepts of object-oriented programming, recursion, and data structures, including lists, stacks, queues, and trees using Python.

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

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

CSC 127 Introduction to Game Design 3 Credits

Computer game development and underlying computer concepts necessary for game design. Game components related to the player, stories, characters, game play, graphics, the interface and audio.

Corequisite: CSC 127L.

Fulfills College Core: Field 7 (Mathematical Sciences), Oral Communication

Offered: fall 2015.

CSC 127L Intro to Game Design Laboratory 1 Credit

Required lab for CSC 127.

Corequisite: CSC 127.

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: once a year.

CSC 213L Large Scale Programming Laboratory 1 Credit

Required lab for CSC 213.

Corequisite: CSC 213.

CSC 253 Computer Hardware 3 Credits

Introduction to digital logic, Boolean algebra, hardware and computer organization. Overview of current architectures.

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

Offered: once a year.

CSC 253L Computer Hardware Laboratory 1 Credit

Required lab for CSC 253.

Corequisite: CSC 253.

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: once a year.

CSC 310 Information Organization and Processing 3 Credits

Databases, high-level organization and processing of information, SQL, and modern NOSQL systems.

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

Offered: 2017-2018.

CSC 310L Information Organization and Processing Laboratory 1 Credit

Required lab for CSC 310.

Corequisite: CSC 310.

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. Corequisite: CSC 320L.

Fulfills College Core: Core Capstone

Offered: spring.

CSC 330 Distributed Computing 3 Credits

The design of operating system software, distributed applications, client/server and other models, security issues, and parallel programming on a High Performance Computing Cluster.

Prerequisite: CSC 253, CSC 253L, & minimum grade of C in CSC 112 & CSC 112L. Corequisite: CSC 330L.

Offered: 2017-2018.

CSC 330L Distributed Computing Laboratory 1 Credit

Required lab for CSC 330.

Corequisite: CSC 330.

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. Corequisite: CSC 351L.

Offered: spring 2017.

CSC 351L Comparative Programming Languages Laboratory 1 Credit

Required lab for CSC 351 Comparative Programming Languages.

Corequisite: CSC 351.

CSC 360 Intelligent Systems 3 Credits

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

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

Offered: fall 2016.

CSC 360L Intelligent Systems Laboratory 1 Credit

Required lab for CSC 360.

Corequisite: CSC 360.

CSC 380 Web Development 3 Credits

Web design principles, programming and scripting (both client-side and server-side), client/server mechanisms, search engines, and security.

Prerequisite: minimum grade of C in CSC 111 & CSC 111L and junior or senior standing. Corequisite: CSC 380L.

Offered: fall 2016.

CSC 380L Web Development Laboratory 1 Credit

Required lab for CSC 380.

Corequisite: CSC 380.

CSC 391 Computer Science Junior Seminar 1 Credit

Topic-focused exploration involving students and faculty.

Prerequisite: permission of instructor.

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: CSC 213 & CSC 213L. Corequisite: CSC 395L.

Fulfills College Core: Oral Communication

Offered: fall 2016.

CSC 395L Software Engineering Lab 1 Credit

Required lab for CSC 395.

Corequisite: CSC 395.

CSC 400 Special Topics in Computing 3 Credits

Current topics of interest to faculty and students. Possible topics: cryptography, advanced scripting languages, networking, etc.

Prerequisite: permission of instructor. Corequisite: CSC 400L.

CSC 400L Special Topics in Computing Laboratory 1 Credit

Required weekly lab for CSC 400.

CSC 491 Computer Science Senior Seminar 1 Credit

Topic-focused exploration involving students and faculty.

Prerequisite: 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. 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 chair & associate dean.

CSC 498 Independent Project 3 Credits

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

Prerequisite: permission of instructor.

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, chair, & associate dean.