Teaching
|
| Course: |
CSCI 1730 - Systems Programming |
| Semester: |
most recent offering: Spring 2012 |
| Remarks: |
This course covers the basics of UNIX systems programming, including file and
directory structures, basic and advanced file i/o, process creation, and interprocess
communication. An initial unit on "C++ for Java programmers" will familiarize students with
the use of C and C++ in systems programming.
|
| |
|
| Course: |
CSCI 6900 - Design, Implementation, and Verification of Concurrent Software |
| Semester: |
most recent offering: Fall 2010 |
| Remarks: |
Concepts, techniques and tools for the development of concurrent software systems.
Topics include modeling and specification of concurrency, design of concurrent software
systems, libraries and languages for implementing concurrency, and verification
of properties of concurrent programs.
|
| |
|
| Course: |
CSCI 6900 - Research Methods in Computer Science |
| Semester: |
most recent offering: Fall 2010 |
| Remarks: |
This "lunch and learn" seminar is designed to help new graduate students
acclimate to the systems environment at CS@UGA and to introduce them to
tools and techniques needed for research and assistantship duties.
Topics include: basic UNIX commands and setting up your CS account,
LaTex and BibTex, Version Control with svn, Basic Systems Administration
for Windows, Basic Systems Administration for UNIX, Anatomy of a Research
Paper, and more.
|
| |
|
| Course: |
CSCI 7010 - Introduction to Programming |
| Semester: |
most recent offering : Fall 2009 |
| Remarks: |
Fundamental techniques of program development and supporting software tools and programming projects
and applications in a structured computer language. The course emphasizes hands-on experience using
microcomputers. Programming projects for this semester's version of 7010 will focus on software
development for handheld devices. Initial units will focus on the Java programming language and
applications for the Blackberry. If time permits, later units will provide an introduction to
programming in Objective-C and the development of applications for the iPhone. It is not necessary
to own a handheld device. Instead, we will make use of simulators for the Blackberry and iPhone
interfaces.
|
| |
|
| Course: |
CSCI
1301 - Intro to Computing and Programming |
| Semester: |
most recent offering: Summer 2008 (Joint with Brian A. Smith) |
| Remarks: |
Algorithms, programs, and computing systems. Fundamental techniques of program
development and supportive software tools. Programming projects and
applications in a structured computer language. Hands-on experience using
microcomputers. We will be introducing some fundamental ideas in Computer
Science and programming, focusing on the Java programming language. This will
include the fundamentals of the object-oriented paradigm (classes, objects,
encapsulation, inheritance and polymorphism), basic data structures such as
arrays and lists, and basic algorithm design.
|
| |
|
| Course: |
CSCI
2720 Data Structures |
| Semester: |
most recent offering: Spring 2007 |
| Remarks: |
This course deals with the design, analysis, implementation, and evaluation of the
fundamental structures for representing and manipulating data: lists, arrays, trees,
tables, heaps, and graphs. Memory management of these data structures is also addressed.
|
| |
|
| Course: |
CSCI
4800/6800 Human-Computer Interaction |
| Semester: |
most recent offering:
Spring 2007 |
| Remarks: |
This course introduces students to issues in the design, implementation, and
evaluation of user interfaces for computer systems. Concepts in human factors,
usability, and interface design are covered, and the effects of human capabilities
and limitations on interaction with computer systems is studied. Students apply
these concepts to the design and implementation of graphical user interfaces. Units
on experimental design and statistical analysis, as well as new topics in HCI are included.
|
| |
|
| Course: |
CSCI
8710 Computer Systems Performance Evaluation |
| Semester: |
most recent offering: Fall 2008 |
| Remarks: |
This four-hour course address computer systems performance analysis. It introduces the main
concepts and techniques needed to plan the capacity of computer systems, predict their future
performance under different configurations, and design new applications that meet performance
requirements. The course is mainly based on the use of analytic queuing network models of computer
systems. These techniques are applied to study the performance of centralized, distributed, parallel,
client/server systems, Web server and e-commerce site performance. The course also discusses
performance measuring tools for operating systems such as Unix and Windows NT. The course provides
the students with hands-on experience in performance evaluation through a project. The concept and
applications of software performance engineering are also covered.
|