document.write('

CSC-110 Introduction to R (1 Credits)
R is a freely available language and environment for statistical computing and graphics. This course is a one-credit introduction to R. Course objectives include navigating an integrated development environment, importing data, using data structures and functions, writing scripts and using packages.

CSC-121 Explorations in Computing (4 Credits)
(Q) A broad study of the fundamental ideas in computer science. Topics include the history of computing, data representation, machine architecture, networking and the Internet, algorithms, programming languages, information systems, artificial intelligence, limitations of computing, and ethical issues. Includes in-class laboratory work. Intended primarily for non-majors. May not be taken for credit after 202.

CSC-136 Cyber Threats in the U.S. (4 Credits)
This a Study Away course that highlights the recent advancements going on in the field of Cybersecurity. A combination of classwork and a 10 day trip to Washington DC provides a look into the rapid changes in technology, the manner in which online crime is committed, investigated, and prosecuted. The class will include discussions of current events, and visits to relevant actors working in the nation capital on cyber security. The content will explore the aspect of the law and how they are created and enforced in real-life scenarios. There are no prerequisites, and there will be no final examination. An additional travel fee is required to register for this course.

CSC-150 Artful Computing (4 Credits)
(PA) A studio-based course on the use of computer programming to create generative art in various forms, including 2-D, 3-D, and animated images. Additional topics may include cinematic effects, particle systems, ray-tracing, autostereograms, and computer-generated music and poetry.

CSC-200 Java Boot Camp (0 Credits)
A study of the basics of the Java programming language in preparation for CSC 202. Prerequisite: CSC 201 or equivalent with a minimum grade of C or better, or permission of the department.

CSC-201 Introduction to Computer Science (4 Credits)
Problem solving and program development using the Python programming language. This course covers fundamental ideas of procedural and object-oriented programming, including elementary control structures (loops, conditionals, functions), objects and classes, and structured data types. These ideas will be explored using application areas such as graphics/games, data analysis, business, and science. Prerequisite: Placement into MATH-140 or higher.

CSC-202 Data Structures and Object Oriented Prog (4 Credits)
A study of standard data structures including lists, stacks, queues, trees, sets, and maps, with an introduction to space and time complexity analysis. Coursework requires object-oriented programming in the Java language, including the use of polymorphism and inheritance. Co-registration with CSC-202L (lab) is required. Prerequisite: C or better in CSC 201 or permission of the department.

CSC-202L Lab component of CSC-202 (0 Credits)

CSC-215 Web Programming (4 Credits)
Introduction to web programming, including HTML and CSS, as well as both the server side and client-side use of scripting languages such as JavaScript and PHP. Includes significant project work and in-class lab work. Prerequisite: C or better in CSC 201.

CSC-260 Modeling Our World (4 Credits)
(PN) Introduces the use of computer programming to model various phenomena in the natural and social sciences. Includes agent-based modeling, the emergence of complex patterns from simple rules, and fundamental questions about the nature of models. Connections between quantitative data and qualitative understanding are explored. Application areas may come from a wide range of disciplines, including geology, physics, chemistry, biology, economics, political science, and sociology. Prerequisite: CSC-201 and MATH-140 or placement into MATH-160.

CSC-299 Directed Study (1-2 Credits)

CSC-305 Software Development (4 Credits)
This project-based course covers intermediate programming concepts in event-driven/GUI programming, object-oriented analysis and design, with a strong focus on teamwork, and the tools/skills necessary for collaborative team software development. Software engineering concepts, such as the software life cycle, models, requirement analysis, design, implementation, and testing are also discussed, and agile methodologies for project management are introduced. Significant programming required. Prerequisite: C or better in CSC 202.

CSC-310 Database Management (4 Credits)
A study of the design, implementation, and application of database systems. Topics include entity relationships, the relational model, data constraints, and the use of SQL to query and update information. Database applications are explored through hands-on laboratory work with modern DBMS, as well as programming activities/projects. Prerequisite: C or better in CSC 201.

CSC-320 Principles of Artificial Intelligence (4 Credits)
(PH) An introduction to key concepts of artificial intelligence, including knowledge representation, search algorithms, optimization techniques, and machine learning. Application areas will be selected from natural language processing, image recognition, game playing, problem solving, pattern-finding, and autonomous robotics. Philosophical questions and ethical implications of A.I. will be explored. Prerequisite: C or better in CSC 202 and MATH 250.

CSC-325 Machine Learning (4 Credits)
In this class we\'ll study machine learning using Python, Scikit-Learn, and TensorFlow. We\'ll concentrate on a project-based, hands-on approach using a lot of code that\'s been written already rather than trying to develop everything from scratch. We will cover theory, but also focus on practical implementation through concrete working examples. Prerequisites CSC 201, MATH 160 and either MATH 330 or BUSN 211.

CSC-330 Principles of Computer Systems (4 Credits)
Fundamental ideas of computer systems/organization, including memory, control processing, machine language, assembly language, data representations and number systems, and digital logic. Basic operating systems concepts such as process and memory management will also be discussed. Prerequisite: C or better in CSC 202.

CSC-332 Operating Systems (2 Credits)
Explores fundamental concepts about how an operating system manages shared hardware/resources. Topics include process scheduling, memory allocation, persistent data storage, concurrency, and caching mechanisms at multiple levels of system architecture. This course also discusses some design/implementation choices of modern operating systems. Prerequisite: C or better in CSC 330

CSC-335 Networking Fundamentals (2 Credits)
Fundamentals of computer communication network concepts and protocols at the application, transport, network and link layers. Hands-on lab experience with networking devices/software. Prerequisite: C or better in CSC 330. May not be taken for credit after taking CSC 337

CSC-336 Internet and Cybersecurity (2 Credits)
This course introduces several security challenges related to the Internet, various services/protocols that use it, and the myriad devices now connected to it. Discussion topics include: cyberattacks, counter-measures, hacktivism, the dark web, cryptography, and ethical issues regarding information security. Prerequisite: CSC 335. May not be taken for credit after taking CSC 337

CSC-337 Networking Internet Cybersecurity (4 Credits)
Includes the content of both CSC 335 and CSC 336. Prerequisite: C or better in CSC 330. May not be taken for credit after taking either CSC 335 or CSC 336.

CSC-350 Programming Language Principles (2 Credits)
Provides a brief survey of several different programming languages while discussing some core concepts underlying programming language design. Functional and declarative (logic-based) paradigms will be contrasted with procedural/object-oriented approaches. Prerequisite: C or better in CSC 202

CSC-371 Algorithms and Computational Theory (4 Credits)
A rigorous study of the design, implementation, and analysis of algorithms, with a light introduction to theory of computation. Topics include worst-case vs. average-case performance, complexity classes, problem-solving strategies, heuristics, and NP-complete problems. Illustrative algorithm examples are chosen from classic data structures such as heaps, balanced trees, graphs, and hash tables. Additionally, theoretical models of computing such as finite state machines, regular languages, and Turing machines are introduced. Significant programming required. Prerequisite: C or better in CSC 202 & MATH 250

CSC-380 Special Topics Seminar (2-4 Credits)
In-depth treatment of a computer science topic not regularly offered in the general curriculum. Topic announced for each offering. Prerequisites: C or better in CSC 202 or permission of instructor.

CSC-391 Coding Challenges (1 Credits)
Hands-on practice solving challenging programming problems. Solutions may require the implementation of algorithmic strategies such as recursive backtracking, dynamic programming, graph manipulation, and computational geometry. This course is intended for students interested in preparing for coding contests or technical job interviews, or simply improving their problem solving and programming skills. Prerequisite: CSC 202 and permission of instructor.

CSC-393 International Study Colloquium (3-4 Credits)

CSC-399 Directed Study (1-2 Credits)

CSC-400 Independent Study (1-2 Credits)
Prerequisite: 6 upper-division credits in computer science and consent of department chair.

CSC-480 Special Topics Seminar (2-4 Credits)
In-depth treatment of a computer science topic not regularly offered in the general curriculum. Topic announced for each offering. Prerequisites: CSC 202 or permission of instructor.

CSC-490 Senior Inquiry (4 Credits)
Synthesizing skills and knowledge acquired from previous courses and the broader liberal arts experience, this course involves the completion of a major computer science project. A typical example would be a team-based software development project including the specification, design, implementation, and testing of a mobile application. Prerequisite: Senior standing. (Open to graduating seniors or by permission of instructor only.)

CSC-ELEC AP Computer Science A (4 Credits)

');