Computer Science Courses

Prerequisites

Almost all of our mathematics and computer science courses have prerequisites. Introductory courses require mastery of elementary skills as demonstrated by the combination of a student's high school preparation and a satisfactory placement test score. Enrollment in courses beyond the introductory level require successful completion of another Albion course as listed in the catalog or comparable course at another institution. Students taking an advanced course should have at least a 2.0 in all prerequisite courses. The purpose of a prerequisite is to ensure a student has a solid foundation of necessary skills required to succeed in completing course objectives. Prerequisites protect students by ensuring they are not asked to perform activities for which they are not prepared. We have established the prerequisites for our courses to help students have a coherent learning experience.

Prerequisites are strictly enforced. Before enrolling in a course, all of its prerequisites must be completed. A student enrolled in a course will be dropped from the course if they have do not have the prerequisites. In a few special situations a student may be granted permission to enroll in a course without a prerequisite. These situations are rare and must be approved in consultation with the student's academic advisor and the course instructor. The instructor of the course and department chair have the final decision to waive a prerequisite. Students granted a waiver cannot expect the course to be taught at a lower level or demand the instructor teach prerequisite material. Expectations of all students in a course are the same even if a waiver of a prerequisite is granted.

151 Information Technology 1 unit
Fall, Spring
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. Laboratory. Does not count toward the computer science major or minor.

171 Introduction to Computer Science I 1 unit
Fall, Spring
Prerequisite: Mathematics 125 (or equivalent); or permission of the instructor.
Designed to be the first computer science course taken by students in mathematics and science, as well as those wishing to major in computer science. Topics include fundamentals of computation and algorithmic problem solving, data types, control structures, the object-oriented programming paradigm, and applications. The course introduces a high level programming language such as Java or Python. Students with a year or more of computer science at the secondary level may be qualified for Computer Science 173.

173 Introduction to Computer Science II 1 unit
Spring
Prerequisite: Computer Science 171.
A continuation of Computer science 171. Emphasis is on advanced object-oriented programming (interfaces, multiple inheritance, reflections), abstract data types (stacks, queues, lists, strings, trees, graphs, 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 will refine their programming skills in a high-level programming language such as Java or Python.

256 Practicum in Programming Languages 1/4 unit
Fall, Spring
Prerequisite: Computer Science 171 or permission of the instructor.
Designed to teach an additional computer language beyond those currently used in the computer science courses. The emphasis will be on 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 devoted to developing problem-solving skills in computer programming.

261 Computers, the User, and Society 1 unit
Fall every third year, 2008, 2011, ...
Prerequisite: Computer Science 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.

263 Operating Systems and Networks 1 unit
Fall every third year, 2006, 2009, ...
Prerequisite: Computer Science 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.

265 Database Programming 1 unit
Fall every third year, 2007, 2010, ...
Prerequisites: Computer Science 173 and Mathematics 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.

271 Artificial Intelligence 1 unit
Spring every third year, 2006, 2009, ...
Prerequisites: Computer Science 173 and Mathematics 239
Basic techniques of artificial intelligence including knowledge representation and reasoning, problem solving and planning, game playing, and learning. As part of the course, students will learn common AI programming languages such as Scheme, Lisp, and/or Prolog.

273 Computer Graphics and Image Processing 1 unit
Spring every third year, 2007, 2010, ...
Prerequisites: Computer Science 173 and Mathematics 236 or 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. The course will cover the basics of image generation, image manipulation, and digital special effects. The course will involve a significant programming project using the OpenGL programming interface.

275 Software Development 1 unit
Spring every third year, 2008, 2011, ...
Prerequisite: Computer Science 173.
An introduction to the techniques of developing large software projects including unit testing, version control, and build management. Students will learn the popular industrial languages C and C++, and part of the course will involve a large group programming project.

299 Colloquium in Mathematics & Computer Science I 1/4 unit
Fall, Spring
Offered only on a credit/no credit basis.
Prerequisite: Computer Science 173 or Mathematics 143.
Selected topics in mathematics and computer science as presented by students, departmental faculty and visiting speakers. In addition to submitting written summaries of each presentation, students also write a paper on a mathematics/computer science topic of personal interest.

316 Numerical Analysis 1 unit
Fall of odd-numbered years
Prerequisites: Computer Science 171 and Mathematics 247 or 236.
Methods of obtaining numerical solutions to mathematical problems. The implementation and error analysis of algorithms are stressed. Topics include: solution of non-linear equations, systems of equations, interpolating polynomials, numerical integration and differentiation, numerical solution to ordinary differential equations, and curve fitting.

326 Operations Research 1 unit
Spring of odd-numbered years.
Prerequisites: Mathematics 236 or 247, and Mathematics 245.
An introduction to computational methods in mathematical modeling, including linear programming and Markov chains. Applications in business, economics and systems engineering. Knowledge of probability will be helpful.

352 Algorithms 1 unit
Fall of odd-numbered years
Prerequisite: Computer Science 171 and Mathematics 239.
This course focuses on the design and efficiency of algorithms. The basic algorithm paradigms will be studied including graph traversals, greedy algorithms, divide and conquer, dynamic programming, and flow algorithms. The course will introduce complexity theory, NP-completeness, and polynomial-time reductions. Additional topics may include approximation algorithms, randomized algorithms, and linear programming.

354 Computer Organization 1 unit
Spring of even-numbered years
Prerequisite: Computer Science 173.
Topics on the 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.

356 Programming Languages 1 unit
Fall of even-numbered years.
Prerequisite: Computer Science 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. Students will learn to program in the functional paradigm by studying the Scheme programming language. As part of the course, students will develop a language interpreter.

358 Foundations of Computing 1 unit
Spring of odd-numbered years.
Prerequisite: Computer Science 171 and Mathematics 239.
The theoretical underpinnings of computer science: models of computation including automata, Turing machines, and circuits, the Chomsky language hierarchy, Church's thesis, computable and noncomputable functions, recursive and recursively enumerable sets, reducibility, introduction to complexity theory.

360 Mathematical Modeling 1 unit
Spring of even-numbered years.
Prerequisites: Computer Science 171 and Mathematics 247.
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.

388, 389 Topics 1/2, 1 unit
Fall, Spring
Prerequisite: Permission of instructor.
Topics in computer science such as recursive function theory, computational complexity, formal languages and algorithms.

391, 392 Internship 1/2, 1 unit
Fall, Spring
Offered on a credit/no credit basis.

399 Colloquium in Mathematics & Computer Science II 1/4 unit
Fall, Spring
Offered only on a credit/no credit basis.
Prerequisite: Mathematics/Computer Science 299 and senior standing.
Selected topics in mathematics and computer science as presented by students, departmental faculty and visiting speakers. In addition to submitting written summaries of each presentation, students take a departmental major assessment examination, and give an oral presentation on a mathematics/computer science topic of personal interest.

411, 412 Directed Study 1/2, 1 unit
Fall, Spring

See the registrar's page for http://www.albion.edu/academics/catalog/departments/compsci.asp for a printable page of academic information.


Albion College  Albion, Michigan 517/629-1000
Home | Site Index | People Directory | Search | Contact Us
© 2009 All rights reserved.