Computer Science Courses

CPSC 103 Presentations and Multimedia Authoring 2 credits
This course is designed to give students an introduction to multimedia. During the first half of the course, students learn how to make presentations using common presentation software in the Macintosh and the Windows environments. During the second half of the semester, students learn how to create hypermedia applications. Throughout the course, students experiment with graphics software, a color scanner, a digital camera, a video camera, and sound tools.

CPSC 104 Programming in Multimedia 3 credits
This course introduces students to the tools and techniques used in developing interactive multimedia programs. During the course, students become familiar with the authoring packages, Apple Media Tool and Director, and learn how to use them to produce multimedia presentations. Special emphasis is on Lingo programming and Director’s scripting language.

CPSC 107 Introduction to Computing 3 credits
Students develop a basic proficiency of computer usages in this course. Topics include the history of computing, the principal components of computers systems, and societal issues. Students discuss and use application software including word processors, spreadsheets, presentation software, and the World Wide Web. Students also learn elementary programming.

CPSC 140-150 Programming 3 credits each
The following courses provide an introduction to computers by programming in a high-level language. The emphasis is on programming real-life problems using efficient coding techniques. These courses are for students who want to use the computer as a problem-solving tool or who want to write programs for operating systems, compilers, artificial intelligence, or Internet applications.

CPSC 147 Programming in C++ 3 credits
The programming assignments in this course are related to the design of an operating system.

CPSC 148 Programming in PROLOG 3 credits
The programming assignments in this course are related to problems in the area of artificial intelligence.

CPSC 149 Programming in Java 3 credits
The programming assignments in this course are related to the design of Internet application programs.


CPSC 151 Computer Science I 4 credits
This courses emphasizes techniques of algorithmic design, structured programming, and debugging. This beginning course for computer science majors may also be taken by others who wish to learn a high-level computer language.

CPSC 152 Computer Science II 4 credits
This course is an introduction to advanced features of a high-level computer language including user-defined data structures. The programming assignments involve the techniques of searching, sorting, and recursion. Prerequisite: CPSC 151 or the equivalent.

CPSC 205 Web Design 3 credits
This course introduces students to the tools and techniques used in designing web pages. Students learn HTML, Javascript, and the web authoring software packages Dreamweaver, Fireworks, and Flash. Prerequisite: CPSC 151.

CPSC 210 Discrete Mathematics 3 credits
This course introduces fundamental concepts of mathematics involved in computer science including induction, elementary  counting, combinations and permutations, recursions and recurrence relations, graphs and trees, sorting and searching, and Boolean algebra. (This course may be taken for credit as MATH 210.) Prerequisites: MATH 103, MATH 105, or the  equivalent.

CPSC 222 Electronics 4 credits
The student is presented with the fundamentals of digital and analog circuit analysis. Among topics originally specific to analog circuits are DC circuit analysis using Kirchoff's laws, mesh equations, transformations, the use of multimeters and oscilloscopes, AC circuit analysis using complex impedances, capacitors, and inductors, resonance, step function analysis, and transitions. Among the topics originally specific to digital analysis are simple logic gates, IC chips, Boolean algebra, adders, flip-flops, shift registers, and counters. After the fundamentals are covered, the emphasis shifts to circuit analysis involving knowledge of both perspectives. This course includes three hours of lecture and two hours of laboratory each week. (This course may be taken for credit as PHYS 222.) Prerequisite: PHYS 201,202 or equivalent or permission of the Chair of the Department.

CPSC 275 Data Structures and Algorithms 3 credits
This course is a study of the theory of and advanced techniques for representation of data, including link-lists, trees, graphs, analysis of algorithms, sorting, searching, and hashing techniques. Prerequisite: CPSC 152 or equivalent.

