shim.gif Clark University Math and Computer Science Department Worcester MA
  HomeWelcomeFacultyCoursesJoin UsResourcesAnnouncements
shim.gif

Computer Science Courses

99 Computers In Our World / Lecture, Laboratory

An introduction to computer technology with an emphasis on social implications where applicable. Lectures will survey topics such as history of computer development from number- crunchers to information management systems, how computers work, networking protocols including the Internet and World Wide Web. Additionally, the course will explore data representation and programming; students will learn binary algebra and develop two or three short programs. A laboratory component will give students hands-on experience with software applications which demonstrate the possibilities enabled by current computer technology. There are no prerequisites; no prior computer experience is necessary. Not applicable to the major requirements in computer science. Staff / Offered periodically. 


101 Computer Programming I / Lecture, Laboratory

An introduction to computer programming using Java. The theme is the top-down approach to problem solving. Algorithms are developed for the solutions to stated problems, then translated into Java and tested on the computer.  For the laboratory component, students are expected to write approximately seven programs throughout the course. Specific topics include decision making, logic design, iteration, arrays, text files, and records. Satisfies the formal analysis requirement. No prerequisites.  This course is a prerequisite for most higher numbered computer science courses. Mr. Chou, Mr.  Green, Ms. Han, Mr. Joyce, Staff / Offered every semester


102 Computer Programming II / Lecture, Laboratory

A continuation of CSci 101, covering such topics as string manipulation, data files and their processing, collections, and dynamic data structures such as linked lists, stacks, queues, and binary trees. The usage and implementation of recursion also is discussed. Approximately six programming projects are assigned as the laboratory component of the course. These projects entail the design and implementation of programs involving the topics mentioned above.  Prerequisite: CSCI 101. Mr. Chou, Mr.  Green / Offered every semester


110 Can Computers Think? / Seminar

In this course we will follow several different lines of inquiry. We first need to explore what it means for a computer to "think". Is a computer "thinking" when you use it to play a game, or when you use it to calculate something? After that, we will figure out the methods we as humans use to "think" - specifically how we solve problems. A good part of solving any problem is putting it in a form that we can work with. So we will look at how we state problems in ways that make them solvable. We'll then concentrate on problems that can be approached with a computer and we'll program the computer to solve those problems. Fulfills the Formal Analysis Perspective. No computer programming background is required; however, previous experience in thinking is essential. Mr. Breecher

140 Assembly Language And Computer Organization / Lecture, Laboratory

Covers fundamentals of assembly language programming such as data representation, the instruction set, addressing mode, macros, procedures, input and output facilities, assembler and linker, introduction to logic circuits, and the basic machine organization of conventional computers. The goal is to understand how a computer performs various tasks that are completely hidden from the user in a high-level language. For the laboratory component, students will write several programs in assembly language. Prerequisites for this course require a grade of C or better. Prerequisite: CSci 102.  Mr. Chou, Mr. Breecher / Offered every year


160 Data Structures And Algorithms / Lecture, Discussion, Laboratory

Deals with advanced data structures such as sets, trees, and graphs, together with the algorithms to manipulate them. Applications to searching and sorting are discussed. Topics include: analysis of algorithms, general trees, balanced trees, priority queues, hash tables, merge-sort, quick-sort, radix sorting and searching, and elementary graph algorithms.  Involves a fourth-hour problem-solving session.  Programming projects are assigned for the laboratory component. Prerequisites for this course require a grade of C or better. Prerequisite: CSci 102 and Math 114. Mr. Chou, Mr. Green / Offered every year


170 Analysis Of Programming Languages / Lecture

Deals with the issues of the design and implementation of programming languages from both the syntactic and the semantic point of view. Topics include: the representation of rules of syntax, using context-free grammars, parsing, semantic constructs, control structures, implementation of procedures and parameters, implementation of recursion, and an introduction to the organization of compilers. A typical group term project may be to design and implement a compiler or interpreter for the actual implementation of some language.  Prerequisites for this course require a grade of C or better. Prerequisites: CSci 102 and Math 114. Mr. Joyce, Mr. Green / Offered every year

180 Automata Theory / Lecture, Discussion

Studies the abstract models of machines and languages recognized by them, and introduces the concept of computability. Begins with a review of sets, functions, and relations, then continues with finite automata and regular languages, pushdown automata and context-free grammars, grammar transformations and normal forms, and finally the mathematical model of modern computers: Turing machines and computable functions. Some examples of unsolvable problems, such as the halting problem, will be discussed.  Involves a fourth-hour problem-solving session.  Prerequisites for this course require a grade of C or better. Prerequisite: CSci 102 and Math 114. Mr. Chou, Mr. Green, Mr. Joyce / Offered every year

201 Proseminar In Computer Science / Seminar

The presentation of topics in computer science by and for senior undergraduates. These presentations acquaint students with diverse subjects, introduce them to researching known topics, and give them practice in presenting material to their peers. Faculty members will also present some research topics. Possible areas the topics may be drawn from might include robotics, networking, NP complete problems, neural networks, expert systems, parallel algorithms. Prerequisites for this course require a grade of C- or better. Prerequisites: CSci 160 and CSci 170. Staff / Offered periodically


210 Artificial Intelligence / Lecture, Laboratory

