Requirements & Courses
-
Major Requirements
Forty-eight credits, which must include:
- CSC-115, 121, 122, 230, 240, 310, 440, and 450.
- CSC-470 or CSC-500 (4 cr.)
- MTH-120
- Complete eight credits from: CSC courses numbered above 310, MTH-116, 121, 223, 242, 336, or 341. Other courses may fulfill this requirement with permission of the department.
- The senior comprehensive examination is the successful completion of the Major Field Test.
-
Program Considerations
Graduate school bound students are strongly encouraged to take CSC-420, 430, 440, and to minor in mathematics. Many graduate schools expect undergraduate research as part of entering students’ background; thus, a senior thesis is also encouraged. Consult carefully with your advisor. Students seeking a technical professional position upon graduation are strongly encouraged to take CSC-410, 420, 430, 440 and MTH-116 and 117; a practicum is recommended.
-
Minor Requirements
Twenty-four credits, which must include:
- Complete one course from the following: CSC-115, CSC-118, CSC-119, or DAT-116.
- CSC-121 and MTH-120
- Complete a minimum of 12 credits in CSC numbered 200 or above, excluding courses numbered 450 and above.
Note: some advanced CSC courses have CSC prerequisites that could result in a minor larger than 24 credits, this would depend on students’ particular interest.
Courses
-
CSC100.Computer Systems2 creditsIntroduction to the use of modern computer systems. Basics of word-processing, graphics, spreadsheets, Internet access and Web development software. Use of computer peripherals such as printers, scanners and digital cameras. Taught in a laboratory setting.
-
CSC105.Modern Spreadsheets2 creditsPrerequisite: MTH-100 or PlacementIntroduction to the use of modern spreadsheets, with a particular emphasis on business applications. Taught in a laboratory setting.
-
CSC115.Algorithms and Justice4 CreditsSocial media algorithms decide what we see and what we don't see. Machine learning algorithms try to predict what we want-or what we deserve. What do we mean by "algorithms"? How do they affect our daily lives? How do algorithms reproduce, or resist, biases that exist in our society? How do humans communicate these algorithms to the computers that enact them? This course explores all these questions. No previous programming experience is expected; we will spend some exploring algorithms with the Python programming language.
-
CSC116.Programming With Data4 creditsIntroduction to programming techniques for the manipulation and analysis of digital data. Programming topics include: digital representations of data, types of data, programming decision and repetition, functions and libraries for storing and manipulation data in the language of instruction (e.g. the pandas library of Python). Data topics include: common formats (e.g. CSV, JSON, XML, database), missing data, cleaning data, exploratory data analysis. Visualizing and presenting data to support an argument. Cross-listed with DAT-116.
-
CSC117.Image and Reality4 creditsPrerequisite: MTH-100 or PlacementExplores the current reality of artificial intelligence and visions of what it is and will be. Examination of current artificial intelligence systems. Particular emphasis on robotics, with projects involving robot design, creation and programming. Laboratory.
-
CSC118.Introduction to Game Programming4 CreditsIntroduction to programming, focusing on fundamental knowledge and skills for creating videogames. Multiple platforms, including a popular game engine such as Unity or Unreal and the game-writing support in a popular language such as Python.
-
CSC119.Computer Science for Everyone4 CreditsIntroductory overview of fundamental concepts in computer science. Topics include digital representation of information (media, text, numbers), algorithms, ways of approaching programming, the relationship between software and hardware, and the limitations of computers. No previous programming experience expected.
-
CSC120.Object-Oriented Programming I4 creditsPrerequisite: MTH-100 or placementFundamentals of object-oriented programming in the language of instruction (e.g., Java). Topics include: basic computation, input and output, control structures, classes and object instantiation, methods and parameter passing, arrays and strings, sorting and searching. Laboratory.
-
CSC121.Problem-Solving With Python4 CreditsIntensive study of algorithm problem-solving and effective programming using the Python programming language. Use of Integrated Development Environments (IDEs). Overview of functional, imperative, and object-oriented programming techniques. Using and creating modules and libraries. Python's object model. Laboratory.
-
CSC122.Network and Web Programming4 CreditsIntroduction to the design and operation of the internet, especially the World Wide Web. Introduction to client/server applications. Presentation languages such as HTML and CSS; using the Document Object Model to navigate webpages. Implementing client and server applications in a language such as Python or JavaScript.
-
CSC230.Software Design4 creditsPrerequisite: CSC-121 and MTH-120Software design: requirements, specification, modern design techniques, program testing methods. Applications of advanced data structures.
-
CSC240.Algorithms and Complexity4 creditsPrerequisite: MTH-120 and CSC-121Advanced data structures and algorithms, algorithmic analysis, and an introduction to distributed and parallel algorithms.
-
CSC280.Topics in Computer Science2-4 creditsPrerequisite: CSC-121 and PermissionTopical study in computer science. While topics vary, the course usually introduces a particular computer programming language (e.g., C, C++, Prolog, etc.).
-
CSC310.Computer Organization4 CreditsStructure and organization of digital computers, including digital representation of data, digital circuit ("logic") design, and memory addressing schemes. Introduction to low-level programming languages, including assembly languages and programmatic memory management. Laboratory. Course fee.
-
CSC315.Machine Learning4 creditsPrerequisite: DAT 116 or CSC 121, and MTH 242, or PermissionPrinciples and techniques for machine-based decision and prediction from large datasets. Algorithms for and applications of classification, regression, and unsupervised learning. Introduction to neural networks and deep learning. Use of machine learning libraries in languages such as Python and R.
-
CSC335.Computer Graphics4 creditsPrerequisite: CSC-230Introduction to techniques of computer graphics including three-dimensional representations, perspective, computer animation, computer art and applications of computer graphics to various other disciplines.
-
CSC345.Artificial Intelligence4 creditsPrerequisite: CSC-121Survey of major topics in artificial intelligence. Emphasis on fundamental concepts: search, knowledge representation, problem solving and logic. Additional topics such as expert systems, learning, natural language processing, neural networks, planning, theorem proving and vision. Programming in an AI language.
-
CSC380.Topics in Computer Science2-4 creditsPrerequisite: CSC-335 or Permission
-
CSC399.Computer Science Independent Study1 creditRequires instructor permission.
-
CSC410.Database Management4 creditsPrerequisite: CSC-230In-depth study of techniques for storing, selecting and retrieving data. Topics selected from file and database organization, safety and recovery, privacy, security and commercial systems.
-
CSC420.Operating Systems4 creditsPrerequisite: CSC-310Survey of major concepts of operating systems. Investigation of relationships among the operating system, the architecture and the systems programs of a computer system.
-
CSC430.Theory of Computing4 creditsPrerequisite: CSC-120 and MTH-223In-depth study of the main components of the theory of computation: finite automata and computability.
-
CSC440.Languages and Translators4 creditsPrerequisite: CSC-310An in-depth study of the principles of programming languages and language-translation. Includes major programming paradigms in historical and modern contexts and explores language translation via interpreters and compilers, including lexical, syntactic, and semantic analysis.
-
CSC450.Software Collaboration4 CreditsTechniques and practices for the collaborative production and maintenance of software. Software development methodologies. Sharing and managing project assets. Testing, integration, and delivery. Project management. Focus on collaborative creation of a working prototype of a useful software application.
-
CSC470.Computer Science Capstone4 CreditsProject-based synthesis of skills and knowledge from computer science and general education courses. Most projects will emphasize team-based development of software that addresses a problem in the Alma/College community.
-
CSC499.Computer Science Independent Study1 creditRequires instructor permission.
-
CSC500.Senior Thesis1 creditRequires instructor permission.