Computer Science Courses (CSC)

CSC-150   Introduction to Computer Programming I 4 credits

Prerequisites: MAT-149 or equivalent.

An introduction to the disciplines of computer programming using an object-oriented language (most recently C++). Basic computer hardware and software architectures are briefly presented. Topics include: methodologies for program design, development, testing and documentation; algorithms, control structures, objects, classes, elementary data structures, recursion, and numerical computation. Concepts and skills are mastered through programming projects. No previous programming experience is assumed.

CSC-151   Introduction to Computer Programming II 4 credits

Prerequisites: CSC-150

Further study of more sophisticated uses of object-oriented concepts (inheritance, polymorphism, method overloading and multiple inheritance of interfaces). Includes an introduction to the study of algorithm analysis and measurement methods, sorting, and searching. Algorithms and data structures are presented as needed to support discussion of these topics. Concepts and skills are mastered through programming projects.

CSC-231   Computer Architecture & Assembly Language Programming I 3 credits

Prerequisites: CSC-151.

Computer, processor, and memory components. Basic circuits and digital logic. Binary number systems, arithmetic, and data representation. Instruction set and addressing modes. Machine language, assembly language, and assembly language programming.

CSC-232   Special Programming Languages 2 credits

Prerequisites: CSC-150 or equivalent

This course may be repeated by choosing different topics. Computer programming using a high level programming language which is not taught in CSC-139.

CSC-294   Independent Study 3 credits

Prerequisites: Permission

May be repeated up to a maximum of 4 credits and is subject to arrangement with the Mathematical and Physical Sciences Department. This course does not fulfill the core requirement for independent work. See independent study guidelines.

CSC-331   Computer Architecture & Assembly Language Programming II 3 credits

Prerequisites: CSC-231

Processor architecture, interrupt handling external device interfacing. Advanced assembly language programming. Device communication and relation to the runtime environment.

CSC-333   Data Structure & Algorithms 3 credits

Prerequisites: CSC-140

A study of fundamental algorithms, data structures, and their effective use in a variety of applications. The importance of data structure choice and implementation for obtaining the most efficient algorithm for solving a given problem will be studied. A key component of this course is the worst-case asymptotic analysis, which provides a quick and simple method for determining the scalability and effectiveness of an algorithm. Other topics covered generally include: divide-and-conquer algorithms, sorting algorithms, hashing, stacks, queues binary heaps, skip lists, trees, basic graph algorithms. Concepts and skills are mastered through programming projects.

CSC-494   Independent Study 1 - 3 credits

Prerequisites: Junior or senior standing.

May be repeated up to a maximum of 4 credits and is subject to arrangement with the Mathematical and Physical Sciences Department. See independent study guidelines.

CSC-497   Internship 1 - 3 credits

Prerequisites: Junior or senior standing and permission.

Individually arranged programs of work and study with the department, academic institutions, private industries, or government agencies. See internship guidelines.