The University of Tennessee College of Arts and Sciences
A-Z Index  /  WebMail  /  Dept. Directory
Dept. of Computer Science Tue, 13 May 2008 
  Course Descriptions  
Home > Academics > Course Descriptions

 Course Descriptions

Overview of Courses

Introductory non-major course: 100.

Bachelor prerequisites: 102, 140, 160.

Bachelor Required Courses: 302, 311, 365, 380, and any 2 of 340, 360, 370.

Masters and PhD Required Courses: 530, 560, 580, 581.

Additional Active Courses:

Course Description

100: Introduction to Computers and Computing (3)

Basic concepts of computer hardware and software. Microcomputer systems and workstations. Networking and the Internet. The interdisciplinary science of computing. Non-major course. Prerequisites: none. 2 hour lab required.

 

102: Introduction to Computer Science (4)

Problem solving and algorithm development. Organization and characteristics of modern digital computers. Emphasis on developing good programming habits. Building abstractions with procedures and data. Programming in a modern computing language. No student who has received credit for 140 or 160 with a grade of C or better may subsequently receive credit for 102. 3 hour lab required.

 

140: Data Structures (4)

Advanced problem solving and algorithm development, structured programming, data structures and applications, I/O techniques, lists, queues, trees, algorithms, files. Prereq: 102. 3 hour lab required.

 

160: Computer Organization (4)

Number systems, Boolean algebra, combinational and sequential circuits, registers, processor functional units and control, pipelining, memory and caching, stored program computing, memory management, computer system organization, assembly language programming. Prereq: 102. 3 hour lab required.

Fall 2006 - Dr. Micah Beck
Spring 2006 - Dr. Bob Ward
Fall 2005 - Dr. Jens Gregor
Spring 2005 - Dr. Bob Ward
Fall 2004 - Dr. Jens Gregor

 

291: Lower-Division Special Topics (1-3)

Topics vary. Programming languages, operating systems and application software packages. May be repeated. Maximum 9 hours.

 

300: Scripts and Utilities (1)

Practical tools available under Unix to enable students to become more efficient in performing labs and research projects. Course will be pass/fail. Topics to be covered include: sh, cat/grep/find/sort/at/ed/sed, awk, perl, python, make, rcs, jgraph, gcc/cpp/purify/quantify. Prereq: CS140 or permission of instructor. Satisfactory/no credit grading.

302: Fundamental Algorithms (3)

Design, analysis, and implementation of fundamental algorithms, such as sorting and searching, and their data structures. Prereq: 140 and 160. 3 hour lab required.

 

311: Discrete Structures (3)

Equivalence relations, partial ordering. Combinations, permutations, analysis of algorithms. Finite automata and regular languages. Prereq; 140, 160, and Math 300.

 

340: Foundations of Software Engineering (3)

Principles of analysis and design of information systems. Principles of program design and verification, formal objects, formal specifications. Prereq: 140, 160, and 311. 3 hour lab required.

 

360: Systems Programming (3)

Introduction to user-level systems programming; file control, process control, memory management, system utilities, networking programming. Prereq: 302. 3 hour lab required.

 

365: Programming Languages and Systems (3)

Language paradigms (procedural, functional, object-oriented, logic), language design and implementation issues, and language issues related to parallelism. Prereq: 302.

Spring 2005 - Dr. Michael Berry

 

370: Introduction to Scientific Computing (3)

The design, analysis, and implementation of numerical algorithms for solving problems in science and engineering. Emphasis on program design, data structures, computational complexity, scientific computing environments, and high-performance software packages. Prereq: 140, M241, and M251. 3 hour lab required.

Fall 2005 - Dr. Bob Ward

 

380/480: Theory of Computation (3)

Countability and diagonalization. Finite automata and regular sets. Push-down automata and context-free languages. Introduction to Turing machines and undecidability. Prereq: 140, 160, and 311.

 

411: Senior Thesis I (3)

Frontiers-of-computer-science technology and research. Students begin writing a senior thesis. Prereq: senior standing. Writing-emphasis course.

 

412: Senior Thesis II (3)

Continuation of 411. Writing-emphasis course.

 

420: Advanced Topics in Machine Intelligence:

Search, learning, expert systems, neural networks, pattern recognition and natural language processing. Faculty research. Prereq: Completion of core curriculum or consent of instructor. May be repeated. Maximum 9 hours.

CS 420/594 - Fall 2004
Title: "Complex Systems and Self-Organization"
Instructor: Bruce MacLennan
Schedule: 3:40-4:55 MW
Webpage: View webpage
CS 420 covers advanced topics in machine intelligence with an emphasis on faculty research; CS 594 is similarly focused on faculty research. In the Fall semester of 2003 the topic for my CS 420/594 will be complex systems and self-organization.

 

430: Advanced Topics in Hardware Systems (3)

Architecture, parallel processors, microprogramming, networks and communications. Faculty research. Prereq: Completion of core curriculum or consent of instructor. May be repeated. Maximum 9 hours.

CS 430/594 - Fall 2004
Title: "UNIX Network Programming"
Instructor: David Straight
Schedule: 12:40-1:55 TR
Webpage: View webpage
CS 430/594 UNIX Network Programming (Fall, 2004) will be a programming-intensive course focusing on the implementation of a simplified TCP/IP stack. Networking basics, the TCP/IP stack, gateways, routing, etc. We provide a virtual LAN and virtual Internet (implemented through sockets).

 

 
460: Advanced Topics in Software Systems (3)

Operating systems, compilers, parallel computation, software engineering, database systems and programming languages. Faculty research. Prereq: Completion of core curriculum or consent of instructor. May be repeated. Maximum 9 hours.

CS 460/594 - Fall 2004
Title: "Distributed Systems"
Schedule: 9:40-10:55, MW
Instructor: Micah Beck
This class will survey fundamental topics in distributed systems from theoretical foundations to file and operating systems, fault tolerance, scalable networking and wide area information systems.

CS 460 - Spring 2000
Title: "Finishing School for Programmers"
A capstone course for seniors finishing their coursework in computer science. The course will be a project-oriented course emphasizing students working in small groups on research-oriented projects in graphical interfaces. The course will employ the Gamma, et. al. Design Patterns book and the Meyers Effective C++ book to "finish" the student's knowledge of object-oriented programming. Skills developed in this course will include object-oriented design and programming skills, teamwork skills, and graphical interface design and implementation skills. A previous course in C++ is a prerequisite. Permission of instructor is required.

 

470: Advanced Topics in Scientific Computation (3)

Numerical methods, supercomputers and computer modeling and simulation of physical systems. Faculty research. Prereq: Completion of core curriculum or consent of instructor. May be repeated. Maximum 9 hours.

 

471: Numerical Analysis (3)

Introduction to computation, instabilities, and rounding. Interpolation and approximation by polynomials and piecewise polynomials. Quadrature and numerical solution of initial and boundary value problems of ordinary differential equations, including stiff systems. Prereq: 371 or consent of instructor. (Math is major department.)

 

472: Numerical Algebra (3)

Direct and iterative methods for systems of linear equations. Solution of a single nonlinear equation and nonlinear systems. Orthogonal decomposition, least squares and the algebraic eigenvalue problem. Prereq: 371 or consent of instructor. Recommended: M453. (Math is major department.)

 

480: Advanced Topics in Theoretical Computer Science (3)

Theory of computation, complexity theory, formal languages and graph theory and its applications. Faculty research. Prereq: Completion of core curriculum or consent of instructor. May be repeated. Maximum 9 hours.

 

493: Independent Study (1-15)

Special project in area of student's primary interest. To be directed by Computer Science faculty, perhaps jointly with student's faculty advisor. Intended for students with a specific project to pursue in conjunction with a faculty member. Project may be from a department other than Computer Science in which case a faculty member from the appropriate department will help oversee project. May be repeated. A maximum of 6 hours may be applied to the major. Prereq: consent of instructor.

 

494: Special Topics in Computer Science (1-3)

May be repeated. Maximum 9 hours.

CS 494 - Fall 2004
Title: "MATLAB in Science and Engineering"
Schedule: 9:05-9:55 MW
Instructor: Michael Thomason
Webpage: View webpage
This course is an introduction to computing with MATLAB for Physical Sciences and Engineering. It covers basic ideas of algorithm design and data structures using MATLAB as the tool for implementations.

CS 494 - Fall 2004
Title: "Cluster Computing"
Schedule: 9:05-9:55 MW
Instructor: Graham Fagg

