Computer Science Course Descriptions
Scroll down to read descriptions of the computer science courses offered at Carthage, or click on these links for additional resources:
Data Science I (QR)
CSC 1030 / 4 credits
This class introduces students to the foundational skills needed for data analysis: data manipulation and visualization, statistical summarization, and problem-solving using data. No prior programming experience is needed, and students will become proficient at writing code in a modern computer environment.
Offered in Fall/Spring
Data Science II
CSC 1040 / 4 credits
This class introduces students to the data structures and algorithms needed for complicated data analysis tasks. No prior programming experience is needed, and students will learn principles of computer science that will benefit them in future programming endeavors.
Prerequisite: CSC 1030 with a grade of C or better
Offered in Spring
Introduction to Computing (QR)
CSC 1100 / 4 credits
An introduction to the art and science of computer programming for the student without previous programming experience. Topics covered include the historical development of computing, the basic operating principles of computers, and an introduction to problem-solving using one or more high-level computing languages, such as Python. Intended for nonmajors/nonminors. Does not count toward major or minor in CSC.
Offered in Fall/Spring
Game Design
CSC 1710 / 4 credits
This course provides a practical foundation in game design with a focus on concept development, prototyping, and design decomposition. Students learn how to translate game ideas, themes, and metaphors into gameplay, game concept pitches, and design documents using game design principles, physical prototyping, and iterative development suggestive of Agile methods.
Principles of Computer Science I
CSC 1810 / 4 credits
A study of the fundamentals of writing computer programs and problem-solving, using structured and object-oriented techniques. Intended for future majors and minors in Computer Science and minors in Game Development. Students are strongly encouraged to enroll in this course in the Fall term of their first year.
Offered in Fall/Spring
Principles of Computer Science II
CSC 1820 / 4 credits
The emphasis of this course is on problem-solving. Students will mature as problem-solvers as they are presented with increasingly challenging problems to program.
Prerequisite: CSC 1810 with a C- or higher
Offered in Spring, with limited Fall availability
Data Science I (QR)
CSC 2030 / 4 credits
This class introduces students to the data science process by surveying the foundational topics in data science, namely data manipulation, data analysis with statistics, communicating results via data visualization, and data at scale (working with big data).
Computing Paradigms
CSC 2210 / 4 credits
A survey of language-design issues and run-time behavior of several programming languages suitable for different problemsolving paradigms (structured, functional, object-oriented).
Prerequisite: CSC 1820 with a C or higher
Computer Organization
CSC 2510 / 4 credits
A study of the logical organization of computers, including combinatorial and sequential digital logic, computer arithmetic, and circuits. Machine and assembly languages, memory, addressing techniques, interrupts, and input-output processing also are studied.
Prerequisites: CSC 1120 and either MTH 1060 or MTH 1240 Spring
Data Structures and Algorithms
CSC 2560 / 4 credits
An examination of advanced programming techniques for problem-solving and manipulating data using primarily object-oriented approaches.
Prerequisite: CSC 1820 with a C- or higher
Offered in Fall
Game Development I
CSC 2710 / 4 credits
Video games are serious work. Reaching far beyond the multibillion-dollar gaming industry, the lessons of video game development increasingly translate to disparate fields requiring simulation, training, and easy-to-use interfaces. This course introduces students to the game development and design process. Students will build games representative of a variety of genres. This is a project-based course.
Corequisite: CSC 1810 or instructor permission
Alternating Fall
Game Development II
CSC 2720 / 4 credits
A continuation of CSC 2710 Game Development I with an emphasis on three dimensional environments. This is a project-based course.
Prerequisite: CSC 2710 with a C- or better
Game Development III
CSC 2730 / 4 credits
A continuation of CSC 2720 Game Development II focusing on advanced topics such as save systems and multiplayer.
Prerequisite: CSC 2720 with a C- or better
Database Design and Management
CSC 2810 / 4 credits
An introduction to database methods including data models (relational, object-oriented, network, and hierarchical); database design and modeling; implementation and accessing methods; and SQL. Students will design and implement a database using a database management system.
Prerequisite: CSC 1820 with a C- or higher
Object-Oriented Programming
CSC 2910 / 4 credits
An introduction to object-oriented design techniques including encapsulation, inheritance, and polymorphism. Other features of modern object-oriented programming languages are covered as well, including exception handling, garbage collection, event handling, and threads. A modern object-oriented language such as Java will be used.
Prerequisite: CSC 1820 with a C- or higher
Computing Paradigms
CSC 3210 / 4 credits
A survey of language-design issues and run-time behavior of several programming languages suitable for different problem-solving paradigms (structured, functional, object-oriented).
Prerequisite: CSC 2560 with a C- or higher
Computer Organization
CSC 3510 / 4 credits
A study of the lower levels of computers. Machine and assembly languages, memory, addressing techniques, interrupts, and input-output processing are also studied. This course compliments CSC 4370 Operating Systems. Students are encouraged to take this course in spring and CSC 4730 in the following fall term.
Prerequisite: CSC 2560 with a C- or higher
Offered in Spring
Artificial Intelligence and Cognitive Modeling
CSC 3530 / 4 credits
This course explores the primary approaches for developing computer programs that display characteristics we would think of as being intelligent. Students will analyze how intelligent systems are developed and implemented with a focus on exploring how human behavior on cognitive tasks can be used to inform the development of these artificial systems, as well as how the performance and behavior of these artificial systems can inform our understanding of human cognition.
Prerequisite: CSC 2560 with a C- or higher or with permission of instructor
Network Programming
CSC 3600 / 4 credits
An examination of data communications and communications networks including signal encoding, multiplexing, circuit and packet-switched networks, TCP/IP, WANs, LANs, and intranets. Particular emphasis is placed on socket-based, multi-threaded programming.
Prerequisite: CSC 2560 with a C- or higher
Game Engine Programming
CSC 3710 / 4 credits
In this course, students will create their own 2D game engine using approaches such as the Entities, Components, and Systems architecture. Students will develop thier own animation, physics, collision, and pathfinding systems. Students will also be required to create a level editor for their engine. This is a projects-based course.
Prerequisite: CSC 2560 with a C- or higher
Algorithms
CSC 3750 / 4 credits
This course studies various problem-solving strategies and examines the classification, design, complexity, and efficiency of algorithms.
Prerequisites: CSC 1820 with a C- or higher and either MTH 1060 or MTH 1240
Computer Graphics (AI)
CSC 3770 / 4 credits
Given the ubiquity of computer graphics in modern culture (in forms such as computer gaming, motion pictures, and other kinds of visual entertainment), the deeply technical nature of its formulation and construction can be overlooked. This course provides an introduction to computer graphics covering aspects of linear algebra, geometry, color, vision, and the unique nature of modern graphics programming. This course is project driven.
Prerequisite: CSC 2560 with a C- or higher
Foundations of Computer Science
CSC 3810 / 4 credits
This course examines various models of computation, including finite and pushdown automata and recursive functions. Language grammars, parsing, and complexity classes also are studied. Special schedule.
Prerequisite: CSC 3750
Senior Seminar
CSC 4000 / 4 credits
Students review and discuss current issues and trends in computer science. During this course, students are expected to substantially complete their senior capstone or thesis.
Prerequisites: Senior standing, completion of six CSC courses, and instructor permission
Offered in Fall
Software Design and Development
CSC 4350 / 4 credits
An examination of the software development process from analysis through maintenance using both structured and object-oriented methods. Students work together on a team project. Should be taken in the Spring term of junior year.
Prerequisite: CSC 2560 with a C- or higher
Offered in Spring
Independent Study
CSC 4500 / 2-4 credits
Independent study in a topic of interest in computer science that does not duplicate any other course in the regular course offerings.
Prerequisite: CSC 2560
Computer Architecture
CSC 4650 / 4 credits
Students examine various computer architectures including the von Neumann mode, RISC/CISC, and parallel architectures.
Prerequisite: CSC 3510 with a C- or better
Operating Systems
CSC 4730 / 4 credits
A study of the basic components and concepts of a multitasking operating system including processes, scheduling, resource management, I/O and file systems, virtual memory, security, and semaphores. This course is project intensive.
Prerequisite: CSC 2560 with a C- or higher
Offered in Fall
Research in Computer Science
CSC 4900 / 1-4 credits
An opportunity to conduct research in computer science, culminating in a research paper.
Prerequisites: CSC 1820 with a C or higher and instructor approval
Senior Thesis Completion
CSC 4990 / 0 credits
Students should register for CSC 4990 during the semester that they intend to complete and present their Senior Thesis.