Amir Gamshadi, PhD Interim Head
Rm 05, McCord Hall
615-963-5800
Faculty: W. Chen, H. Miao, T. Rogers, A. Sarayloo, A.
Sekmen, G. Shao, A. Thomas, M. Williams, F. Yao
General Statement: The Computer Science Department offers a BS degree
in Computer Science. The CS program provides CS majors with a broad based
knowledge in various contemporary computer science fields such as computer
architecture and organization, algorithm design and analysis, computer
programming, database management systems, and computer networks and data
communication. The CS programs includes adequate courses from mathematics,
natural sciences, ethics, communications, and other general educations to
provide the base knowledge required for understanding computer science
topics, for gaining the skills required for entering in diverse careers in
private and public sectors and pursue graduate studies.
The educational objectives of the Department of Computer Science are
consistent with the objectives and outcomes of the College of Engineering
and TSU and are as follows:
-
To provide students with the basic knowledge in Mathematical and Natural Science topics that are required for problem solving and understanding of the computer science studies.
-
To provide CS students with fundamentals of computer science so that, they can solve complex problems and develop algorithms using top-down structured design and object oriented design.
-
To provide students with hands-on computer science experiences so that they can implement algorithms and produce application software.
-
To provide students with oral and writing skills required for effective communication and productive functioning in teams and complex working environments.
-
To make students aware of the social issues, ethical conducts, and their professional responsibilities to their society and the international community.
-
To prepare students so that they may pursue graduate studies and understand and appreciate benefits of life-long learning.
Program Requirements
A minimum of 120 semester credit hours are required for completion of the BS
degree in Computer Science. The distribution of these credits is outlined
below.
| Engineering Orientation | 01 |
| Communication | 12 |
| Humanities / Fine Arts | 09 |
| Social / Behavioral Sciences | 06 |
| History | 06 |
| Natural Sciences | 12 |
| Mathematics | 21 |
| Engineering & CS | 47 |
| Computer Application area | 06 |
|
Total |
120 |
Communication (12)
ENGL 1010 Freshman English I (Composition) (3)
ENGL 1020 Freshman English II (Composition) (3)
COMM 2200 Public Speaking) (3)
A course in a foreign language (3)
Humanities/Fine Arts (9)
- ENGL 2110 American Literature I (3)
- ENGL 2120 American Literature II (3)
- PHIL 2010 Introduction to Philosophy (3)
- PSYC 2010 General Psychology (3)
- ECON 2010 Principles of (3)
- HIST 2010 American History I (3)
- HIST 2020 American History II (3)
- CHEM 110 & 111 General Chemistry I and Laboratory (3,1 )
- PHYS 2030, PHYS 2040 General Physics I II ( 3,3)
- PHYS 2031, PHYS 2041 General Physics I, II Laboratory (1, 1)
- ENGR 1000Orientation (1)
Mathematics (21)
- MATH 1910 Fundamentals of Problem Solving (1)
- MATH 1915 Calculus & Analytic Geometry (4)
- MATH 1925 Calculus II (4)
- MATH 2115 Calculus III (3)
- STAT 3110 Probability and Statistics I (3)
- MATH 3610 Linear Algebra I (3)
- COMP 3200 Discrete Mathematics (3)
Computer Application Area (6)
Every CS major must select a computer application area and take courses
equivalent to a minimum of 6 HRS The area and courses must be selected
from the lists that have been approved by the department. A copy of
lists can be obtained from the office of the CS department or the Web
site of the CS department.
Engineering & Computer Science (47)
Computer science courses are grouped into 2 categories: CS Core courses (35) and concentration courses (12). Four concentration areas are included. These are: Business, Software Engineering, Computer Engineering and Data Communications and Networking.
Computer Science (Core 35)
- ENGR1001 Introduction to Engineering I (1)
- ENGR1011 Introduction to Engineering II (1)
- COMP 2040 Introduction to Computer, Problem Solving and Computer Use (3)
- COMP 2140 Structured Problem Solving and Programming (3)
- COMP 2240 Object Oriented Programming (3)
- COMP 2400 Computer Organization I (3)
- COMP 2600 Assembly Language (3)
- COMP 3030 Event Driven Programming (3)
- COMP 3040 Data Structures and Algorithms (3)
- COMP 3190 Ethics and Professionalism in Computing (3)
- COMP 3310 Data Communication and Computer Networks (3)
- COMP 4100 Operating Systems (3)
- COMP 4500 (ENGR 4500 Senior Capstone Design Project I (1)
- COMP 4510 (ENGR 4500 Senior Capstone Design Project II (1)
- ENGR 4900 Professional Development Seminar (1)
Business Concentration (12)
- ACCO 2110 Principles of Financial Accounting I (3)
- BISI 3160 Business Application Development (3)
- BISI 3230 Management Information Systems (3)
- COMP 3710 Relational Databases (3)
Software Engineering Concentration (12)
- COMP 3560 Automata and Formal Languages (3)
- COMP 4300 Software Engineering (3)
- COMP 4200 Compiler Construction (3)
- COMP 4700 Algorithms (3)
- Computer Hardware Concentration (12)
- ENGR 2000, ENGR 2001 Circuits I and Lab(3,1)
- COMP 3500 Digital Logic Design (3)
- COMP 4310 Advanced Computer Organization(3)
- COMP 4600 Microprocessors (2)
Data Communication and Computer Networks Concentration (12)
- COMP 3650 Microcomputers (3)
- COMP 4450 Computer Network Architecture (3)
- COMP 4550 Computer Network Protocols (3)
- COMP 4750 Computer Network Management (3)
Specific College Requirements:
- No student will be allowed to take any departmental courses, major courses, engineering courses, mathematics and/or science courses without having successfully completed the proper prerequisites for those courses with a grade of C" or better.
- Students earning a grade of "D" or lower in mathematics courses, science courses, departmental courses, major courses, or engineering course (s) must repeat that course (s) the very next time the course (s) is offered.
- All College students must take and successfully complete all components of the Rising Junior Examination during the junior year.
- Each student must complete a practicum prior to graduation. A
practicum may include, but is not limited to, an internship,
co-operative education experience, research experience, assistant in an
engineering/computer laboratory, and other engineering/computer practical experiences. The practicum must be approved in advance by the
student’s academic advisor and department head, and the practical
experience must be at least eight (8) continuous weeks in length. A
comprehensive report on at least one practicum is required. The report
must be cosigned by a supervisor. The practicum report is to be given to
the student’s faculty advisor. The Dean’s office will assist students in
locating a practicum.
Suggested Four-Year Plan:
Bachelor of Science Degree
Computer Science
| Computer Science | ||||
| FRESHMAN YEAR | ||||
| Fall Semester Courses | HR | Spring Semester Courses | HR | |
| ENGR 1001 | 1 | ENGR 1011 | 1 | |
| ENGL 1010 | 3 | ENGL 1020 | 3 | |
| HIST 2010 | 3 | HIST 2020 | 3 | |
| MATH 1915 | 4 | MATH 1925 | 4 | |
| PHIL 2010 | 3 | PSYC 2010 | 3 | |
| ENGR 1000 | 1 | MATH 1910 | 1 | |
| 15 | 15 | |||
| SOPHOMORE YEAR | ||||
| Fall Semester Courses | HR | Spring Semester Courses | HR | |
| ENGL 2110 | 3 | FORN LANGUAGE | 3 | |
| SPCH 2200 | 3 | ENGL 2120 | 3 | |
| CHEM 1110 /1111 | 4 | MATH 3610 | 3 | |
| COMP 2040 | 3 | COMP 2140 | 3 | |
| MATH 2115 | 3 | ECON 2010 | 3 | |
| 16 | 15 | |||
| JUNIOR YEAR | ||||
| Fall Semester Courses | HR | Spring Semester Courses | HR | |
| PHYS 2110, 2111 | 4 | PHYS 2120, 2221 | 4 | |
| STAT 3110 | 3 | COMP 3310 | 3 | |
| COMP 2240 | 3 | COMP 2600 | 3 | |
| COMP 2400 | 3 | COMP 3030 | 3 | |
| CS Application | 3 | COMP 3200 | 3 | |
| 16 | 16 | |||
| SENIOR YEAR | ||||
| Fall Semester Courses | HR | Spring Semester Courses | HR | |
| COMP 4500 | 1 | COMP 4510 | 1 | |
| COMP 3040 | 3 | COMP 3190 | 3 | |
| COMP 4100 | 3 | CONCENTRATION | 3 | |
| ENGR 4900 | 1 | CONCENTRATION | 3 | |
| CONCENTRATION | 3 | CS Application | 3 | |
| CONCENTRATION | 3 | 13 | ||
| 14 | ||||
Graduation Requirements:
In addition to the University requirements for graduation, the following
specific College graduation requirements must be met by students in the
college:
Students may graduate with a maximum of two D" grades earned in the last two
semesters of the senior year. All other D" grades earned in courses prior to
the senior year must be repeated the very next time the courses are offered
until a minimum grade of C is earned, It a graduating senior earns more than
two grades of D during the senior year, that senior will not graduate until
that senior has only two grades of "D".
COURSE DESCRIPTIONS
COMP 1210 Introduction to Computing (3). This course is for non-CS majors.
The purpose is to introduce students to computer hardware and use. Topics
covered include: Computer hardware, operating systems and some of the
commonly used application software such as a word Processor, an Internet
browser, an email manager, a presentation manager and a spreadsheet
processor. Course includes hands-on work with computers. Not open to CS
majors. Offered every semester. Prerequisite: high school algebra. (Formerly
CS121)
COMP 2040 Introduction to Computer, Problem Solving and Computer use (3).
This is the first course for CS majors. The purpose is to introduce students
to essential of computer hardware, operating systems and problem solving.
Topics to be offered are binary, decimal and hexadecimal numbers, computer
memory and data storage methods, problem solving and algorithm development,
Windows and the UNIX operating systems and their uses. Prerequisite is ENGR
1001. (Formerly CS210)
COMP 2140 Structured Problem Solving and Programming (3). This course
discusses basic structures of an object oriented programming language and an
integrated development software. Students will use computer labs to
implementation programs. Basic language structures needed for translating
single-function and multi-function algorithms involving decisions and loops
are discussed. Discussions will be in the context of programming language
concepts. Prerequisite: COMP 2040 or equivalent. (Formerly CS211)
COMP 2240 Object Oriented Programming (3). This is the continuation of COMP
2140. The remaining structures of the language used in COMP 2140, including
object oriented design, detail discussions of classes and methods
(functions), inheritance and polymorphism, exception handling,
one-dimensional and multi-dimensional arrays and their uses, strings,
matrices, and hashing will be discussed. Discussions will be in the context
of programming language concepts. Prerequisite: COMP 2140 or equivalent.
(Formerly CS212)
COMP 2400 Computer Organization I (3). This course introduces the structures
and working principles of the different hardware units of a computer.
Computer systems organization, the digital logic level (gates and circuits,
memory), micro-architecture level (data path, microinstructions), The
instruction set architecture level (instruction format, addressing) and
parallel computer architectures are discussed. Prerequisites: COMP 2140. (Formerly CS240)
COMP 2600 Assembly Language (3). This course introduces low level
programming through an assembly programming language. Topics include: quick
review of main memory and CPU, use of memory, data types, data processing,
addressing, compilation and linking processes. Prerequisite: COMP 2400. (Formerly CS260)
COMP 2630 Selective Programming Languages (1- 2). The purpose of this course
is to teach all components of a selected programming language. Some of the
languages to be offered are Visual Basic, C, C++ , Smalltalk, Scheme, Common
Lisp, Prolog. CSO majors can take the course but credits cannot be applied
towards graduation requirements. Prerequisite: COMP 2040. (New course)
COMP 3000 Computer Programming for non-CS majors (3). This course is a
computer programming for non-CS majors. Topics covered include: Introduction
to computer hardware, problem solving and algorithm development, translating
algorithms using an object oriented programming language. Schedule will
include two lecture hours and two lab sessions. Prerequisite: High school
algebra. Offered on demand. (new course)
COMP 3030 Event Driven Programming (3). This course introduces basics of
visual programming, also known as event driven programming, using the
programming language used in COMP 2140 and 2240. Topics discussed include:
Language facilities for visual programming, messages and message handling,
message loop, creating windows including dialog boxes, constructing controls
within windows, graphics and I/O with documents. Prerequisite: COMP 2240 or
equivalent. (Formerly CS310)
COMP 3040 Data Structures (3). This course introduces basic data structures.
Topics discussed are: abstract data types, implementation of stack and queue
data structures with arrays and linked lists, binary trees, heaps, and
primary queues, some sorting and searching algorithms and their
implementations. Prerequisite: COMP 2240 or equivalent. Offered fall and
spring (Formerly CS304)
COMP 3050 Programming Languages (3). This course presents fundamental
concepts of programming languages. Topics include: Syntax, Semantics, memory
management, parameter passing methods, new programming language extensions (
object oriented programming, event driven programming) and comparison of
existing programming languages. Prerequisite: COMP 3040. (Formerly CS305)
COMP 3170 Applied Operating Systems (1- 2). This course is designed for
presenting advanced features of some commonly used operating systems and
their uses. It can be taken more than one time, provided each time a
different operating system is taught. Examples of operating systems to be
offered are MS Windows, LINUX, and UNIX. Prerequisite: COMP 2040. (New
course)
COMP 3190 Ethics and Professionalism in Computing (3). This course presents
the important topics of communications and ethics for computer
professionals. Topics discussed include: Introduction and definitions,
Ethics for CS professionals and computer users, Computer and Internet Crime,
privacy, freedom of expression, intellectual property, Software development,
employer /employee issues, software engineering and IEEE code of ethics and
professional practice: Prerequisite: COMP 2040 (New course)
COMP 3200 Discrete Mathematics (3). This course presents discrete
mathematical structures for computer science. Topics include: sets functions
and relations, congruence, logic and proof methods, Boolean algebra, graphs
and trees and their applications in computer science. Prerequisite: Math
1915 and COMP 2240. (Formerly CS320)
COMP 3310 Data Communications and Computer Networks (3). This course
presents basic concepts of data communications and computer networks. Topics
include: Definitions, signals, encoding and modulation, digital data
transmission and transmission media, error detection and control, types of
networks, structure of an open network model, data link and data link
protocols. Prerequisite: COMP 2400. (Formerly CS330)
COMP 3410 Advanced Computer Organization (3). This course focuses on
advanced computer organization and architecture. Topics include RISC and CISC architectures, 1-bus and multi-bus processor design, pipelining,
microprogramming, memory system, and performance measures. Students will
work in teams on design projects. Prerequisite: COMP 2400. (Formerly CS 341)
COMP 3500 Digital Logic Design (3). Review of Boolean algebra and digital
logic gates, Switching algebra, combinational and sequential logic design,
minimization methods. Prerequisite: COMP 2400. (Formerly CS350)
COMP 3560 Automata and Formal Languages (3). The purpose of this course is
to teach concepts of formal languages and automata. Topics include:
mathematical preliminaries, deterministic and nondeterministic finite
acceptors, regular expressions, regular languages and grammars, context free
grammars and languages, Turing machines.. Prerequisite: COMP 3200. (Formerly
CS355)
COMP 3650 Microcomputers (3). This course is designed for teaching the
personal computer hardware and software essentials. Topics include:
Structures of the PC system board, main memory, CPU, the bus systems,
expansion slots, secondary memory units (disks, CD and DVDs, …), other
hardware devices, basics of the PC operating systems, PC management, repair
and maintenance. Prerequisite: COMP 2040. (Formerly CS365)
COMP 3710 Relational Databases. (3). This course presents basic principles
of relational databases and a relational database management system. Topics
include basic definitions of database systems, relations and their
operations, design of and implementation of a relational database, creating
queries and the SQL (structured Query Language). Prerequisite: COMP 3200. (Formerly CS370)
COMP 3900 Numerical Analysis (3). This course is for programming some
mathematical problems including solutions of non-linear equation and
simultaneous linear equations, matrix related computations, numerical
differentiation and integration, interpolation and approximation.
Prerequisites: COMP 2140 and MATH 3610. (Formerly CS 390)
COMP 4100 Operating Systems I (3). This course presents theory of operating
systems. Topics include: Hardware interrupt systems, concurrence of I/O
operations, multiprogramming systems, memory management, protection,
resources allocation, control job management and task management, real time
systems, time-sharing systems, paging, virtual, scheduler, reliability, file
management services, and system accounting. Prerequisites: COMP 2400, COMP
3040. (Formerly CS410)
COMP 4200 Compiler Construction (3). This course is for teaching
fundamentals of writing compilers for programming languages. Topics include:
lexical analysis, parsing, semantic analysis and code generation.
Prerequisites: COMP 3560. (Formerly CS420)
COMP 4300 Software Engineering (3). This course presents principles of
producing efficient and reliable software systems. Topics include: Design of
reliable software; error causes and consequences; software testing
methodologies, including test case design, tools, path testing and
transactions flow; data validation and program correctness. Prerequisite:
COMP 3040. (Formerly CS430)
COMP 4400 Artificial Intelligence (3). An introduction to the core concepts
of AI. Topics include expert systems, game playing, planning, vision,
machine learning, neural networks, and robotics. Prerequisite: COMP 3040.
(Formerly CS440)
COMP 4450 Computer Network Architecture (3). Network design and types,
circuits switching, bridges, routers, control signaling, traffic control,
LANs, MANs, WANs and digital networks. Prerequisite: COMP 3310. (Formerly
CS445)
COMP 4500(ENGR 4500) Senior Project I (1). Each CS major must start working
on a research project on the first semester of the graduating year. The
project is to be completed in COMP 4510 in the second semester of the
graduating year. A written report and an oral defense of the project are
required. Prerequisite: graduating senior. (Formerly ENGR 450)
COMP 4510(ENGR 4510) Senior project II (1). This course is the continuation
of the COMP 4500. The project started in COMP 4500 must be completed. The
report must be presented and orally defended. Prerequisite: COMP 4500. (New
Course)
COMP 4550 Computer Network Protocols (3). Basic flow control, types of
protocols, routing, transports, contention, redundancy checks, encryption
and decryption, viruses and internet protocols. Prerequisites: COMP 4450 and
COMP 3200. (Formerly CS455)
COMP 4600 Microprocessors (2). Microprocessor Architecture, Address modes
and the instruction set, Programming the Microprocessor, memory interface,
Basic I/O interface, Direct Memory Addressing, Bus interface, survey of
Intel Microprocessors. (Formerly CS 460)
COMP 4610 Object Oriented and Hybrid Database Systems (3). This course
presents Object Oriented and hybrid database concepts. Topics include:
definitions of objects and attributes, methods and messages, classes,
object-oriented data models, architectural issues, the Object-Oriented
Database System Manifesto, Object-Oriented Database Design, Object-Oriented
Database Management Systems, Object/Relational Database Management Systems,
SQL3. Prerequisite: COMP 3710. Offered Alternate years. (New Course)
COMP 4700 Algorithms (3). The purpose of the course is to teach principles
of algorithm design and algorithm analysis. Topics include: Some basic
algorithms, such as sorting and searching, pattern matching, Classes of P,
NP, NP-complete, intractable problems and some algorithm design techniques,
such as dynamic programming, greedy algorithms. Prerequisites: COMP 3040.
Offered in alternate years or as demanded. (Formerly CS470)
COMP 4750 Computer Network Management (3). Network interfacing, measuring
failures and availability, reliability, security, maintenance, network
statistics, reconfiguration and documentation. Prerequisites: COMP 3310.
Offered in spring. (Formerly CS475)
COMP 4800 Computer Graphics (3). This course presents basics, including
mathematical topics used in writing graphics software. Topics include:
Introduction, Passive and interactive computer graphics, programming,
hardware, user languages and output devices, transformations, algorithms,
object modeling, storage and manipulations and image processing.
Prerequisite: COMP 3040. (Formerly CS 480)
COMP 4910 Special Topics (1 to 3). This course is for teaching important
emerging computer science topics that are not covered in other CS courses.
Prerequisites: junior or senior status and successful completion of at least
18 hours of CS courses. (Formerly CS 490)