Oct 23, 2021  
2020-2021 Undergraduate Catalog 
    
2020-2021 Undergraduate Catalog [ARCHIVED CATALOG]

Computer Science



Professor Frederick R. Chang, Chair

Professors: Frederick R. Chang, Ira Greenberg, Jeff Tian, Jia Zhang
Associate Professors: LiGuo Huang, Eric C. Larson, David Lin
Assistant Professor: Corey Clark
Senior Lecturer: Frank P. Coyle
Lecturer:  Maya El Dayeh
Clinical Professors: Ginger Alford, Mark E. Fontenot, Michael Hahsler, Theodore W. Manikas
Adjunct Faculty: Hakki C. Cankaya, Isaac Chow, Vidroha Debroy, Judy Etchison, Aaron L. Estes, Mark Hoffman, Kenneth R. Howard, Toby Huskinson, Bhanu Kapoor, John Lawrimore, Karl C. Lewis, D. Kall Loper, Matthew R. McBride, Lee D. McFearin, Robert Oshana, Padmaraj M.V. Nair, Klyne Smith        

General Information

The Department of Computer Science (CS) at SMU offers academic programs in computer science. Faculty specializations include computer architecture, data mining, knowledge engineering, software engineering, design and analysis of algorithms, parallel processing, database management, very large-scale integration computer-aided design methods, bioinformatics, computer networks, data and network security, mobile computing, theory of computation, and computer arithmetic. The educational objectives of the undergraduate programs in the CS Department are to produce graduates who become productive professionals in an information technology discipline, pursue graduate or professional degrees, are successful entrepreneurs and managers, have a broad knowledge and wide range of interests, are valuable members of their general community and take a leadership role in their chosen field. As such, the programs are designed to ensure that graduates have the following abilities:

For graduates with degrees in computer science:

  1. Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
  2. Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
  3. Communicate effectively in a variety of professional contexts.
  4. Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.
  5. Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.
  6. Apply computer science theory and software development fundamentals to produce computing-based solutions.

The CS Department is engaged in an ongoing assessment process that evaluates the success in meeting these outcomes and enhances the development of the program.

Degrees

The CS Department offers undergraduate degrees as follows:

Bachelor of Science With a Major in Computer Science
Bachelor of Arts With a Major in Computer Science

The undergraduate computer science program that awards the degree Bachelor of Science is accredited by the Computing Accreditation Commission of ABET, https://www.abet.org. The undergraduate computer science program that awards the degree Bachelor of Arts is not accredited by a Commission of ABET.

Combined Degree Program

The Lyle School of Engineering offers a combined degree with the Meadows School of the Arts that leads to the degrees of B.A. in music and B.A. in computer science. Students should contact the department for additional details. Other combined majors can be arranged in consultation with an adviser.

Accelerated Pathways Master’s Degree Program

The Accelerated Pathways program allows students to complete both B.S. and M.S. degrees in five years. In the CS Department, students may participate in the Accelerated Pathways program in the computer science area. Up to nine total credit hours of graduate courses may be applied toward fulfilling the student’s undergraduate program requirements in the final year of the baccalaureate degree. For additional information, students should contact the undergraduate program director.

Teaching Certification

Computer science majors interested in earning a teaching certificate should contact the Simmons School of Education for information on additional course and student teaching requirements.

Computer Facilities

Students in the CS Department have access to a wide range of facilities and equipment. The department’s computing environment has evolved into an Ethernet-based network of personal computers and servers. General-use UNIX servers that run OSF1 and Linux are available. A wireless network is also available throughout the CS facilities. Windows-based PC labs are used during the first two years of coursework.

Curriculum in Computer Science

Computers play an ever-increasing role in society. Their use permeates all other academic disciplines and industrial arenas. Computer science is the study of the concepts and theory surrounding computer design and software construction. The SMU undergraduate program in computer science is designed to give students a solid understanding of these concepts, providing them with the technical knowledge needed to pursue either an advanced degree or a challenging career in the computer industry. The diversity of the Lyle School of Engineering computer environment exposes undergraduate computer science students to many different hardware and software systems.

To study and use computers, one must communicate with them through a variety of software interfaces, including programming languages. At SMU, the student will study several high-level languages – such as C++ and Java – that simplify the use of computers. In addition, students are exposed to a variety of computer-aided software engineering tools. Assembly languages and operating systems (such as Linux/UNIX) for microcomputers, mainframes and supercomputers are studied to provide an understanding of the architecture and organization of a digital computer. Mathematical topics such as discrete mathematics, graph theory, and Boolean and linear algebra are included in required undergraduate classes so that students may better understand the internal structure of the computer and the effective utilization of its languages.

Knowledge of the computer’s internal structure is important to understanding its capabilities. Thus, computer science students take courses in assembly language, computer logic and computer organization. Courses in systems programming and operating systems extend this structural study into the “software” of the computer. A required sequence of software engineering courses prepares students for advanced systems and software applications.

Many of the computer science core courses (CS 2341 , CS 3345 , CS 3353 , CS 4345 , CS 4351  and CS 4352 ) contain major project-oriented components to prepare students for applying their theoretical knowledge in teams.

The free electives in the B.A. in computer science program can be used to individually tailor a student’s study plan. For example, students who want a program even more intensive than the computer science major could satisfy their free electives with more computer science courses. Students interested in a broader education could satisfy these electives with courses offered by any department in the University.

The B.S. degree allows students to major in any of five concentration tracks or to pursue a general program where they can choose nine hours of computer science electives. The research track allows students to participate in an undergraduate research project of their choice. Like graduate students, undergraduate students majoring in research are required to perform independent research in an area of their choice (with a tenure-track faculty member as an adviser), document the research results and present the results of the research in a presentation open to the entire University community. The security track facilitates a more in-depth study of software security issues. The data-intensive computing track introduces concepts of data storage and analysis necessary for many modern applications. The software engineering track focuses on software design and testing. The game development track is provided in collaboration with SMU Guildhall.

Programs

    Major(s)Minor(s)

    Courses

      Computer Science