DEPARTMENT OF COMPUTER SCIENCE

Computer Science Major | Computer Science Minor | Course Descriptions

Chair: Peter A. Cooper (936) 294-1569

Faculty: David Burris, Lei Chen, Ken Hartness, Jiahuang Ji, Timothy McGuire, Karon Murff, Gary Smith

Website: Computer Science: http://cs.shsu.edu/    Digital Forensics: http://www.df.shsu.edu

Mission

The Department of Computer Science is a community of faculty, staff and students, centered in the computer science disciplines. The Department of Computer Science is dedicated to providing the highest quality education possible to its graduate and undergraduate students through excellence in teaching and excellence in research. The department is committed to furthering the pursuit of knowledge and meeting the needs of a diverse society.

The Department of Computer Science seeks to provide an environment that encourages innovative thinking, academic rigor and the pursuit of scholarship in an atmosphere that promotes high ethical and moral values and mutual respect, embracing diversity, and working towards a goal of instilling a life-long love of learning.

Academic Programs

The Computer Science program offers major study plans for students wishing to pursue careers as a programmer/analyst/software engineer, as network and database administrators, as digital forensics and information security professionals, or to prepare for advanced studies at the graduate level. Minor study plans are offered which can be tailored to the needs of students majoring in almost any field. A plan leading to secondary teacher certification in Computer Science is also offered.

The Bachelor of Science in Computer Science at Sam Houston State University has been accredited by the Computing Accreditation Commission of ABET, Inc. the recognized accreditor of college and university programs in applied science, computing, engineering, and technology. ABET accreditation demonstrates a program's commitment to providing its students with a quality education.

Highlights

Sam Houston State University provides a comprehensive computing environment for students. The Computer Services Department operates a large number of computing laboratories containing desktop computers, and workstations. A variety of operating systems, network protocols, programming languages and application packages are available. Students have full access to the Internet and E-mail facilities when on campus and through dial-up facilities from off-campus. In addition to the institutional facilities, the Department of Computer Science operates a range of lab facilities to support its mission and programs, including a network lab, data recovery and a network security lab. The department operates a 40-node symmetric multiprocessing system for use in parallel processing, digital forensics, cryptanalysis and steganographic research. The department also has access to state of the art visualization facilities. As part of its operations, the department of Computer Science houses the Sam Houston State University Center of Excellence in Digital Forensics, a center dedicated to the development of digital forensics training for law enforcement personnel and research opportunities into forensics and security issues.

Career Opportunities

Computing professionals support many scientific, governmental and commercial enterprises though network and communication systems management, application (computer program) development and maintenance, and hardware design. The management of computing resources within organizations is typically a mission critical activity and computing professionals occupy key organizational roles as network and database administrators, software engineers, systems analysts and programmers. Of key concern in today’s modern environment is the protection, assurance and recovery of computing resources, providing opportunities for those wanting to work in the information assurance and digital forensics fields.

Suggested Minors

Because computer systems are a part of our everyday lives, they have application to many academic fields. Many of our computer science students select minors in a scientific field such as mathematics, physics, chemistry or GIS, or in business related fields such as accounting. However, other minors are equally valuable, including Art, English, Music, and particularly Criminal Justice, given the connected world in which we live and the need to protect our systems and ourselves from digital crime.

Student Organizations

Sam Houston Association of Computer Scientists - The club sponsors fieldtrips, campus visits by guest speakers and occasional student/faculty outings.

Internships

The Computer Science department does not operate internships as part of its degree program.

Scholarships

The Department of Computer Science offers the following scholarships:

Each of these scholarships require a minimum GPA of 3.0 and registration in courses leading to a degree in Computer Science. Other criteria are also pertinent to individual scholarships. More information can be obtained through the department.

Program Specific Requirements

The baccalaureate degree in Computer Science has the following program specific requirements:

Mathematics: 15-17 hours (6 upper division).
The specific requirements are: MTH 142/143 or 199/299, MTH 295, MTH /STA 379 and 3 hrs Advanced MTH/STA. The math sequence MTH 142/143 is essential for students interested in aerospace and engineering disciplines.

Science: 16 hours.
The specific requirements are: two 4-hours labs (3 hours lecture + 1 hour lab) in each of the two sciences.

Curriculum

Major in Computer Science
Bachelor of Science

The Computer Science major requires a total of 44 hours of Computer Science coursework. General degree requirements must also be met. The 44 hours of coursework for the Computer Science major should be distributed as follows (NOTE: CS 133, CS 138, and CS 143 may not be used to meet this requirement):