CPSC 277 Computer Ethics 1 credit
This course is a study of the theory and practice of computer ethics. The aim of the course is to learn the basis for ethical decision-making and the methodology for reaching ethical decisions concerning the computer science field. Topics studied in the course are Computers in the Workplace, Computer Crime, Privacy and Anonymity, Intellectual Property, and Professional Responsibility. Methodologies used in the course include lectures by the instructor, lectures by visiting lecturers, in-class
discussions, writing assignments, individual class presentations, and case analyses.

CPSC 310 Artificial Intelligence 3 credits
This course is an introduction to the principles and programming methods of artificial intelligence. The fundamental issues involve logic and knowledge presentation, search, and learning. The programming language LISP is introduced and used to manipulate symbolic data. Prerequisite: CPSC 275 or familiarity with a high-level computer language.

CPSC 320 Software Engineering 3 credits
This course is a general survey of software engineering. Among the topics covered are project planning and management, design techniques, verification and validation, and software maintenance. Prerequisite: CPSC 275.

CPSC 330 Computer Organization and Assembly Language 4 credits
This course is a study of applications of Boolean algebra to combinational circuit design problems, organization of simplified computer components, memory organization, architecture, and assembly language programming. Prerequisite: CPSC 152 or the equivalent.

CPSC 360 Programming Languages 3 credits
This course is a study of programming language constructs emphasizing the run-time behavior of programs. Topics include formal grammars, parsing, information binding, data storage, global and local variables and parameters, string handling and list processing. Prerequisite: CPSC 275 or the equivalent.

CPSC 370 Operating Systems 3 credits
This course is a study of batch processing systems, implementation techniques for parallel processing of input/output and interrupt handling, memory management, system accounting, interprocess communication and interfaces, and deadlocks.Prerequisite: CPSC 275 or the equivalent.

CPSC 373 Writing for Mathematics and Computer Science 2 credits
This course is designed to emphasize recognition of clarity and style of presentation in the reading and discussion of computer science related technical writing. (This course may also be taken for credit as MATH 373.)

CPSC 380 Data Base Design 3 credits
This course is an intensive study of the design and the implementation of a database. Topics include entity-relationship model, relational model, SQL, relational database design, object-oriented databases and object-relational databases. Prerequisite: CPSC 275.

CPSC 390 Numerical Analysis 3 credits
This course is a study of numerical methods of evaluating integrals and differential equations, techniques in finding the roots of polynomials, solving systems of linear equations, and matrix manipulation. (This course may be taken for credit as MATH 390.) Prerequisites: CPSC 151; MATH 202 or equivalent.

CPSC 400 Computer Graphics 3 credits
This course focuses on the study of line-drawing algorithms, circle generation, transformation, clipping and windowing, segmented display files, picture structure, graphic input techniques, raster graphics, scan conversion algorithms, three dimensional transformations, and hidden surfaces. Prerequisite: CPSC 275.

CPSC 430 Compiler Design 3 credits
Techniques of design and implementation of compilers, including lexical analysis, parsing (both L L and L R), syntax-directed translation, and symbol table management are examined. Prerequisites: CPSC 275,330.

CPSC 440 Data Communications and Network Architecture 3 credits
This course is a study of data communications and computer networks from the programmer’s point of view. Topics include direct link networks, including Ethernet and wireless networks; packet switching,  internetworking, and routing, with an emphasis on the Internet Protocol; end-to-end communications, emphasizing UDP, TCP, and RPC; congestion control; data compression; network security; and applications. Students write programs that use the TCP/IP protocol stack via the UNIX or Java socket interfaces. Prerequisites: CPSC 275,330.

CPSC 477 Seminar in Mathematics and Computer Science 2 credits
This course includes topics in computer science suitable to computer science majors. The course is open to qualified junior
and senior computer science majors. (This course may be taken for credit as MATH 477.)

CPSC 487-488 Independent Study 2-4 credits

CPSC 490 Senior Project 2-4 credits

CSPC 495 Graduation Audit Non-credit
Registration for this course initiates a graduation audit process to verify that all requirements for graduation are scheduled to be met by the anticipated degree completion date.