Focuses on the fundamental ideas of artificial intelligence and programming in Lisp. Topics included are knowledge representation schemes, problem representation through explicit models, search techniques, analogy and pattern recognition, natural language parsing, and planning. Students implement the above ideas through computer programs written in Lisp.  Language instruction is provided in Lisp (or Prolog), although no prior knowledge of these programming languages is assumed. Prerequisites for this course require a grade of C- or better. Prerequisite: CSci 160 Mr. Xuan/ Offered every year


212 Numerical Analysis and Scientific Computing / Lecture, Laboratory

See Math 212. Mr. Chou, Ms. Sternberg / Offered every other year. 


215 Operating Systems / Lecture, Laboratory

Studies the structure, performance, and design of operating systems. Topics include concurrency, deadlocks, scheduling, and memory management. Various operating systems may be examined and compared. Students will design and implement parts of operating systems.  Prerequisites for this course require a grade of C- or better. Prerequisite: CSci 160. Mr. Green, Mr. Breecher / Offered every other year


220 Database Management And Systems Design / Lecture

An advanced course on the realities of database technology. Emphasizes the goals of database management: performance, data integrity, future compatibility, and versatility. The concept of the data model is examined and a specific database is discussed. Concentrates on database design and specification. Prerequisite: CSci 160. Mr. Chou / Offered every other year

230 Compiler Design / Lecture, Laboratory

A continuation of CSci 180, Automata Theory. It uses the automata and grammars introduced in CSci 180 to design translators (compilers) for programming languages. Topics include lexical analysis, top-down parsing, bottom-up parsing, syntax-directed translation, type checking, run- time environment, code generation, and an introduction to code optimization. A typical term project is to write a compiler for a simple programming language such as a subset of C or Pascal. Prerequisites for this course require a grade of C- or better. Prerequisites: CSci 160 and CSci 180.  Mr. Chou, Mr. Green / Offered every other year



240 Computer Architecture / Lecture

A study of the design of computers. Topics include the design of combinatorial and sequential circuits, design methodology of a basic computer, central processor organization, microprogramming, memory organization, input- output organization, and arithmetic processor design. As time permits, further topics, such as vector and parallel processing, are discussed. A functional, logical (theoretical) approach is adopted. Physics 219, Electronics Laboratory, is recommended so that students gain hands-on experience with computer chips. The science of design is stressed together with the existing machines. Prerequisites for this course require a grade of C- or better. Prerequisite: CSci 140.  Mr. Breecher / Offered every other year


250 Software Engineering / Seminar

Students consider the life cycle of large software projects, beginning with the elicitation and definition of users' requirements, and continuing through software design, documentation, coding, testing, and maintenance. Topics include: modularity, coupling, cohesion, transformational and transactional structures, and testing strategies. Working in teams, students gain practical experience developing software to solve concrete problems. Prerequisites for this course require a grade of C- or better. Prerequisites: CSci 160 and CSci 170. Mr. Breecher, Ms. Han, Mr. Xuan / Offered periodically


260 Computer Graphics / Lecture, Discussion, Laboratory

This course provides an introduction to computer graphics with an emphasis on the underlying theory and on the use of the graphics library OpenGL as application programming interface (API). We will study the theoretical foundations and algorithmic issues in class and will learn and use OpenGL as the particular API for writing graphics programs in programming assignments. Prerequisites for this course require a grade of C- or better. Prerequisites: Data Structures and Algorithms (CSCI160) and familiarity with calculus and matrix algebra (MATH131). Ms. Han


265 Robotics /Lecture, Laboratory

This course presents an introduction to robotics. In addition to algorithmic issues, the course will cover related engineering and system topics and discuss current research problems. Topics covered include hierarchical paradigms, biological foundations, robot actuators and sensors, sensing techniques, kinematics, and dynamics, control, localization and motion planning. Students will get hands on experience through computer simulation or physical experiments with robot project component kits. Prerequisites for this course require a grade of C- or better. Prerequisites: Data Structures and Algorithms (CSCI160) and familiarity with calculus and matrix algebra (MATH131). Students should be interested in geometric concepts and algorithms and have good programming skills. Ms. Han/Offered every other year.


270 Theory of Computation / Lecture

Studies the nature and formal models of computation (by computers), its power and limitation (computability versus uncomputability), the computational complexity of various problems, and the applications in logic and computer science. Turing machines, general recursive functions, and other standard models of computation are introduced. Other aspects of recursion theory, such as unsolvable problems and recursively enumerable languages are introduced. We also address the more practical question "What is an efficient program?" in an introduction to modern complexity theory. Prerequisites for this course require a grade of C- or better. Prerequisite: CSci 180. Mr.  Chou, Mr. Green / Offered every other year


280 Computer Networks / Lecture

Provides an introduction to the theory and practice of the design of computer and communications networks. The TCP / IP Model will be used as the framework with the course progressing through the physical, data link, network, and transport layers. Analysis of network topologies and protocols, including performance analysis, is treated. Current network types including local area and wide area networks are introduced, as are evolving network topologies. Laboratory exercises include the design and implementation of projects such as simulation of the network / transport layer functions, routing, congestion control, an Ethernet controller, applications using TCP / IP or remote procedure calls. There may be extensive network programming assignments.  Prerequisites for this course require a grade of C- or better. Prerequisite: CSci 140 and CSci 160. Mr. Breecher / Offered every other year.

 
Contact the Webmaster at jbreecher at clarku.edu