REQUIRED COURSES: CS 146, 147, 272, 334, 362, 437, 482, DF 492 26 hrs.
Students are expected to select an emphasis from one of the following concentrations  
Computer Science: CS 278("C"), 333, 430, 431, CS (6 hrs.) 18 hrs.
Information Systems: CS 278 (COBOL), 234, 336, 463, CS (6 hrs.) 18 hrs.
Information Assurance: DF 138, DF 291, DF 391, DF 491, CS or DF (6 hrs.) 18 hrs.
The total must include a minimum of 21 advanced hours: Total 44 hrs.

CS 431 is recommended for students electing to complete the Information Systems concentration. Computer Science and Information Assurance tracks require CS 278 ("C"). Information Systems tracks require CS 278 ("COBOL").

Suggested Courses of Study
Computer Science (CS)

First Year Credit Second Year Credit
CS 146, 147, 272 11 CS 278("C"), 333, 334, CS Elective 12
MTH 142, 143 8 Component Area 4 (Visual & Performing Arts) 3
ENG 164, 165 6 Component Area 3 (Natural Science) 8
HIS 163 3 MTH 295 3
KIN 215 1 ENG 3
  29 HIS 164 3
      32
       
Third Year Credit Fourth Year Credit
CS 362, 482 6 CS 437, 430, DF 492 9
Advanced CS Elective 3 CS 431 3
Degree Specific Natural Sciences 8 ADV MTH 3
Component Area 4 (Cultural Studies) 3 Component Area 4(Lit.) 3
STA 379 3 Component Area 5 3
POL 261, POL (200-level) 6 Electives 9
  29   30

Note: The minimum number of credit hours required for a baccalaureate degree is 120. The minimum number of advanced credit hours for a baccalaureate degree is 42. Students may take free elective courses beyond the hours identified in the recommended 4-year plan to meet the overall credit hour and advanced credit hour requirements.

Suggested Courses of Study
Computer Science (IS)

First Year Credit Second Year Credit
CS 146, 147, 272 11 CS 234, 278, 334, CS Elective 12
MTH 142, 143 8 Component Area 4 (Visual & Performing Arts) 3
ENG 164, 165 6 Component Area 3 (Natural Science) 8
HIS 163 3 ENG elective 3
KIN 215 1 HIS 164 3
  29 MTH 295 3
      33
       
Third Year Credit Fourth Year Credit
CS 362, 336, 482 9 CS 437, 463, DF 492, CS Elective 12
STA 379 3 ADV MTH 3
Degree Specific Natural Sciences 8 Component Area 4 (Lit.) 3
Component area 4 (Cultural Studies)) 3 Component Area 5 3
POL 261, POL (200-level) 6 Electives 9
  29   30

Note: The minimum number of credit hours required for a baccalaureate degree is 120. The minimum number of advanced credit hours for a baccalaureate degree is 42. Students may take free elective courses beyond the hours identified in the recommended 4-year plan to meet the overall credit hour and advanced credit hour requirements.

Suggested Courses of Study
Computer Science (IA)

First Year Credit Second Year Credit
CS 146, 147, DF 138, 291 14 CS 272, 334 6
MTH 142, 143 8 CS 278 ("C") 3
ENG 164, 165 6 Component Area 4 (Visual and Performing Arts) 3
KIN 215 1 Component Area 3 (Natural Science) 8
  29 HIS 163, 164 6
    ENG Elective 3
    MTH 295 3
      32
       
Third Year Credit Fourth Year Credit
CS 362, 482 6 CS 437, DF 492, DF 491, DF Elective 12
DF 391 3 ADV MTH 3
Component Area 3 (Natural Science) 8 Computer Area 4 (Literature) 3
Component Area 4 (Cultural Studies) 3 Component Area 5 3
POL 261, POL (200-level) 6 Electives 9
STA 379 3   30
  29    

Note: The minimum number of credit hours required for a baccalaureate degree is 120. The minimum number of advanced credit hours for a baccalaureate degree is 42. Students may take free elective courses beyond the hours identified in the recommended 4-year plan to meet the overall credit hour and advanced credit hour requirements.

Students with extensive high school programming experience may elect to begin a major or minor program with CS 147 or CS 272. Students who have taken the advanced placement computer science examination may be eligible for credit for CS 146 and CS 147.

Minor in Computer Science

A Computer Science Minor consists of 21 hours of Computer Science coursework of which at least 9 hours must be advanced. Two recommended minor plans are shown here. Modifications may be made to meet individual student needs as approved by the Computer Science Department Chair. Individualized minor plans are available for students seeking a Computer Science minor for Certification.

Computer Science Minor:

Students will select an emphasis from one of the following tracks:

Information Systems: CS 160, CS 278(COBOL), CS 234, 334, 373, 336, 463 21 hrs.
Computer Sciences: CS 146,147, 272, 278, 333, 334, CS (Advanced) 3 hrs 23 hrs.
Information Assurance: CS 146, 234, DF 138, 291, 390, 491, DF(Advanced) 3 hrs
22 hrs.

Computer Science Course Descriptions