CS 494 - Fall 2004
Title: "Computer and Network Security"
Schedule: 5.05-7.45 W
Instructor: Tom Dunigan
Webpage: View webpage
The course will cover three areas: security risks and countermeasures, principles of computer cryptography, and applied cryptography.

 

500: Thesis (1-15)
P/NP only.

 

502: Registration for Use of Facilities (1-15)

Required for the student not otherwise registered during any semester when student uses university facilities and/or faculty time before degree is completed. May not be used toward degree requirements. May be repeated. Satisfactory/No Credit grading only.

 

522: Cybernetics (3)

Various functions in living systems and their actual or potential realization in computers. Prereq: Discrete Structures.

 

525: Software Engineering (3)

Survey of key ideas in software engineering: formal methods, tools, testing, reliability, structured design and development, metrics, management and history of the field.

 

530: Computer Systems Organization (3)

Architectures and systems organization for serial and parallel machines. Prereq: CS 311 and CS 360.

Fall 2007 - Dr. Bob Ward

 

532: Boolean Algebra, Logic Design and Microprocessors (3)

Boolean algebras. Combinational and sequential logic design. Microprocessors. Hardware lab. Prereq: one year college mathematics beyond algebra and trigonometry.

 

536: Theoretical Aspects of Computer-Aided Design (3)

Algorithms for CAD of VLSI systems. Placement and routing algorithms; programmable logic arrays. Prereq: Discrete structures (311) and analysis of algorithms.

 

538: Computer Networks (3)

Design and operation of networks. Hardware and software systems; communications subsystems. Prereq: 360

 

541: Database Management Systems (3)

Data model theory, optimization, and normalization; intelligent database systems; comparison of implementations; analysis of distributed and networked databases. Techniques for evaluation of performance, integrity, security and reliability. Prereq: 311.

 

551: Pattern Analysis (3)

Decision-theoretic and structural pattern analysis. Deterministic and statistical decision rules, feature extraction and representation; syntactic and semantic methods, relational models. Prereq: 311 and a course in probability or statistics.

 

552: Image Analysis (3)

Enhancement and restoration of digital images. 2D transforms. Segmentation and description. Computational procedures for image reconstruction. Prereq: Calculus and CS311.

 

560: Software Systems (3)

Design and implementation of compilers, software systems; optimization, run-time storage administration. Software system design issues; description, structure and design of contemporary software systems. Prereq: 360.

 

571-572: Numerical Mathematics (3-3)

Analysis of direct and iterative methods for linear algebraic systems; singular value decomposition and linear least squares problem. Theory of Newton and quasi-Newton methods for systems of nonlinear equations; nonlinear least squares. Quadrature theory. Theory and current practice in numerical methods for ordinary differential equations. Polynomial and piecewise polynomial approximation theory. Prereq: M445-46, M453, 471-72. (Math is major department.)

 

574: Finite Element Methods (3)

Finite element techniques for solution of boundary and initial-boundary value problems. Variational formulation. Finite dimensional subspaces and their approximating properties; rates of convergence. Computer implementation. Prereq: M435, 471, and either M453 or 472. Recommended prereq: M445-46, 573. (Math is major department.)

 

575: Matrix Theory and Techniques in Numerical Analysis (3)

Advanced topics in study of iterative and direct methods for large systems of linear equations: sparse matrix analysis, relationship to modern computer architectures. Prereq: M453, 471-72, or consent of instructor. May be repeated. Maximum 9 hours (Math is major department.)

 

576: Sparse Matrix Computations (3)

Solution of large sparse linear systems: graph models, reordering techniques, symbolic factorizations, data structures, numerical algorithms, complexity analyses, parallel algorithms. Prereq: course on numerical linear algebra.

 

580: Foundations (3)

Foundations of computer science, including computability, computational complexity, fundamental algorithms and algorithm analysis. Prereq: 380.

581: Advanced Design and Analysis of Algorithms (3)

Analysis of algorithms and relevance of analysis to design of efficient computer algorithms. Sorting, searching, graph algorithms, pattern matching, dynamic programming, efficient approximation algorithms. Prereq: 302.

 

593: Independent Study (1-15)

May be repeated.

 

594: Artificial Intelligence (3)

