Skip page navigation links
 

CAS News

more news »

Curriculum

The Department of Mathematics and Computer Science offers two degree programs: B.S. in Computer Science and B.S. in Mathematics. While these majors are distinct, one objective for both programs is to prepare students for professional careers. Students learn to solve problems using the tools of the respective discipline. They learn the art as well as the science of the field. In both majors, a creative imagination is required. In addition to being prepared for employment, students are also prepared to enter graduate programs leading to the M.S. and Ph.D. degrees in the field. Students also may opt for advanced programs in education, business administration, law, or medicine.

Requirements for the Computer Science Major

GER Common Courses (six courses)

GER University Distribution (fourteen courses) including:

  • Mathematics: MAT 1351-1361, Calculus I and II
  • Natural Science: PHY 1051- 1052 and 1061-1062 General Physics

GER Free Electives (any six courses)

Major Concentration

Computer Science: CSC 1401, CSC 1601, CSC 2011, CSC 2301, CSC 2331, CSC 2371, CSC 2481, CSC 2901

MAT 1351, MAT 1361, MAT 1391, CSC 1671

Four Courses chosen from CSC courses numbered 2000 or above or MAT courses numbered 1381 or above.

  1. MAT 1371 and MAT 1461 can be taken in lieu of MAT 1391 and one MAT/CSC elective.

  2. Credit toward the major cannot be given for both MAT 1461 and MAT 1391.

  3. Credit cannot be given for both MAT 1371 and MAT 1391

Minor in Computer Science

Advisor: Dr. Wei

With the approval of the Department, students may minor in Computer Science. Upon acceptance, they will be assigned an advisor within the Department who will assist them in selecting courses appropriate for their area of interest. Students who elect this minor must take six courses numbered CSC 1401 or higher, with permission of the Departmental advisor.

Note: The following courses require CSC 1671 as a prerequisite or corequisite: CSC 2301, CSC 2371, and CSC 2501.

Requirements for Departmental Honors

Requirements for departmental honors are found under Honors Program and in the brochure published annually by the Director of the Honors program.

Computer Science Offerings

CSC 1301 Building Virtual Worlds, 3 credits
A gentle introduction to programming with user-friendly software (Alice). Students will use 3D animated interactive virtual worlds to develop an understanding of basic programming constructs. Open to all students. Computer science majors may take this course to prepare for CSC 1401.
Prerequisite: Presupposes no previous programming experience. 

CSC 1401 Introduction to Computer Programming, 4 credits
Computer programming for beginners. Very little prior knowledge regarding how computers work is assumed. Learn how to write understandable computer programs in a programming language widely used on the Internet. Go beyond the routine skills of a computer user and learn the programming fundamentals: data, variables, selection, loops, arrays, input/output, methods and parameter passing, object and classes, abstraction. Take what is learned and write programs for use on the Internet. One hour per week of the course is a required laboratory.
Prerequsite: None. 

CSC 1601 Intermediate Computer Programming, 4 credits
The course covers intermediate programming techniques emphasizing advanced object oriented techniques including inheritance, polymorphism, and interfaces. Other topics include recursion, exception handling, design patterns, simple GUI programming, and dynamic containers such as linked lists, stacks, queues, and trees.
Prerequisite: C- or better in CSC 1401, or permission of instructor. 

CSC 1671 Discrete Structures for Computer Science, 3 credits
Mathematics needed for Computer Science. Topics covered include: functions, relations, propositional and first order predicate logic, set theory, proofs and their construction, counting and elementary probability. The course will use a declarative language as a tool to support concrete implementations of the mathematical ideas.
Prerequisite: CSC 1401, MAT 1351. 

CSC 2011 Computer Organization & Architecture, 3 credits
Overview of computer system organization, hardware, and communications. Introduction to combinational and sequential logic, arithmetic, CPU, memory, microprocessors, and interfaces. CISC vs. RISC processors. Assembly language programming, microarchitecture, and microprogramming on a variety of processors.
Prerequisites: CSC 1601, or permission of instructor. 

CSC 2141 Introduction to Computer Graphics, 3 credits
The course provides an introduction to the principles of computer graphics. The emphasis will be placed on understanding how the various elements that underlie computer graphics interact in the design of graphics software systems. Topics include pipeline architectures, graphics programming, 3D geometry and transformations, modeling, viewing, clipping and projection, lighting and shading, texture mapping, visibility determination, rasterization, and rendering. A standard computer graphics API will be used to reinforce concepts and the study of basic computer graphics algorithms.
Prerequisites: C or better in CSC 2301, junior or senior standing in Computer Science or Mathematics, or permission of instructor. 