CS 133 Introduction to Computers. [COSC 1300] This is a computer literacy course. Basic computing concepts are presented. Assignments provide a hands-on experience in using microcomputer applications. Multimedia and the Internet are introduced. May not be taken for credit toward a CS major or minor. This course may be taken as a classroom based course or as an Independent Study/Internet course. Credit 3.

DF 138 Introduction to Digital Forensics and Information Assurance. This course introduces students to the fundamentals of digital forensics technology. Emphasis is placed on identifying threats to, and vulnerabilities of, computer systems and how to minimize them. Students will learn how hackers identify victims, how attacks are executed, and various methods used to access to computer systems. Credit 3.

CS 138 Multimedia and Network Computing. This is an introduction to the computing technology underlying multimedia and network computing. The emphasis is on the use of this technology to improve communications. CD-ROMs, audio and video capture, electronic mail, groupware and other hardware and software resources are used to prepare documents and visual aids and to make interactive presentations. Students enrolled in this course should be seeking a teaching certificate. May not be taken for credit toward a CS major or minor. This course may be taken as a classroom based course or as an Independent Study/Internet course. Credit 3.

CS 143 Introduction to Computing for the Social Sciences. [COSC 1401] This course develops the student’s skills in the effective use of computing technology in the Social Sciences. Topics covered in depth include Windows, word processing, spreadsheets, database, integrated applications, local networking, the Internet and multimedia documents. May not be taken for credit toward a CS major. Credit 4.

CS 146 Introduction to Algorithms and Programming. This course is an introduction to programming. A software engineering approach to developing computer programs is stressed and object-oriented concepts are introduced. The development of procedures and the writing and testing of programs to implement them is emphasized. This course includes a 2-hour lab-based component. Prerequisites: eligibility for MTH 199, MTH 170, or MTH 142, basic keyboarding and PC skills. Credit 4.

CS 147 Programming Algorithms and Data Structures. This course is a continuation of CS 146 and emphasizes the relationships between the data objects in computer programs. Re-usability is stressed through the use of generic data abstractions such as the C++ Standard Template Library. This course includes a 2-hour lab-based component. Prerequisites: CS 146, MTH 199 or 170 or 142. Credit 4.

CS 160 Visual Programming. This course is an introduction to programming using the visual paradigm, aimed at students with little or no background in programming. The core notions of problem solving through programming are introduced, following an object-oriented approach to visual programming.

CS 234 Networks I. Installation, usage, and management of computer hardware ad operating systems for business. Topics include scripting, macros, intelligent agents. Installation and management of networks, the Internet, and communications software is covered. Prerequisite: CS 146. Credit 3.

CS 272 Computer Organization I. This course examines the functional components of computer systems. Topics discussed include processors, memory types and hierarchies, buses, I/O, interrupts, etc. with emphasis on how they affect program execution, parameter passing and inter-program communications between programs written in diverse languages. Prerequisite: CS 146, CS 147 (may be taken concurrently). Credit 3.

CS 278 Special Topics/Programming. In-depth study of a programming language used to implement information systems. Real time components, visual techniques, and artificial intelligence will be utilized as appropriate. This course may be repeated for credit with the approval of the undergraduate advisor. A different language must be covered to receive approval for repeat credit. Prerequisite: CS 147. Credit 3.

DF 290 Hardware Forensics. Techniques in the duplication, recovery and restoration of digital evidence. Includes hard disks, floppy drives, CD formats, DVD formats, zip drives, mobile phones, PDA’s smart cards, memory technologies, and other devices capable of storing digital information. Prerequisite: DF 138. Credit 3.

DF 291 Network Security. The rationale and necessity for securing computer systems and data networks, as well as methodologies for the design of security systems, establishing security protocols and the identification of best practices in the administration, testing and response protocols for secure communications systems. Prerequisite: DF 138. Credit 3.

CS 333 Computer Organization II. This course is a continuation of Computer Science 272. It is a study of computer systems organization and systems programming. Uni- and multi-processor, SMP, parallel and distributed systems are studied. Prerequisite: CS 272. Credit 3.

CS 334 Data Base Management Systems. This course emphasizes the design of information systems using database software and query language/programming interfaces. Data warehouse concepts are introduced. Legacy systems, LAN and distributed systems based systems are used to give the student hands-on experience in systems development. Writing Enhanced. Prerequisite: CS 147. Credit 3.

CS 336 Information Systems Design and Management. This is a course in the design and implementation of large-scale file and persistent object-based information systems. Client/server systems are covered. Prerequisite: CS 278(COBOL). Credit 3.

CS 362 Data Structures. Introductory treatments of such topics as orthogonal lists, strings, arrays, linked lists, multilinked structures, indexed and direct files, and generalized data management and database management systems. Prerequisites: CS 147, MTH 299 or MTH 143. Credit 3.

