Computer Science Course Descriptions

Click for an explanation of terms and abbreviations used in course descriptions.

CSC 131 Introduction to Programming. 4 cr.
Introduction to a programming language. Fundamental problem solving concepts with an object-oriented language, elementary and structured data types, sequence control, data control, human interfaces, and program debugging. This is a hands-on course and there will be frequent programming projects.
CSC 231 Object Oriented Design and Software Development. 3 cr.
This course develops skills based on real-world software development. Study of the object-oriented design paradigm and software development processes. The semester is spent designing and implementing a major project starting with requirements and working through implementation, final testing and delivery. There are also several short papers and a classroom presentation. Prereq: CSC 131 or consent of instructor.
CSC 250 Internet Programming. 3 cr.
This course focuses on web technologies, especially server-side programs, client-side scripts and the concept of applets. On the server-side, it covers file management and common server architectures. It also covers web protocols, internet information servers, browsers and APIs (Application Programming Interfaces), database-driven websites, security issues and firewalls. Students will implement several web-based applications. Prereq: CSC 231 or consent of instructor.
CSC 311 Data Structures. 3 cr.
Basic structures (arrays, object classes, queues, lists, stacks, etc.) in computer science, the application of these structures (sorting, searching, recursion, graph theory, etc) and algorithm efficiency. Weekly programming projects. Prereq: CSC 231 or consent of instructor.
CSC 321 Computer Organization and Assembly Language. 3 cr.
Instruction and data representation, addressing, operations, program linkage, input/output, interrupts, traps, and basic assembly language programming for one microprocessor family. Several programming projects and a short research paper. Prereq: CSC 311 or consent of instructor.
CSC 340 Programming Languages. 3 cr.
This course surveys the history of programming languages and programming paradigms, including procedural, object-oriented, functional, declarative non-algorithmic, and scripting languages. It covers virtual machines and intermediate languages, and compares interpreters and compilers. Also covered are the topics of binding, scope, type-checking, garbage collection and security. There will be frequent programming assignments in a variety of important computer languages exemplifying each language type. Prereq: CSC 311 or consent of instructor.
CSC 361 Database Systems. 3 cr.
Organizing, processing, and administration of a database. Database models, data dictionary, file organization, query languages (SQL), security, integrity, and reliability. Hands-on use of a DBMS (DataBase Management System). Several programming projects using SQL, Java, Perl, Python and C++. There will also be a short research paper and presentation. Prereq: CSC 311 or consent of instructor.
CSC 375 Operating Systems. 3 cr.
A study of computer operating system principles. Topics include threads, processes and protection, synchronization and deadlocks, memory management including virtual memory, file systems, distributed systems, messaging, and security. There will be several programming assignments and a short research paper. Prereq: CSC 311 or consent of instructor.
CSC 390 Special Topics. 1-3 cr.
Selected advanced topics in Computer Science. Content varies. Course may be taken for credit more than once with different topics. Possible topics include Robotics, Event Programming (Windows), Computer Games, Computational Linguistics or others. Offered as needed. Prereq: consent of instructor.
CSC 410 Computer Graphics. 3 cr.
An introduction to the techniques, concepts, algorithms, and data structures used in computer graphics and computer imaging. We will study vector tools, transformations, polygonal meshes, three-dimensional viewing, curve and surface design, color theory, hidden surface removal and ray tracing. There will be frequent programming assignments using a standard graphics API (Application Programming Interface – typically openGL). Prereq: CSC 311 or consent of instructor.
CSC 471 Data Communication. 3 cr.
The physical basis for communication, modulation techniques, synchronous and asynchronous transmission, analog and digital signaling, multiplexing, hardware and software, networks and protocols, and design considerations. Prereq: CSC 311 or consent of instructor.
CSC 481 Artificial Intelligence. 3 cr.
History and application of AI, knowledge representation, control strategies and reasoning. Techniques of search, data-driven programming, frames, production-rule systems, and logic programming. Major project required. Prereq: CSC 311 or consent of instructor.
CSC 485 Senior Capstone Experience. 3 cr.
This capstone experience is designed to survey important areas computer science not specifically covered by the curriculum. This includes ethics, human interface design, automata theory, and topical subjects as appropriate such as agile development processes, net neutrality, or internet censorship. Students will complete and present a major project in consultation with the instructor. The project could be a research paper or a programming project. There will also be several short research papers and presentations. Prereq: senior standing and consent of instructor.