Academic Catalog

Computer Science (CSC)

CSC-131  PROGRAMMING FUNDAMENTALS  (3 Credits)  
An introduction to the field of computer science and software engineering. Topics include problem solving, algorithms, structured program design, data types, program control structures, program testing, and debugging. Programming assignments are written in a high-level general-purpose programming language. Satisfies the core requirement for a science elective.
Prerequisite: Take MAT-121 (C or higher) May be taken concurrently.  
CSC-132  INTERMEDIATE PROGRAMMING  (4 Credits)  
A continuation of Programming Fundamentals. Further development of problem solving and programming skills. Topics include object oriented programming, elementary data structures, indirection, dynamic memory allocation, inheritance, polymorphism, and templates. Introduction to software engineering practices for version control, coding conventions, and automated testing. Programming assignments are written in high-level programming languages. Students may not receive credit for both EGR-112 and CSC-132.
Prerequisite: CSC-131 (C or higher)  
CSC-216  DATABASE MGT SYSTEMS  (3 Credits)  
An introduction to the analysis, design, and implementation of database management systems with an emphasis on the relational model. Topics include data modeling, entity-relationship models, normal forms, query languages, database security and integrity.
Prerequisite: CSC-132 (C or higher)  
CSC-225  PROGRAMMING LANGUAGE CONCEPTS  (3 Credits)  
A study of programming language concepts. Topics include language definition, lexical analysis, parsing, translation of high level languages to assembly language, optimization, alternative programming paradigms, and the history and evolution of programming languages. Several languages are introduced and examined.
Prerequisite: CSC-132, EGR-226 and EGR-227 (C or higher)  
CSC-231  DATA STRUCTURES  (3 Credits)  
A study of classical data structures and their implementations. Topics include abstract data types, stacks, queues, sequences, iterators, hashes, heaps, trees, and graphs. Introduction to the analysis of algorithms and further development of advanced programming concepts including memory management and security issues. Programming assignments are written in a high-level object-oriented programming language.
Prerequisite: CSC-132 (C or higher)  
CSC-322  OPERATING SYSTEMS  (3 Credits)  
An introduction to the principles of operating system design and implementation. Topics include processes, threads, and parallelism, inter-process communication and synchronization, deadlock, memory management and shared memory, processor scheduling, file systems, input/output devices, client-server systems, distributed systems, protection and security.
Prerequisite: CSC-231, EGR-226 and EGR-227 (C or higher)  
CSC-325  WEB APPLICATION DEV  (3 Credits)  
An introduction to full-stack development of dynamic web applications. Topics include both front-end and back-end programing and development technologies.
Prerequisite: CSC-216 and CSC-132 (C or higher)  
CSC-343  DESIGN & ANALYSIS OF ALGORITHMS  (3 Credits)  
A study of the principles and techniques for designing and analyzing algorithms. Topics include divide-and-conquer, recursion and dynamic programming, greedy methods, graph algorithms, analysis of time and space requirements, and computational complexity.
Prerequisite: CSC-225 (C or higher)  
CSC-350  SOFTWARE ENGINEERING  (3 Credits)  
A study of software engineering concepts, methodologies, and tools. Topics include: system analysis and design, requirements management, system lifecycle management, software project management, waterfall vs agile, software quality assurance, testing, maintenance, continuous integration and delivery, legal and ethical principles as they pertain to software engineering projects.
Prerequisite: CSC-325 and CSC-343 (C or higher)  
CSC-380  INTERNSHIP  (1-6 Credits)  
This course provides students with the opportunity for practical work experience in a supervised setting. The experience must include the application of concepts and skills the student has learned in the Computer Science program.
Prerequisite: Junior or Senior status required  
CSC-422  DATA COMMUNICATION SYSTEMS  (3 Credits)  
An introduction to the concepts of data communication and networks. Topics include physical media, modulation, multiplexing, error detection and correction, the layered network architecture of the Internet, the services and protocols at each level, addressing, reliable data transfer, routing, naming, and network security.
Prerequisite: CSC-322 (C or higher)  
CSC-452  SOFTWARE ENGINEERING CAPSTONE PROJECT  (4 Credits)  
This course is the capstone design experience for computer science majors. Students integrate and apply the knowledge, skills, and experience that they have gained throughout the program to complete a significant computing project. Students consider the legal and ethical principles that pertain to computing systems as well as their impacts on society.
Prerequisite: CSC-350 (C or higher)