Sep 16, 2024  
2023-2024 Undergraduate Catalog 
    
2023-2024 Undergraduate Catalog [ARCHIVED CATALOG]

Computer Science



Professor Jia Zhang, Chair ad interim

Professors: Frederick R. Chang, Ira Greenberg, Jeff Tian, Jia Zhang
Associate Professors: LiGuo Huang, Eric C. Larson, David Lin
Assistant Professor: Corey Clark
Clinical Professors: Ginger Alford, Theodore W. Manikas
Clinical Associate Professors: Michael Hahsler, Klyne Smith
Senior Lecturer: Frank P. Coyle
Lecturer: Maya El Dayeh
Visiting Lecturer: Kenneth R. Howard
Adjunct Faculty: Muaz Abrar, David Brauchler, Denver Brittain, Isaac Chow, Aaron L. Estes, John Fattaruso, Erik Gabrielsen, Stephen Hanka, Mark Hoffman, John Lawrimore, Karl C. Lewis, Matthew R. McBride, Lee D. McFearin, Freeman Moore, Padmaraj M.V. Nair, Robert Oshana, Derek Phanekhan, Leonid Popokh, Mohamed Rayes, Eric Straw

General Information

The Department of Computer Science (CS) at SMU offers academic programs in computer science. Faculty specializations include machine learning, software engineering, artificial intelligence, big data, data mining, knowledge engineering, database, natural language processing, cloud computing, computer networks, security, mobile computing, and graphics. 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. A B.S. in computer science may be a combined major for the B.S. in Data Science. 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 SMU Computer Science Department have access to a wide range of facilities and equipment. Instructional computer labs are used during the first two years of coursework. Lyle also provides several open computer labs loaded with software students use in lab along with other software for projects or other work. CS students also have access to campus resources such as SMU Central University Library computer resources, general-use Linux servers, and High-Performance Computing (HPC).

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, a student will study several high-level languages – such as C++ and Java – that simplify the use of computers. In addition, students will systematically study data structures and algorithms to gain an in-depth understanding of the design principles and solutions to real-world problems, and the data structures that support them. 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 and organization is important to understanding its capabilities. Beyond this hardware foundation course, a software foundation course will extend this structural study into the “software” of the computer. On top of this, a collection of courses will introduce students to modern computer science techniques in the fields of operating systems, networking and distributed system, databases, and software engineering. A senior design course will prepare students for advanced systems and software applications.

Many of the computer science courses contain major project- oriented components to prepare students for applying their 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 or tenured 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 artificial intelligence/machine learning track helps students develop machine learning techniques and applications. The software engineering track focuses on modern software design and development methodologies and technologies. 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.

Programs

    Major(s)Minor(s)

    Courses

      Computer Science