Academic Catalog

Computer Science (CSC)

CSC-131  INTRO PROGRAMMING USING PYTHON  (3 Credits)  
An introduction to programming and computer science using the Python programming language. Topics include structured imperative program design, data types, control structures, strings, lists, dictionaries, computational problem solving, program implementation, testing and debugging.
Prerequisite: Take MAT-121 (C or higher) May be taken concurrently.  
CSC-132  INTERMEDIATE PROGRAMMING USING PYTHON  (4 Credits)  
A continuation of CSC-131. Further development of problem solving and programming skills using additional features of the Python programming language. Topics include exception handling, user defined classes, modules, data visualization and GUI and event driving programming. Introduction to software engineering practices for version management, coding conventions and automated testing.
Prerequisite: CSC-131 (C or higher), Take MAT-122 previously or concurrently  
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, alternative programming paradigms and the history and evolution of programming languages. Several languages are introduced and examined.
Prerequisite: CSC-231 (C or higher)  
CSC-231  INTRO DATA STRUCTURES USING C++  (3 Credits)  
A study of classical data structures and their implementations using the C++ programming language. Topics include abstract data types, contiguous vs linked structures, containers, dictionaries and trees. Introduction to time complexity analysis using Big O notation. Further development of advanced programming concepts including programmer-defined classes, recursion, indirection, dynamic memory allocation, iterators, polymorphism and templates.
Prerequisite: CSC-132 (C or higher), EGR-112 (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: EGR-226 (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 (C or higher)  
CSC-343  DATA STRUCTURES AND ALGORITHMS  (3 Credits)  
A continuation of CSC-231 that includes more advanced data structures and an overview of classical algorithms and their applications. The course emphasizes computational problem solving techniques and includes time and space performance analysis and an introduction to computational complexity. Topics include sorting, searching, hashing, heaps, string proessing, as well as graph, geometric and mathematical algorithms. Algorithms are implemented primarily in C++ and Python.
Prerequisite: CSC-231 (C or higher), MAT-243 (C or higher), MAT-245 (C or higher), MAT-251 (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 (C or higher), CSC-231 (C or higher), EGR-226 (C or higher)  
CSC-380  INTERNSHIP  (3 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: EGR-226 (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)