Computer Science

Computer Science

Courses & Curriculum

Qualifications:

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.

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

Course

 

Credits

Choose one of the following:  

BIF 101

Introduction to Bioinformatics

3

or

   

CSC 107

Computer Programming for Science

4

or

   

CSC 108

Introduction to Web Computing

3

or

   

CSC 109

Robotics Introdcution to Computer Science

3

or

   

CSC 110

Introduction to Computing

3

or

   

CSC 127

Introduction to Game Programming

3

CSC 111

Introduction to Programming

4

CSC 111L

Introduction to Programming Lab

 

CSC 212

Data Structures

4

CSC 212L

Data Structures Lab

 

CSC 213

Large Scale Programming

4

CSC 213L

Large Scale Programming Lab

 

CSC 253

Computer Hardware

4

CSC 253L

Computer Hardware Lab

 

CSC 281

Automata and Algorithms

3

CSC 310

Information Organization and Processing

4

CSC 310L

Information Organization and Processing Lab

 

CSC 330

Distributed Computing

4

CSC 330L

Distributed Computing Lab

 

CSC 351

Comparative Programming Languages

4

CSC 351L

Comparative Programming Languages Lab

 

CSC 360

Intelligent Systems

4

CSC 360L

Intelligent Systems Lab

 

CSC 395

Software Engineering

4

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, app design for mobile devices, 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 320 App Development for Mobile Devices
CSC 325 Graphics (4 credits)
CSC 380 Web Development (4 credits)
BIF 400 Bioinformatics Capstone (3 credits)

Additional Course Requirements:
MAT 111 Calculus I (4 credits)
MAT 191 Discrete Mathematics (4 credits)
BS 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)
BA only: an approved minor in another department

Recommended Semester Schedule for Major Course Requirements

Year

Fall Semester

Spring Semester

Freshman

One of BIF 101 (3 credits), CSC 107 (4 credits), CSC 108 (3 credits), CSC 109 (3 credits), CSC 110 (3 credits), CSC 127 (3 credits)

CSC 111 and lab (4 credits)

 

MAT 111 (4 credits)

BS Only: MAT 112 (4 credits)

 

   

Sophomore

CSC 212 and Lab (4 credits)

CSC 213 and Lab (4 credits)

 

CSC 253 and Lab (4 credits)

CSC 281 (3 credits)

   

MAT 191 (4 credits)

   

BS Only: MAT 141 (4 credits)

 

   

Junior

CSC Elective

CSC Elective

 

CSC 360 (4 credits)
or
CSC 395 (4 credits)
(alternating years)

CSC 310 (4 credits)
or
CSC 351 (4 credits)
(alternating years)

 

 

CSC Elective

Senior

CSC 395 (4 credits)
or
CSC 330 (4 credits)
(alternating years)

CSC 351 (4 credits)
or
CSC 310 (4 credits)
(alternating years)

 

CSC 360 (4 credits)

CSC Elective

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

Course

 

Credits

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

Choose one of the following:

   

BIF 101 Introduction to Bioinformatics

3

or

 

 

CSC 107 Computer Programming for Science

4

or

 

 

CSC 108 Introduction to Web Computing

3

or

 

 

CSC 109 Robotics Introdcution to Computer Science

3

or

 

 

CSC 110Introduction to Computing

3

or

 

 

CSC 127 Introduction to Game Programming

3

CSC 111 Introduction to Programming

4

CSC 111L Introduction to Programming Lab

 

CSC 212 Data Structures

4

CSC 212L Data Structures Lab

 

CSC 213 Large Scale Programming

4

CSC 213L Large Scale Programming Lab

 

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

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

 

Choose one of the following:

 

BIF 101 Introduction to Bioinformatics

3

or

   

CSC 107 Computer Programming for Science

4

or

   

CSC 108 Introduction to Web Computing

3

or

   

CSC 109 Robotics Introdcution to Computer Science

3

or

   

CSC 110 Introduction to Computing

3

or

   

CSC 127 Introduction to Game Programming

3

CSC 111 Introduction to Programming

4

CSC 111L Introduction to Programming  Lab

 

CSC 212 Data Structures

4

CSC 212L Data Structures Lab

 

CSC 281 Automata and Algorithms

3

MAT 191 Introduction to Discrete Mathematics

4


The Computer Science Department offers two degrees: Bachelor of Science in Computer Science (BS) and Bachelor of Arts in Computer Science (BA). Students must choose one or the other. The ancillary course requirements are slightly different. BS students take two more math courses and a two-semester sequence of a lab science. BA students take a minor in another approved program, such as Business, History, or Philosophy, among others. Students who are dual majors should choose the BA route since the other major counts as a minor. However, students whose second major is a science program such as Biology, Chemistry or Physics should consider taking the two additional math courses and opting for a BS degree.

The upper level courses (300 and 400) levels 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.


COMPUTER SCIENCE COURSES

CSC 107 Computer Programming for Science       4 credits
Introduction to the computer and programming using C with special emphasis on scientific and mathematical applications. Fall

CSC 108 Introduction to Web Computing        3 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. Fall and Spring

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. Focus on ethical issues in robotics. Field 7, Ethics Attribute. Spring

CSC 110 Introduction to Computing        3 credits
Overview of computing science. Major issues in computer technology, systems software, theoretical foundations, artificial intelligence and social implications. Field 7.

CSC 111 Introduction to Programming        4 credits
Algorithms, programming, computers, languages and language structure. Prerequisite: One of: BIF 101, CSC 107, CSC 108, CSC 109, CSC 110, or CSC 127. Spring

CSC 127 Introduction to Game Programming        3 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. Core: Field 7. Fall and Spring

CSC 212 Data Structures        4 credits
Basic concepts of data structures, including lists, stacks and queues. User-defined structures and abstract data types. 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. Prerequisites: CSC 212 and CSC 212L. Spring

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

CSC 253L Computer Hardware Lab        1 credit
Laboratory experience to teach assembler programming and augment the course. Prerequisite: previous or current enrollment in CSC 253

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 212 and CSC 212L. Spring

CSC 299 Computer Practicum
Additional practice in computer programming to enhance algorithm development, coding and debugging skills, with a view towards being a part of a team in a regional or national programming contest. May be taken 8 times total, once per semester. Prerequisite: Permission of instructor.

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

CSC 313 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 2012

CSC 320 - iOS app Development        3 credits
Examines the issues involved in developing apps for the iOS platform(iPod, iPhone, and iPad) including interaction and interface design, objective-C, accessibility, ethical issues, and social justice and impact.
Spring 2012

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 212 and CSC 212L.

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 212, CSC 212L and CSC 253. Fall 2011

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 212 and CSC 212L. Spring 2013

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 213 and CSC 213L. Spring 2013

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 and CSC 111L and junior/senior standing. Spring 2013

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 Oral Communication 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. Fall 2012

CSC 400 Special Topics in Computing        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        3 credits
Prerequisite: Permission of chair.