Apr 29, 2024  
2018-2019 Academic Catalog 
    
2018-2019 Academic Catalog [ARCHIVED CATALOG]

Course Descriptions


Course Numbering System

The following lists include all courses normally offered at Albion College. However, not all courses are offered every year. When possible, courses offered in alternate years are designated. For details, students should consult the Class Schedule for each semester, available online at: www.albion.edu/registrar. The College reserves the right to add or withdraw courses without prior announcement, as conditions may require.

Unless otherwise stated, 100 level courses are intended for freshmen, 200 level for sophomores, 300 and 400 level for juniors and seniors.

A list of courses which meet the core and category requirements, organized by departments, is available online at www.albion.edu/registrar.

Further information may be obtained at the Registrar’s Office in the Ferguson Student, Technology, and Administrative Services Building.

 

Computer Science

The Department of Mathematics and Computer Science reserves the right to deny enrollment to students taking courses out of sequence as determined by prerequisites.

  
  • CS 151: Information Technology


    (1 Unit)
    Intended for the liberal arts student who wants to understand and better use information technology. Topics include how computers work, the Internet and World Wide Web, new trends in computing such as mobile computing and peer-to-peer networks, how software development differs from traditional manufacturing, how computing is changing our culture and laws, current trends in computer crime, security, and privacy. Additional topics are drawn from current events and issues. Does not count toward the computer science major or minor. Laboratory. Does not count toward the computer science major or minor. Staff.
  
  • CS 171: Introduction to Computer Science I


    (1 Unit)
    Prerequisite: MATH 125  (or equivalent) or permission of instructor.
    Designed to be the first computer science course taken by students in mathematics and computer science. Topics include fundamentals of computation and algorithmic problem-solving, data types, control structures, the object-oriented programming paradigm and applications. Introduces a high-level programming language such as Java or Python. Reimann.
  
  • CS 172: Accelerated Introduction to Computer Programming


    (1/2 Unit)
    Prerequisite: Permission of instructor.
    Intended for students receiving AP or transfer credit for CS 171 . It is recommended that such students take this course prior to enrolling in additional computer science courses. An overview of programming in the same high-level language used in CS 171 . Reimann.
  
  • CS 173: Introduction to Computer Science II


    (1 Unit)
    Prerequisite: CS 171 .
    A continuation of CS 171 . Emphasizes advanced object-oriented programming (interfaces, multiple inheritance, reflections), abstract data types (stacks, queues, lists, strings, trees, graphics, etc.) and analysis of algorithms. Other topics include recursion, searching and sorting, simulation and an introduction to some of the advanced areas of computer science, e.g., computer organization, artificial intelligence and user interfaces. Students refine their programming skills in a high-level programming language such as Java or Python. Reimann.
  
  • CS 256: Practicum in Programming Languages


    (1/4 Unit)
    Prerequisite: CS 171  or permission of instructor.
    Designed to teach an additional computer language beyond those currently used in the computer science courses. Emphasizes writing and debugging programs that use the special features of the language. FORTRAN and C are the languages that have been taught most recently. Special sections of this course have been offered that are devoted to developing problem-solving skills in computer programming. Staff.
  
  • CS 261: Computers, the User and Society


    (1 Unit)
    Prerequisite: CS 171 .
    An examination of how computers are used and how computers fit into society. Topics include user interface design, human-centered software development and evaluation, software reliability, social context of computers, professional and ethical responsibilities for technology professionals, intellectual property rights, privacy and civil liberties, computer crime. Offered every third year. Offered every third year. Reimann, Staff.
  
  • CS 263: Operating Systems and Networks


    (1 Unit)
    Prerequisite: CS 173 .
    The role of operating systems, concurrency and deadlock avoidance, memory management, client-server models, device management, networking, LANs and WANs, TCP/IP, network architectures, security, trends in networks such as wireless networks and the Internet. Offered every third year. Offered every third year. Reimann.
  
  • CS 265: Database Programming


    (1 Unit)
    Prerequisites: CS 173  and MATH 239 .
    Fundamental concepts of database management systems: the relational data model, relational algebra, and normal forms, file organization and index structures, and the query language SQL and embedded SQL. Offered every third year. Reimann, Staff.
  
  • CS 271: Artificial Intelligence


    (1 Unit)
    Prerequisites: MATH 239  and CS 173 .
    Basic techniques of artificial intelligence including knowledge representation and reasoning, problem-solving and planning, game playing, and learning. Covers AI programming and languages. Offered every third year. Staff.
  
  • CS 273: Computer Graphics and Image Processing


    (1 Unit)
    Prerequisites: CS 173  and Mathematics 236 or MATH 247 .
    A unified introduction to image synthesis and image analysis aimed at students with an interest in computer graphics, computer vision or the visual arts. Covers the basics of image generation, image manipulation and digital special effects. Includes a significant programming project using the OpenGL programming interface. Offered every third year. Reimann.
  
  • CS 275: Software Development


    (1 Unit)
    Prerequisite: CS 173 .
    An introduction to the techniques of developing large software projects including unit testing, version control and build management. Covers the popular industrial languages C and C++ and includes a large-group programming project. Offered every third year. Reimann, Staff.
  
  • CS 316: Numerical Analysis


    (1 Unit)
    Prerequisites: MATH 247  and CS 171 .
    Methods of obtaining numerical solutions to mathematical problems. Stresses the implementation and error analysis of algorithms. Topics include solution of non-linear equations, systems of equations, interpolating polynomials, numerical integration and differentiation, numerical solutions to ordinary differential equations, and curve fitting. Offered in alternate years. Same as MATH 316 . Mason.
  
  • CS 326: Operations Research


    (1 Unit)
    Prerequisites: MATH 247 .
    An introduction to computational methods in mathematical modeling including linear programming and Markov chains. Applications in business, economics and systems engineering. Knowledge of probability is helpful. Offered in alternate years. Same as MATH 326 . Mason.
  
  • CS 352: Algorithms


    (1 Unit)
    Prerequisites: MATH 239  and CS 171 .
    Focuses on the design and efficiency of algorithms. Covers the basic algorithm paradigms including graph traversals, greedy algorithms, divide and conquer, dynamic programming and flow algorithms. Introduces complexity theory, NP-completeness and polynomial-time reductions. Additional topics may include approximation algorithms, randomized algorithms and linear programming. Offered in alternate years. Reimann.
  
  • CS 354: Computer Organization


    (1 Unit)
    Prerequisite: CS 173 .
    Organization of digital computers: digital logic, arithmetic, assembly language, data paths, memory, input-output, secondary storage devices, multiprocessors and computer performance. Programming tools and techniques are also discussed with emphasis on their application in assembly language. Offered in alternate years. Reimann.
  
  • CS 356: Programming Languages


    (1 Unit)
    Prerequisite: CS 173 .
    A survey of the structure of programming languages and programming as an abstract concept. Topics include syntax and semantics, scope rules, environments, types, procedures, parameters, overloading, parametric polymorphism and inheritance. Projects include programming in the functional paradigm using the Scheme programming language and development of a language interpreter. Offered in alternate years. Reimann.
  
  • CS 358: Foundations of Computing


    (1 Unit)
    Prerequisites: MATH 239  and CS 171 .
    The theoretical underpinnings of computer science: models of computation including automata, Turing machines, circuits, the Chomsky language hierarchy, Church’s thesis, computable and noncomputable functions, recursive and recursively enumerable sets, reducibility and introduction to complexity theory. Jordon.
  
  • CS 360: Mathematical Modeling


    (1 Unit)
    Prerequisites: MATH 247  and CS 171 .
    An introduction to analytical methods in mathematical modeling including nonlinear optimization, dynamical systems and random processes. Applications in physics, biology, economics and systems engineering. Knowledge of probability and statistics will be helpful Same as MATH 360 . Mason.

