COMPUTER SCIENCE (CSC)
A Computer Science minor should have completed
CSC 2020/2021, plus six hours of upper division computer science courses
for a total of at least 15 hours in Computer Science (not to include CSC
1100
or CSC 1070).
A computer science major is required to complete
all prerequisite computer science courses with a grade of C or
better before enrolling in a subsequent course.
CSC (MATH,
PHYS) 1020. First-Year Connections. Rec. 2. Credit 1.
This course is intended as a bridge course for students entering TTU from high
school. The course is designed to strengthen the student’s connection to
TTU, the College of Arts and Sciences, and the appropriate department (CSC, MATH,
or PHYS) by focusing on the enhancement of skills needed for academic success.
This course engages the student in meaningful academic and non-academic out-of-the-classroom
activities, as learning occurs both in and out of the classroom. It emphasizes
critical thinking, the formation of academic and social goals and support groups,
and time-management and study skills.
CSC 1070. Elementary Programming. Lec. 3. Credit 3.
Prerequisite: MATH 1010 or equivalent. Introduction to programming including
loops, arrays and applications in various disciplines. (For CSIT option and non-computer
science majors only.)
CSC 1100. Introduction to Computing. Lec. 3. Credit 3.
Prerequisite: MATH 1010 or equivalent. Credit cannot be obtained for CSC 1100
in
addition to credit for either DS 2810 or FOED 3240. Use of software for
word processing, spreadsheets, database, etc., on a personal computer; organization
of computer
hardware. (For CSIT option and non-computer science majors
only.)
CSC 1610. Discrete Structures for Computer
Science. Lec. 3. Credit 3.
Corequisite: MATH 1830 or 1910. Applications of discrete mathematics to computer
science, sets and boolean algebra, relations, and graphs, with applications
to computer logic and data structures.
CSC 2001. Introduction
to Computer Science. Lec. 3. Credit 3.
Fundamental concepts of computing, problem solving, and algorithm
development with an introduction to computer programming.
CSC 2010. Introduction to Computer Science.
Lec. 3. Credit 3.
Prerequisite: CSC 2001 or ENGR 1210. Corequisite: CSC 2011, MATH
1730, or equivalent. Digital computers, problem solving and algorithm development,
programming in an object-oriented language, and methods and style are emphasized.
CSC 2011. Introduction
to Computer Science Laboratory. Lab. 2. Credit 1.
Prerequisite: CSC 2001 or ENGR 1210. Corequisites: CSC
2010, MATH 1730, or equivalent. A series of weekly
laboratory exercises for developing proficiency in object-oriented programming
and problem solving.
CSC 2020. Data Structures & Programming
Techniques. Lec. 3. Credit 3.
Prerequisite: CSC 2010 and CSC 2011. Corequisite: CSC
1610 and CSC 2021. Program design and implementation, abstract data types,
recursion, searching, sorting, trees, and running time analysis.
CSC 2021. Data
Structures and Programming Techniques Laboratory. Lab. 2. Credit
1.
Prerequisites: CSC 2010 and CSC 2011. Corequisite: CSC
2020. A series of weekly laboratory exercises for developing proficiency
in implementing and utilizing data structures.
CSC
2100. Introduction to Problem Solving and Computer Programming. Lec. 3.
Credit 3.
Corequisite: MATH 1710 or equivalent. Digital computers;
problem solving and algorithm development; programming is introduced using
a procedural approach, but classes and object-orientation are introduced; design
and testing are emphasized.
CSC
2110. Data Structures and Algorithms. Lec. 3. Credit 3.
Prerequisites: C or better in CSC 2100. Corequisites: CSC 2111 and
CSC 1610. Abstract data types and fundamental data structures including stacks,
queues, and trees; algorithms to search, sort, and manipulate data using such
structures; and introduction to runtime analysis.
CSC
2111. Data Structures and Algorithms Lab. Lab 1. Credit 1.
Prerequisites: C or better in CSC 2100. Corequisites: CSC 2110.
A series of weekly laboratory exercises for developing proficiency in implementing
and utilizing data structures.
CSC
2120. Object-Oriented Programming and Design. Lec. 3. Credit 3.
Prerequisites: C or better in CSC 2110 and CSC 2111. Corequisite:
CSC 2121. Theory and practice of object-oriented programming and design. Encapsulation,
inheritance, dynamic binding, and polymorphism; and introduction to UML and
design patterns.
CSC
2121. Object-Oriented Programming and Design Lab. Lab 1. Credit 1.
Prerequisites: C or better in CSC 2110 and CSC 2111. Corequisite:
CSC 2120. A series of weekly laboratory exercises for developing proficiency
in object-oriented programming and design.
CSC 2300.
C/C++ in Unix. Lec. 3. Credit 3.
Prerequisites: CSC 2020, CSC 2021, MATH 1910, or equivalent. The course introduces
students to facilities, tools and development procedures using a language (currently
C/C++) most
suitable for systems programming. The course utilizes the LINUX operating system,
which
provides a good environment for systems programming work.
CSC 2400. Design of Algorithms. Lec. 3.
Credit 3.
Prerequisites: CSC 1610, CSC 2020, and CSC 2021.
Corequisite: MATH 1920. Advanced
data structures and
applications, problem solving strategies, heuristics, and complexity of algorithms.
CSC 2500. Unix Laboratory. Lec.
1. Lab. 1. Credit 1.
Prerequisites: CSC 2020 and CSC 2021. Introduction to the facilities, tools,
and
development procedures in an environment designed
for systems programming.
CSC 2710. Foundations of Computer Science.
Lec. 3. Credit 3.
Prerequisite: CSC 1610. Corequisites: CSC
2020 and CSC 2021.
Application of discrete structures to model computational processes; techniques
for analysis of algorithms; and automata and
concepts of language theory.
CSC 2901,
2902, 2903. Special Topics. Credit
1-3.
Prerequisite: Consent of instructor. Timely topics in computer
science. Individual courses may not be repeated either for credit or for
improvement of credit.
CSC 3020. Numerical Methods. Lec. 3. Credit
3.
Prerequisites: CSC 2010 and 2011 or ENGR 1120, MATH 1920. Linear
and
non-linear equations; convergence and error analysis; quadrature; interpolation;
numerical
differentiation and integration; first order differential equations; boundary
value problems; and approximation of functions.
CSC 3030. Practical
and Professional Issues in Computer Science. Lec. 1. Lab. 1. Credit
1.
Prerequisite: CSC 2020, CSC 2021, and junior status. Required for all computer
science
majors, including transfer students. Written, oral, and audio-visual communication
in computer science; presentation techniques, report preparation, and technical
correspondence. Social, ethical, and career aspects of computing.
CSC 3310. Computer Logic and Sequential Design.
Lec. 3. Credit 3.
Prerequisites: CSC 2010, CSC 2011, and CSC 1610. Number systems and codes; Boolean
algebra
and
logic gates; combinational logic MSI and LSI circuits; ROM; flip-flops; clocked
sequential circuits; and logic design for counters, registers, and RAM.
CSC 3340. Deterministic Computer Models. Lec.
3. Credit 3.
Prerequisites: CSC 2020, CSC 2021, and MATH 2010. Formulation
and application of the
models of
linear, non-linear, integer, and dynamic programming including computer
solutions of the algorithms.
CSC 3350. Probabilistic Computer Models. Lec.
3. Credit 3.
Prerequisites: CSC 3340 and MATH 3470. Stochastic models of queuing, game, inventory,
and decision theory with computer solutions in algorithmic form and by digital
simulation.
CSC 3400. Distributed and Net-Centric Programming. Lec.
3. Credit 3.
Prerequisites: CSC 2300 and CSC 2400. Concepts
in networking, operating systems, distributed computing, and programming languages.
Application of these issues to
web application design.
CSC 3402.
Distributed and Net-Centric Programming for Engineers. Lec. 2. Credit
2.
Prerequisites: CSC 2300 and CSC 2400. Concepts in networking,
operating
systems, distributed computing, and programming languages. Credit cannot be earned
for
CSC 3402 in addition to credit for CSC 3400.
CSC 3410. Computer Organization and Assembly
Language Programming. Lec. 3. Credit 3.
Prerequisites: CSC 2020, CSC 2021, or consent of instructor.
Computer organization and architecture; machine language; and assembly language
programming
techniques.
CSC 3550. Systems Programming.
Lec. 3. Credit 3.
Prerequisites: CSC 2500. Design of systems software; implementation of program
development tools; development of a systems software package.
CSC
3560 Network and Storage Technologies. Lec. 3. Credit 3.
Prerequisites: CSC 2500 or consent of instructor. Course covers general network
and storage technology concepts and components to provide the basic ability
to work on a network implementation team.
CSC 3620. File Processing. Lec. 3. Credit
3.
Prerequisites: CSC 2020, CSC 2021, or DS 3830. File
organization techniques; storage and retrieval of information from bulk storage
devices; and implementation of these
techniques in COBOL.
CSC 3700. Software Analysis and Design. Lec.
3. Credit. 3.
Prerequisite: CSC 2400. Introduction to life cycle/process models, software
requriements anaylsis, software design, software testing and configuration management.
CSC 3750.
Computer Graphics. Lec. 3. Credit 3.
Prerequisites: MATH 2010 and
CSC 2400. Interactive graphical techniques including three-dimensional transformations,
hidden surface removal, texture mapping, and shading.
CSC 4010 (5010). Programming Languages. Lec.
3. Credit 3.
Prerequisites: CSC 2710 and CSC 3410. Concepts distinguishing modern programming
languages with emphasis on language design, implementation, and run-time
behavior.
CSC 4020 (5020). Compiler Construction.
Lec. 3. Credit 3.
Prerequisites: CSC 2710 and CSC 3410. Programming language translator design
with
emphasis on design concepts, parsing, code generation, tools, and code
improvement; and construction of a small compiler.
CSC 4100 (5100). Operating Systems. Lec.
3. Credit 3.
Prerequisites: CSC 2300 and either
CSC 3410 or ECE 3120. A
historical
perspective
of
operating systems; overview of modern systems; processor, storage, and process
management;
virtual
memory; deadlocks; concurrent processing and programming; protection; and case
studies.
CSC 4200 (5200). Computer Networks. Lec.
3. Credit 3.
Prerequisites: CSC 2300, CSC 2400, and CSC 2710. Data communications
and
computer
networks;
network
models
and protocols; local area networks; and data security.
CSC 4240 (5240). Artificial
Intelligence. Lec. 3. Credit 3.
Prerequisites: CSC 2400 and CSC 2710. A unified
survey of AI methods and applications; search and problem solving; knowledge
representation; methods of reasoning, planning and uncertainty; learning, perception
and communication;
and rational agents.
CSC 4300 (5300). Database
Management Systems. Lec. 3. Credit 3.
Prerequisites: CSC 2400 and CSC 2710. Organization and management of large data
files; data definition; database models; query languages; crash recovery; concurrency
control; and case studies.
CSC 4320 (5320). Computer Architecture. Lec.
3. Credit 3.
Prerequisites: CSC 3410 or equivalent. Computer systems, the CPU, the
control unit, microprogramming, parallel organization, and RISC architectures.
CSC 4400 (5400). Analysis of Algorithms. Lec.
3. Credit 3.
Prerequisites: CSC 2400 and CSC 2710. Analysis techniques; search, traversal,
string
and
graph algorithms; and NP-hard and NP-complete problems.
CSC 4450 (5450). Introduction to Automata
Theory and Computation. Lec. 3. Credit 3.
Prerequisite: CSC 2710. CSC 2400 recommended. Finite automata; regular
sets; context-free languages, pushdown automata; Turing machines; recursive languages;
computability;
and computational complexity.
CSC
4575 (5575). Information Assurance and Security. Lec. 3. Credit 3.
Prerequisite: Junior status, knowledge of programming language, or consent of
instructor. IAS fundamentals, IAS policies and models, access control, malicious
codes, vulnerability analysis, network security, database security, program
security, and basic cryptography.
CSC
4710 (5710). Design and Development of Human and Web Interfaces. Lec. 3.
Credit 3.
Prerequisites: CSC 3700. A course in human-computer interaction design and user
interface development. It will expose students to tools, techniques, and ideas
for designing effective human computer interfaces.
CSC
4801 , 4802 , 4803 (5801, 5802, 5803). Directed Readings in Computer Science.
Credit 1, 2, 3.
Prerequisite: Consent of instructor. This course provides for individual study
under the direction of a faculty member in developing areas of computer science.
CSC 4901, 4902, 4903
(5901, 5902, 5903). Special Topics. Credit 1, 2, 3.
Prerequisite: Consent of instructor. Timely topics in computer science.
May be repeated for credit if the topic is different.
CSC 4950.
Capstone Project. Lec. 3. Credit 3.
Prerequisites: CSC 3700 and CSC 3400. All graduating seniors are required to
complete a
capstone project during their senior year. This is a significant project that
a student works
on individually (under the guidance of a faculty member), which culminates in
a portfolio
review, scholarly paper (or technical report), and an oral presentation.
CSC
4951. Web
Design Capstone Project Course. Lec. 3. Credit 3.
Prerequisite: Senior standing and Consent of instructor. This culminating
project course is for students in the web design program. CSC students need
to register for CSC 4950 and will not get credit for this course.
CSC
4955 (5955). Information Assurance and Security Case Studies. Lec.
3. Credit 3.
Prerequisites: Junior status, equivalent of MATH 1710 or higher, PHYS 2020,
knowledge of a scripting or programming language, and consent of instructor.
This course will follow a dilemma-based case study approach to study IAS related
issues such as policies, human factors, evidence gathering, etc.
CSC
4990. Computer Science Internship. Credit 3 or 6.
Prerequisites: CSC 3030. See instructor prior to enrolling. Part-time employment
in a professional or institutional situation related to the student's area of
concentration in computer science. This course may be taken as two 3-hour courses
or one 6-hour course.
|