CSC 2151 Computer Vision, 3 credits
Computer vision is the science of analyzing images and videos in order to recognize or model 3D objects, persons, and environments. Topics include the underlying image formation principles, extracting simple features like prominent points or lines in images, projecting a scene to a picture, tracking features and areas in images and make a mosaic, making an image-based positioning system, obtaining 3D models from two or more images, and techniques to recognize simple patterns and objects. The class includes programming exercises and hands-on work with digital cameras and laser scanners
Prerequisites: C or better in CSC 2301, and junior or senior standing in Computer Science or Mathematics, or permission of instructor. 

CSC 2301 Data Structures, 3 credits
The course covers fundamental data structures, algorithms for manipulating and retrieving information from these data structures, and techniques for analyzing their efficiency in terms of space and time. The distinction between an Abstract Data Type and its implementation is emphasized. Topics include lists, vectors, trees (general trees, binary search trees, and balanced trees), priority queues, hashing, graphs, and various searching and sorting algorithms.
Prerequisite: C or better in CSC 1601, or permission of instructor.
Co-requisite: CSC 1671 or MAT 1591. 

CSC 2321: Interactive 3D Game Development, 3 credits
This is a technology-based course that uses the latest computer games technology to teach advanced programming, mathematics, and software development. The course is ideal for students with an interest in computer games who plan to seek employment in one of the country's more profitable industries, or students looking for a career in new technologies or software development. The interactive entertainment industry in the US and throughout the world is entering a new phase. New technology platforms are forcing existing development firms to diversify. There are many aspects of game design, development, production, finance, and the distribution process. This course specializes in the programming and technology aspects of the industry.
Prerequisite: C or better in CSC 2301.

CSC 2331 Systems Programming, 3 credits
The functions of an operating system. Operating system utilities. The process model of computation. The producer consumer problem. The C programming language. System calls and interprocess communication threads.
Prerequisite: C or better in CSC 2301. 

CSC 2371 Formal Languages and Compiler Construction, 3 credits
Introduction to formal languages and abstract machines: finite automata and regular sets, context free grammars and pushdown automata. Syntax trees and decorated trees. Application of these ideas to the construction of compilers and other language translation software. The course will include programming projects that will illustrate the major features of compiler construction.
Prerequisite: C or better in CSC 2301, and CSC 1671 or MAT 1591. 

CSC 2401 Database Management Systems, 3 credits
The course will cover the concepts and structures necessary to design and implement a relational database system. Topics to be covered: entity-relationship and relational data models, relational algebra, SQL, normalization, file organization, indexing, hashing, and enterprise-wide web-based applications.
Prerequisite: C or better in CSC 2301. 

CSC 2451 Principles of Programming Languages, 3 credits
The general principles underlying programming languages, including such topics as syntax and its specification, data types, data control, flow control, storage management and support for design patterns. Examples drawn from a variety of programming languages, including functional, logical and procedural languages.
Prerequisite: C or better in CSC 1601, or permission of instructor. 

CSC 2481 Software Engineering, 3 credits
Principles of designing large programs, including issues of specification, documentation, design strategies, coding, testing and maintenance. Students work in small groups to design and implement a major software project.
Prerequisite: C or better in CSC 2301. 

CSC 2501 Artificial Intelligence, 3 credits
The course covers fundamental concepts such as role of logic in reasoning, deductive proofs, and blind and informed search techniques. Additional topics may include inductive learning, genetic algorithms, decision trees, planning, natural language processing, game trees and perceptron learning. A language suitable for symbolic processing will be introduced.
Prerequisites: C or better in CSC 1601 or permission of instructor, and CSC 1671 or MAT 1591. 

CSC 2601 Data Communications and Networking, 3 credits
Topics include mathematical foundations of data communications, logical and physical organization of computer networks, the ISO and TCP/IP models, communication protocols, circuit and packet switching, the Internet, LAN/WAN, client/server communications via sockets, routing protocols, data encryption/decryption and network security issues.
Prerequisite: C or better in CSC 2331. 

CSC 2811 Topics in Computer Science, 3 credits
The course introduces students to recent theoretical or practical topics of interest in computer science. Content and structure of the course are determined by the course supervisor. The special topic(s) for a given semester will be announced prior to registration.
Prerequisite: C or better in CSC 2301, senior or junior standing in Computer Science or Mathematics, or permission of instructor. 

CSC 2901 Computer Science Project, 3 credits
Students will work on a substantial application based upon their prior knowledge.
Prerequisite: C or better in CSC 2301 and two other CSC courses numbered 2001 and above, senior standing in Computer Science. 

CSC 2911-2921 Independent Study, 3-3 credits
A one- or two-semester, independent research project on a topic selected by the student and a faculty research advisor, and approved by the department.
Prerequisits: Junior or senior standing in Computer Science, and GPA of Computer Science courses should be 3.3 or higher.

CSC 2953-2963 Honors Research and Independent Study, 6 credits