Computer Science: Special Studies

  
  • CS 187: Selected Topics


    (1/4 Unit)
    An examination of subjects or areas not included in other courses. Staff.
  
  • CS 188: Selected Topics


    (1/2 Unit)
    An examination of subjects or areas not included in other courses. Staff.
  
  • CS 189: Selected Topics


    (1 Unit)
    An examination of subjects or areas not included in other courses. Staff.
  
  • CS 287: Selected Topics


    (1/4 Unit)
    An examination of subjects or areas not included in other courses. Staff
  
  • CS 288: Selected Topics


    (1/2 Unit)
    An examination of subjects or areas not included in other courses. Staff
  
  • CS 289: Selected Topics


    (1 Unit)
    An examination of subjects or areas not included in other courses. Staff
  
  • CS 299: Colloquium in Mathematics and Computer Science


    (1/4 Unit)
    Prerequisite: MATH 143  or CS 173 .
    Selected topics in mathematics and computer science as presented by students, departmental faculty and visiting speakers. Requirements include written summaries of each presentation and a paper on a mathematics/computer science topic of personal interest. Same as MATH 299 . Staff.
  
  • CS 387: Selected Topics


    (1/4 Unit)
    Prerequisite: Permission of instructor.
    An examination of subjects or areas not included in other courses. Staff.
  
  • CS 388: Selected Topics


    (1/2 Unit)
    Prerequisite: Permission of instructor.
    An examination of subjects or areas not included in other courses. Staff.
  
  • CS 389: Selected Topics


    (1 Unit)
    Prerequisite: Permission of instructor.
    An examination of subjects or areas not included in other courses. Staff.
  
  • CS 391: Internship


    (1/2 Unit)
    Offered on a credit/no credit basis. Staff.
  
  • CS 392: Internship


    (1 Unit)
    Offered on a credit/no credit basis. Staff.
  
  • CS 399: Colloquium in Mathematics and Computer Science


    (1/4 Unit)
    Prerequisites: CS 299  and senior standing.
    Selected topics in mathematics and computer science as presented by students, departmental faculty and visiting speakers. Requirements include written summaries of each presentation, a departmental major assessment examination and an oral presentation on a mathematics/computer science topic of personal interest. Offered only on a credit/no credit basis. Same as MATH 399 . Staff.
  
  • CS 401: Seminar


    (1/2 Unit)
    A detailed study of significant and relevant problems in communication studies. Specific topic for consideration will be determined before registration. Staff.
  
  • CS 402: Seminar


    (1 Unit)
    A detailed study of significant and relevant problems in communication studies. Specific topic for consideration will be determined before registration. Staff.
  
  • CS 411: Directed Study


    (1/2 Unit)
    Staff.
  
  • CS 412: Directed Study


    (1 Unit)
    Staff.