CS 373 Human-Computer Interaction. This course presents a comprehensive introduction to the principles and techniques of human-computer interaction. The course examines the event-driven model through the development of applications utilizing graphical design environments and the use of rapid application prototyping to explore a variety of techniques for HCI, particularly in relation to mobile and other non-traditional devices.

CS 394 Numerical Methods. This course develops the concepts underlying the use of the computer for interpolation, approximations, solutions of equations and the solution of both linear and nonlinear systems equations. Mathematical software and/or user written programs are utilized. Also offered as Mathematics 394. Prerequisites: CS 147 and MTH 143 or consent of instructor. Credit 3.

DF 390 Digital Forensics Tools. This course explores tools for the recovery of information on protected or damaged hardware for the purpose of providing evidence of misuse or abuse of systems. Topics also include the chain of evidence, protocols for data recovery, cryptographic analysis, password recovery, the bypassing of specific target operating systems and obtaining data from digital devices that have been damaged or destroyed. Prerequisite: DF 291. Credit 3.

DF 391 Cryptography. This course will describe the basic principles of cryptography and how it is used in modern computer and communication systems. It will cover single ciphers, modern ciphers, public-key cryptography, key management, cryptanalysis and steganography. Students will learn how cryptography is used for message secrecy, integrity, authentication and digital signatures. Application areas to be discussed include email, files, network communication, and electronic payments. Prerequisite: DF 291 Credit 3.

CS 396 Switching Theory. This course is an introduction to Boolean Algebra and graph theory with emphasis on their applications in the design of digital computer software and hardware. Logic systems are designed and analyzed. Prerequisite: CS 272 . Credit 3.

CS 430 Language Translators. This course deals with the design and implementation of assemblers, interpreters and compilers. Topics include symbol tables, lexical scanning, syntactic analysis, object code generation and storage allocation. Programming assignments will involve implementation of functional components of a translator. Prerequisites: CS 272 and CS 362. Credit 3.

CS 431 Computer Operating Systems. This course is concerned with software organization of computer systems. It is intended to bring together the concepts and techniques of programming languages, data structures and computer organization by considering their role in the design of general computer systems. The problems which arise in multi-accessing, multiprogramming, and multiprocessing are emphasized. Prerequisites: CS 333 and CS 362. Credit 3.

CS 437 Software Engineering. This course is an introduction to formal methods of specifying, designing, implementing and testing software for large programming projects. Methods of estimating and predicting reliability are discussed. Writing Enhanced. Prerequisite: 3 hours of advanced CS and CS 334. Credit 3.

CS 438 Computer Graphics. This course introduces graphical API’s used in developing graphical user interfaces and multimedia applications. Topics covered are selected from the PHIGS, Windows, Presentation Manager, X-Windows, digital video and other appropriate technologies. Prerequisite: 6 advanced hours of CS. Credit 3.

CS 463 Networks II. This course covers the architecture and protocols of local and wide area networks. Peer to peer and client/server configurations based upon DOS, OS/2 and Unix servers and clients are covered. Assignments involve the set-up, configuration and monitoring of Novell and Lan Server networks. Writing Enhanced. Prerequisite: 6 advanced hours of CS. Credit 3.

CS 470 Special Topics in Computer Science. Topics of general interest are offered on a timely basis. Previous topics include Cognitive Computing, Embedded Linux Systems, Visual Graphics/Component Systems. Prerequisites: For all CS 470 topics — 6 hrs. advanced CS. Credit 1-3.

CS 477 Simulation. This is an introduction to simulation methodology applicable to all disciplines. It covers the design of simulation experiments, validation of models and their computer implementation. The use of a generalized simulation language is introduced and applied in class projects. Prerequisites: 6 advanced hours CS and MTH 379. Credit 3.

CS 482 Programming Languages. This course emphasizes programming languages which support the Object-Oriented Programming (OOP) paradigm. Programming assignments are used to illustrate the features and weaknesses of the language and to develop the student’s proficiency in the use of OOP technology. Prerequisite: CS 147. Credit 3.

DF 491 Information Security. This course provides an introduction to basic security needs. The course will include, but not be limited to indivduals vs. government privacy issues, federal encryption standards, the different layers of security currently available, the practical application of user level and system level cryptography, and strategies for evaluation and selection of security methods. Prerequisite: DF 291 Credit 3.

DF 492 Professionalism and Ethics in Digital Forensics. This course examines the nature, need and value of well-formed ethical constructs within the digital forensics profession. Included in this course is a discussion, through case studies, of the nature of professionalism, personal and professional codes of ethics and conduct, and the professional handling of ethical and moral conflict. The course also explores the role of the professional in public policy and the awareness of consequences of ethical dissent and whistle blowing. Writing Enhanced. Prerequisite: Senior classification with 6 hours advanced CS or DF courses. Credit 3.