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.
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.
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.
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.
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)