Dr. Lynne Parker (parker@cs.utk.edu)

This CS594 course on Artificial Intelligence (AI) covers the breadth of the field of AI, including topics such as problem-solving, logic, planning, reasoning, learning, perception, and robotics. We define AI as the study of intelligent agents that receive percepts from the environment and perform actions. We will cover different ways to represent the mapping of percept sequences to actions, such as production systems, reactive agents, real-time conditional planners, neural networks, and decision-theoretic systems. Our primary aim is to convey the ideas that have emerged over the past fifty years of AI research.

Offered: Fall 2004

 

494/594: Cluster Computing (3)

Dr. Graham Fagg (fagg@cs.utk.edu)

Offered: Fall 2004

 

420/594: Complex Systems and Self-Organization (3)

Dr. Bruce MacLennan (mclennan@cs.utk.edu)

CS 420 covers advanced topics in machine intelligence with an emphasis on faculty research; CS 594 is similarly focused on faculty research. In the Fall semester of 2003 the topic for my CS 420/594 will be complex systems and self-organization.

Offered: Fall 2004

 

594: Computed Imaging (3)

This course will cover the math and algorithms that allow medical doctors to look inside the human body. Topics include: Fourier transform (FFT), magnetic resonance imaging (MRI), Radon transform and projection reconstruction, X-ray computer tomography (CT), algebraic reconstruction methods, gamma-ray emission tomography (SPECT/PET), statistical reconstruction methods, and aspects of parallel and distributed computing. A fieldtrip will be arranged to Dept. Radiology/UTMCK.

 

494/594: Computer and Network Security (3)

Dr. Tom Dunigan (dunigan@cs.utk.edu)

The course will cover three areas: security risks and countermeasures, principles of computer cryptography, and applied cryptography.

Offered: Fall 2004

 

594: Computer Science of TeX/LaTeX (3)

Dr. Victor Eijkhout (eijkhout@cs.utk.edu)

The TeX typesetting system, and the macro package LaTeX written on top of it, are a popular word processor in mathematics, computer science, physics, and (!) philology. TeX was written by the Stanford computer scientist Donald Knuth. This course will teach you the basics of LaTeX use, and TeX macro programming.

After that, we will go into various topics in computer science that relate to TeX. For instance, the line breaking and page breaking algorithms take us into optimization and graph theory, the TeX macro language lets us take a look at functional programming, and the font description language Metafont leads to an exploration of splines and approximation theory. Finally, there are several software engineering aspects to TeX that we will look into, such as font encodings, the "torture test" approach to program correctness, and the Web system for "literate programming".

Offered: Fall 2004

 

460/594: Distributed Systems (3)

Dr. Micah Beck (beck@cs.utk.edu)

This class will survey fundamental topics in distributed systems from theoretical foundations to file and operating systems, fault tolerance, scalable networking and wide area information systems.

Offered: Fall 2004

 

430/594: UNIX Network Programming (3)

Dr. David Straight (straight@cs.utk.edu)

CS 430/594 UNIX Network Programming (Fall, 2004) will be a programming-intensive course focusing on the implementation of a simplified TCP/IP stack. Networking basics, the TCP/IP stack, gateways, routing, etc. We provide a virtual LAN and virtual Internet (implemented through sockets).

Offered: Fall 2004

 

600: Doctoral Research and Dissertation (3-15)

P/NP only.

 

620: Advanced Topics in Intelligent Systems (1-6)

Prereq: consent of instructor. May be repeated with consent of Department.

 

650: Advanced Topics in Pattern/Image Analysis (1-6)

Prereq: consent of instructor. May be repeated with consent of Department.

 

670: Advanced Topics in Scientific Computing (1-6)

Prereq: consent of instructor. May be repeated with consent of Department.

 

680: Advanced Topics in Theory and Foundations (1-6)

Prereq: consent of instructor. May be repeated with consent of Department.

 

690: Advanced Topics in Computer Science (1-6)
Prereq: consent of instructor. May be repeated with consent of Department.

 



 Quick Links/ Related Info

[ feedback | sitemap | contact us | print | print2 ]
Copyright ©2006 · Department of Computer Science · Knoxville, Tennessee 37996-3450 · Telephone: (865) 974-5067
Last Updated: May 25 2007, 16:38:51 EDT