Birmingham-Southern College
Catalog
|
Computer Science (CS)
Division of Science and Mathematics
Marietta Cameron, Lewis Patterson, Richard S. Turner
The major in computer science is intended for students who wish
to learn about the design of computer systems and their applications,
and is designed to prepare students for careers in computing and/or
graduate studies.
Major Requirements
The following courses are required (10 units):
CS 170
CS 250
CS 290
CS 499
MA 231
MA 240
four additional courses in CS at the 300 level or above,
at least one of which must be a 400-level course
Computer science majors planning on graduate work should consider
taking additional computer science courses and additional mathematics
courses beyond MA 231. Recommended computer science electives for
students intending to pursue graduate study include CS 360, CS 380,
CS 390, CS 460, and CS 465. Recommended electives for students seeking
immediate employment upon graduation include CS 300, CS 330, CS 420,
and CS 430. Students are encouraged to meet with faculty as soon as
possible for advising concerning their intended goals.
Courses required for a computer science major may be used to meet
minor requirements in mathematics.
Students interested in both computer science and mathematics should
consider the interdisciplinary major in computer science-mathematics,
the requirements of which may be viewed by following the link to
the Interdisciplinary Major Requirements
section of this catalog.
Minor Requirements
(Thus section has been updated. Click
here for details.)
Internships and teaching experience may not count toward the minor.
Interim projects may not count toward the minor unless approved
by the computer science faculty.
The following courses are required (5 units):
CS 170
CS 250
CS 290
one unit in CS at the 300 level or above
MA 240
Graduation with Disciplinary Honors in Computer Science
Disciplinary honors in computer science provides an opportunity for
those students seeking additional work, more research experience,
and further preparation for computing as a profession. Disciplinary
honors rewards those students who successfully go beyond the minimum
requirements of the discipline.
To earn disciplinary honors, a student should apply for consideration
preferably by the end of the sophomore year and no later than the
end of the fall term of the junior year. Specific requirements are
as follows:
(1) complete the requirements of the computer science major or of
the inter-disciplinary major in computer science and mathematics;
(2) complete two computer science units at or above the 300
level -- these two units are in addition to the computer science
requirements of the student's major;
(3) complete MA232 and a choice of MA317, MA321, MA454;
(4) attain a minimum 3.00 grade point average in courses taken
at the College and a minimum 3.30 average for the courses within
the discipline;
(5) maintain a two-year national membership within the Association
for Computer Machinery and the local student ACM; and
(6) complete a senior thesis, the proposal for which must be
submitted no later than October 15 of the senior year. The senior
interim should be devoted to work on the thesis which must be
supervised by a faculty member in computer science. This thesis
must be successfully defended before a committee of at least two
faculty members. Interdisciplinary committees are encouraged.
The thesis must be completed no later than March 31 of the senior
year.
Courses in Computer Science
(Thus section has been updated. Click
here for details.)
- CS 105 Understanding Computers (1)
- A course for non-computer science majors in the use of the computer
as a tool. This course is designed to give the student an appreciation
for the role of computers in today's society and the use of some
general software tools, such as spreadsheet and database, as are
commonly used on personal computers. Not open to anyone having
taken a college-level computer science course within the previous
five years.
-
- CS 170 Introduction to Computing (1)
- An introduction to the field of computer science. Topics include
computing concepts and terminology. A major part of this course
is problem solving and algorithm development using a programming
language such as Pascal, Ada, or C++. Fall, Spring.
-
- CS 250 Advanced Programming (1)
- A second programming course assuming a good understanding of
fundamental programming processes. Emphasis is placed on good
software engineering practices. Basic data structures are introduced.
Prerequisite: CS 170. Fall, Spring.
-
- CS 290 Data Structures (1)
- A study of structures for storing and manipulating data. Students
learn to create and use such data structures as stacks, lists,
trees, and graphs. Prerequisite: CS 250. Fall, Spring.
-
- CS 300 Systems Programming (1)
- An introduction to assembly language programming with the goal
of better understanding how computers operate. Prerequisite: CS
250. Fall 2001.
-
- CS 310 Alternative Programming Languages (1)
- A study of languages from several categories such as functional,
imperative, logical, and specialized. The student writes intermediate-level
programs in each language. Prerequisite: CS 250. Spring 2003.
-
- CS 330 Systems Analysis (1)
- The design of large-scale computer-based systems, with examples
from major application areas. Prerequisite: CS 250. Fall 2002.
-
- CS 360 Programming Languages (1)
- A study of the manner in which the various categories of programming
languages deal with the fundamentals of programming. Prerequisite:
CS 290. Fall 2002.
-
- CS 380 Introduction to Computer Organization (1)
- Introduction to organization and structure of major hardware
components of computers, the mechanics of information transfer
and control within a digital computer system, and the fundamentals
of logic design. Prerequisites: CS 250 and MA 240. Spring 2002.
-
- CS 390 Automata, Computability, and Formal Languages (1)
- A study of the theory of computer science. Topics include such
areas as computability, computational complexity, and formal languages.
Prerequisites: CS 290 and MA 240. Spring 2003.
-
- CS 420 Database Management Systems (1)
- A course in the design, function, and application of database
systems. Prerequisite: CS 290. Fall 2001.
-
- CS 430 Data Communications (1)
- An introduction to such topics as communications hardware, protocols,
networks, and communication software design. Prerequisite: CS
290. Fall 2002.
-
- CS 440 Introduction to Computer Graphics (1)
- An introduction to the terminology, standards, and basic algorithms
in computer graphics. Topics include image transformations, projections
from 3D to 2D, curve and surface modeling and three dimensional
viewing. Prerequisites: CS 290, MA 240, and MA 231. Spring 2002.
-
- CS 460 Operating Systems and Architecture (1)
- An introduction to operating systems, system architecture, and
their relationships. Prerequisite: CS 290. Spring 2003.
-
- CS 465 Artificial Intelligence (1)
- An introduction to topics such as cognitive modeling, automatic
problem solving, natural language processing, and robotics. Prerequisite:
CS 290. Spring 2002.
-
- CS 480 Compilers (1)
- A study of the theory and function of compilers for high-level
languages. Prerequisite: CS 290.
-
- CS 298, 398, 498 Teaching Experience in Computer Science
(1)
-
- CS 499 Senior Project in Computer Science (1)
- An in-depth research project that brings to bear the student's
accumulated knowledge and skills in computer science. This substantial
endeavor may include some combination of the following: computer
programs, papers, oral presentations, and community projects.
Evaluation is based on successful completion of the objectives
outlined by instructor and student at the beginning of the term.
As part of the senior interim experience, all students are required
to participate in an assessment process. This may include, but
is not limited to, a standardized test, an exit interview, an
oral examination, or some combination of the above. Prerequisite:
Senior standing or consent.
|