59 courses with the subject CSC, each shown exactly as we captured it from the college's catalog, with every element we hold. Where the wording looks broken, that is our reading of the catalog, not the college's text.
CSC 105Computing Competencies for College and the Workplace3
College-level computing education for all majors focusing on software skills employers most frequently seek, technology-related social, legal and ethical issues, and foundational understanding of current digital technologies for efficient organization and effective communication. Students will choose one additional topic of interest such as business or graphic design.
Introduction to programming in a high-level language. Algorithms, computer systems, data representation, survey of computer applications, elementary programming techniques, debugging and verification of programs. The language to be used will be specified in the schedule of classes. Recommended primarily for non computer science majors.
Problem-solving methods and algorithms in a modern high-level programming language. Introduces classes and objects; control structures; arrays; characters and strings. Emphasis on programming style and the design, coding, and testing of complete programs.
Problem solving methods and algorithms in a modern high-level programming language. Introduces one or more programming environments. Emphasis on a programming style and the design, coding, and testing of complete programs. Recommended primarily for computer science majors.
Introduction to discrete mathematics applicable to computer science. Propositional and predicate logic, basic proof techniques, set algebra and Boolean algebra, recursion and induction, and introductory graphs and combinatorics.
Introduction to Artificial Intelligence (AI) fundamentals for all majors with minimum/no computer programming skills. Exploration of AI concepts and machine learning (ML) techniques to learn when and how to use AI tools to solve problems and to create AI/ML predictive models. Practical applications of AI/ML for various domains will be studied to understand and leverage AI/ML technology.
Project-based approach to learning fundamental principles of 3-D computer graphics using high-level software tools. Modeling of objects, geometrical transformations, surface algorithms, lighting and shading, alternative rendering techniques, and providing background skills necessary to create animated movies.
ART 260 or ART 282 . Crosslisting: ART 220 , FST 220 Course Repeatability: Course may not be repeated.
CSC 231Introduction to Data Structures4
Study of basic data structures and their applications. Lists and trees; searching and sorting algorithms; hashing; analysis and design of efficient algorithms. Recommended for CSC majors only. A grade of ‘C’ (2.00) or better is required for taking courses for which CSC 231 is a prerequisite.
Topics include data representation, CPU organization, I/O memory and communication, machine-level representation of programs, introduction to a modern instruction set, introduction to assembly language programming.
Topics of current interest relating to computer science or computer technology and its uses not covered in existing courses. May be repeated under a different subtitle.
Computer Science research under faculty supervision beyond what is offered in existing courses. Written experience report and oral presentation required.
Introduction to foundational topics on Artificial Intelligence and mathematical foundation suitable for the studies of AI. Topics include modern historical perspectives of AI, intelligent agents, search algorithms, machine learning, knowledge representation, ethical and societal implications of AI.
Introduction to Quantum Computing. Topics include an introduction to quantum mechanics, Quantum Computer technologies, models for describing qubits, gates, and operations, superposition, entanglement, teleportation, quantum supremacy, and quantum algorithms.
Concepts and technologies for developing applications on mobile devices, including mobile-platform programming, memory-management, object-oriented paradigms, model-view-controller design, mobile-centric frameworks for networking, multimedia, location-based services, and interface design. Application design, programming, and implementation for a current mobile platform.
Basic principles of animation using 3-D computer-generated animation and basic processes for animating synthetic objects through structured exercises. Principles of designing and producing 3-D computer-generated animation through the creation of advanced motion studies. Projects focus on developing higher-level skills in model building, animation and color, and lighting.
Concepts/techniques in machine learning and multidisciplinary applications. Topics include data cleaning/transformation; data visualization; association/correlation rules; data classification and predictive modeling (such as SVMs); performance analysis and scalability; data mining with tabular, multi-dimensional and unstructured data, including text, audio, images; big-data frameworks (such as Spark, Hadoop, HIVE, Pig); and emerging themes and challenges.
Cyber Operations will introduce various cyber operations concepts, with specific focus on the computing aspects. Topics covered will include: Basics of cyber operations including an overview of cybercrime; malware analysis; intrusion detection and prevention; web application security; cybersecurity ethics.
Object-oriented programming with a focus on software modeling of objects, classes, methods, inheritance, interfaces, polymorphism, and multi-threading. Completion of a team software project is required.
Introduction to the design, application, and performance of numerical algorithms fundamental to scientific computation. Topics may include error and error propagation; matrix applications such as finding solutions to linear systems, finding eigenvalues and eigenvectors, or finding linear principal components; optimization; basic Markov modeling; Fourier processing; and curve fitting. Emphasizes relative merits and implementations of algorithms.
Study of the internal operations of operating system. Topics include system services; CPU scheduling; multi-core scheduling; threading; computer security; privileges vs. user modes; memory management; virtual memory; file systems; disk scheduling; concurrent processes; semaphores; critical sections; synchronization.
Introduction to computer networks, focusing on Internet architecture and protocols. Topics include layered network architectures, addressing, naming, forwarding, routing, communication reliability, client-server model, distributed computing, web and email protocols, and network security. Students acquire practical experience by using a network protocol analyzer and programming reduced versions of real Internet protocols.
Foundation for programming secure software applications. Introduction to the mechanics of code exploitation, including programming principles that guard against software vulnerabilities. Considers overflows, input sanitization, password security, command injection, web application vulnerabilities, development and testing for secure software and sound security fundamentals, and core concepts in web applications and database development.
Introduction to the development of secure software applications. Consideration of software vulnerability analysis, secure programming best practices, overflows, input sanitization, password security, command injection, database development, and web application development and vulnerabilities. Design, analysis, and implementation of a secure web application.
Introduction to database concepts and database management systems. Topics include data models (hierarchical, network, relational, parallel, distributed and NoSQL), data modeling, data description languages, data manipulation languages, database administration, data warehouses, and front-end development. A group project designing and implementing a relational database is required.
An introduction to theoretical computer science. Topics include regular expression and finite state concepts; basic automata theory; formal grammars and languages; computability; Turing machines; elementary recursive function theory.
Formalizing security, hash functions, symmetric and public-key encryptions are some of the main topics of this course. Early ciphers like the Caesar shift and the Vigenère cipher and modern techniques like RSA, Diffie-Hellman protocol and their theoretical foundations, practical applications and the vulnerabilities of each encryption system will be discussed.
Development of applications for the World Wide Web focusing on client-side languages. Introduction to current principles, standards, and best practices in website design, usability, accessibility, and management through project-based skills. Development in standards-compliant markup, styling, and scripting, including web services programming.
Combined studio/lecture course that examines technologies and basic principles of the Internet specific to visual interface design and interactivity. Topics covered include technical, functional, and aesthetic issues related to basic graphic design and page design principles; site planning and implementation; graphic production using software and designing for user experience.
Introduction to geometric modeling for graphic programming. Topics include transformations for modeling, viewing, and projection; geometric modeling of curves and surfaces; hidden-surface removal; clipping; graphical buffers; material simulation; texture mapping; and lighting.
Coverage of practical concepts related to game engine development. Topics include collision detection, rigid body motion, physics simulations, animation systems, audio, rendering, and game loop architecture.
Algorithm design paradigms such as divide and conquer, greedy, and dynamic programming; techniques for algorithm analysis, such as asymptotic notations and estimates, as well as time/space trade-offs. Topics may include sorting, searching, scheduling, string matching, graph algorithms, amortized analysis, and computational geometry.
CSC 385Professional and Ethical Issues in Computing3
Professional and ethical issues arising from the impact of computer science and related technologies on society. Topics include ethical issues, obligations of professional practice, privacy and security, intellectual property, work and health issues, and the impact of emerging technologies. Students give both oral and written presentations and discuss case studies.
Advanced principles related to the field of Artificial Intelligence. Applications of AI in game trees, decision systems, artificial neural networks, Bayesian networks, intelligent multi-agent systems and fundamentals of reinforcement learning.
Design and implementation of computer games, including design, modeling, and animation of meshes for game characters and environments using 3D software, scene and object representation, graphics pipeline, collision detection, picking, graphics optimization, basic physics and Artificial Intelligence for games, and code modifications and additions for a game engine.
Design and implementation of software solutions to achieve security goals using data captured on computer systems and networks. Topics include advanced network forensics, network defense tools and principles, and advanced intrusion detection and prevention implementations.
Explores the use of quantum effects, such as quantum entanglement and uncertainty, to implement cryptographic tasks with levels of security that are impossible to achieve classically. Quantum cryptography is an alternative approach in which cryptographic schemes that are resistant to quantum adversaries are proposed.
Exploration of digital image and video representation and manipulation for motion-picture visual effects. Topics include image storage and compression, film and video formats, compositing, filtering, scripting for graphics and visual effects, photorealistic lighting and rendering, virtual cinematography, camera tracking, and particle effects.
Advanced topics in deep machine learning and exploration of innovative paradigms that illuminate the future of machine learning. Capstone format emphasizing experiential approaches to solving real problems with deep machine learning.
Introduction to natural language processing, computational linguistics, and speech recognition. Exploration of both symbolic and stochastic algorithms for processing human languages. Topics include parsing, part of speech tagging, semantic representation, pragmatic analysis, discourse structure, machine translation, n-gram statistical models, Hidden Markov Models, and other stochastic techniques.
CSC 331 with a minimum grade of C. Crosslisting: No Course Repeatability: Course may not be repeated.
CSC 434Programming Languages3
Comparative study of programming languages from both theoretical and applied viewpoints. Typical issues include syntax and semantics, scope and binding times, storage allocation, parameter-passing techniques, control structures, run-time representation of programs and data. Detailed examples from the imperative, functional, parallel, object-oriented, and logical programming paradigms.
Implementation of scientific algorithms in parallel. Use of shared-memory, distributed-memory, and multicore technologies. Study of techniques for improved performance and issues related to speedup and slowdown.
Advanced study of the architecture of computer systems. Common processor organizations, hardwired and micro-programmed control, input/output subsystem; bus control; programmed I/O; DMA and interrupts; memory subsystem; interleaved, cache and associative memory; cache design; instruction pipelines, arithmetic pipelines, and their scheduling, RISC and CISC architectures, common multiprocessor architectures.
Study of the design and production of large and small software systems. Topics include systems engineering, software life-cycle and characterization, use of software tools, and software quality attributes including product security. Substantial software project required.
Analysis of how real-world information can be computationally extracted from visual data. Foundation in digital image formation and processing, feature extraction and matching, and classification. Examination of a focused area of computer vision in-depth and analysis of classical and learning-based methods for performing a specific task such as object/scene recognition and retrieval, video tracking, or 3D reconstruction.
Study of programming language translation. Organization of a compiler including symbol tables, lexical scan, syntax scan, object code generation, error diagnostics, object code optimization, and overall design; compilation of simple expressions and statements; use of compiler writing tools. Substantial software project required.
Study of the fundamentals of virtual reality (VR) and virtual environment technology (VET). Topics include human perception and cognition; scientific research, training, and industry; building good user experiences; and other topics. Students are required to develop a VR-based application as a final project and paper.
Examination of advanced constructs in modern cryptography, including Diffie-Hellman key exchange, Merkle trees, ElGamal encryption, and fully homomorphic encryption. Introduction to cryptanalysis techniques for analyzing and decoding ciphers.
Hands-on development of dynamic web applications via server-side languages and corresponding database APIs; implementation of industry best practices regarding data; secure authentication; digital certificates; session-handling; introduction to cryptography and e-commerce. Practical experience with form validation, full stack development including single-page applications, and website security using database principles and query techniques.
Fundamentals of basic malware analysis through static and behavioral analysis of malicious software. Coverage of the compilation process that takes human readable code to compiled machine readable code and to numerous tools used for malware analysis.
Coverage of the binary analysis skills necessary to discover the true nature of any executable binary. Examination of the high-level language constructs, including branching statements, looping functions and network socket code, critical to performing a thorough and professional reverse engineering analysis of a binary file.
Overview of computer hardware security. Topics include side channel attacks, physical unclonable functions, TRNG, supply chain management, hardware Trojans, the power grid, and smart cities.
Application of software engineering methods to develop complex scene and character reactions in real time under frame rate management and time constraints. Considers project management, time and frame rate management, low polygon asset construction, 3D environment building, latency and playback improvement, design, development, testing, production, and game engine maintenance.
Introduction to deep learning tools for generation of images, text data, music, and autonomous vehicle controls. Explores the difference between discriminative models and generative models. Topics include the design and construction of models using autoencoders, variational autoencoders, generative and adversarial networks. Requires a generative capstone project.
Investigation under faculty supervision beyond what is offered in existing courses. Written experience report and oral presentation required. For further information, consult the Enrichment Courses and Programs section in this catalogue.
Academic training and practical experience through work in a private company or public agency. Faculty supervision and evaluation of all study and on-site activity. Open to students of junior or senior standing who have been approved by the faculty supervisor, department chair, and dean. Written experience report and oral presentation required.