Computer Science
Program


Course Descriptions

Computing Sciences
Department


Programs of Study

College of Arts
and Sciences


Programs of Study

Computer Science

Course Descriptions — Computer Science

C/IL 102/102L — Computing and Information Literacy/Lab — 3 credits
Students learn to use digital technology in the problem-solving process to obtain, evaluate and disseminate information. Two hours lecture, two hours lab. Requires concurrent enrollment in lecture and lab. Students may earn credit for only one C/IL course. Successful completion of C/IL 102/102L (with a grade of C or better) fulfills the computer literacy skills requirement of the University.
CMPS 134 — Computer Science I — 3 credits
An introduction to programming concepts and methodology using an appropriate object-oriented programming language (currently Java). Topics include problem analysis, abstraction, modularization, the development and use of algorithms, reuse, and the use of programming constructs including data types, classes, control structures, and methods.
CMPS 136 — Computer Programming II — 3 credits
(Prerequisite: CMPS 134) For non-computing majors who want more object-oriented programming experience. Includes data structures, file processing, graphical user interfaces and event-driven programming. May not be used to satisfy the requirements of CMPS or CIS. May not be taken by a student who has credit for CMPS 144.
CMPS 144 — Computer Science II — 3 credits
(Prerequisites: CMPS 134, MATH 142) This course emphasizes object-oriented software development, addressing both software engineering and programming. Topics include modularization, abstraction, encapsulation/information hiding, software reuse, software testing, classic data abstractions (e.g., lists, trees) and algorithms (e.g., sorting, searching), recursion, program correctness, and basic algorithm analysis.
CMPS 202 — Web Development — 3 credits
(Prerequisite: C/IL 102 or equivalent) A course that covers fundamental aspects of the development of personal, professional, and business resources using Web-development tools. Topics include creating Web pages using basic HTML; advanced HTML concepts; frames; JavaScript to enhance Web pages; forms; CGI (common gateway interface); Java classes. Emphasis is on client-side development although server-side issues are discussed. This is a technical course for students who do not necessarily have a technical background. May not be used as part of any major in the Computing Sciences department.
CMPS 240 — Data Structures and Algorithms — 3 credits
(Prerequisite: CMPS 144) An examination of the issues of data representation, algorithm structure, and encapsulation as they pertain to the development of object-oriented software. Abstract data types studied include stacks, queues, binary trees, n-ary trees, and graphs. Various representation alternatives are analyzed and compared, trade-offs frequently encountered by software developers are discussed.
CMPS 250 — Machine Organization and Assembly Language Programming — 3 credits
(Prerequisite: CMPS 144) An introductory study of the organization and architecture of computers through an exploration of various virtual machines. Programming at the assembly-language level and interfacing with software components (primarily written in C). Topics include representation of data and instructions, computer arithmetic, memory hierarchies, instruction sets, addressing modes, digital logic, microprogramming, pipelining, and parallel processing.
CMPS 260 — Theoretical Foundations of Computer Science — 3 credits
(Prerequisite: CMPS 240) An examination of the fundamental models and concepts of computation – automata, formal languages, and grammars – and how they are related. Church-Turing thesis; recursive and recursively enumerable sets; unsolvable problems; complexity of algorithms; Chomsky hierarchy.
CMPS 311 — Computer Networks and Security — 3 credits
(Prerequisite: CMPS 136 or CMPS 144) An introduction to intranets and wide-area networking including operating systems fundamentals, hardware considerations, deployment and administration of networks, security issues, intrusion detection/protection, firewalls, VPN’s and encryption. May not be used to satisfy the requirements of the major. May not be taken by a student who has credit for CMPS 354.
CMPS 312 — Web Technology — 3 credits
(Prerequisites: C/IL 102 or equivalent, COMM 329, CMPS 311) This course covers the fundamental aspects of developing and maintaining Web sites. It provides a thorough coverage of the structure and elements of HTML and JavaScript necessary to create commercial-quality Web sites. Brief coverage will also be given to graphic design and multimedia content. Emphasis will be placed on client-side development although server-side issues will be considered. May not be used as part of any major in the Computing Sciences Department. Cannot be taken by a student who has credit for CMPS 202 or 356.
CMPS 330 — (W) Information Systems Analysis — 3 credits
(Prerequisite: C/IL 102/104 or CMPS 134) Introduction to concepts and practices of information processing. Computerized system requirements and techniques in providing appropriate decision-making information to management.
CMPS 331 — Information Systems Development — 3 credits
(Prerequisite: CMPS 330) A study of system-development methodology and the role played by the systems analyst in developing user-accepted information systems.
CMPS 340 — File Processing — 4 credits
(Prerequisites: CMPS 144 required, CMPS 240 recommended.) File structures concepts and file processing applications using an appropriate programming language. Topics include file maintenance and storage management; file searching, sorting, and merging; cosequential processing; index structures; B-trees; hash tables; indexed sequential files; database concepts.
CMPS 341 — Database Systems — 3 credits
(Prerequisites: CMPS 340 required, CMPS 240 recommended) An introduction to database management systems with an emphasis on relational database design and applications. It uses an appropriate database package such as ORACLE or PostgreSQL.
CMPS 344 — Programming Languages — 3 credits
(Prerequisite: CMPS 240) A study of programming languages from both the theoretical and practical perspectives. A survey of major and developing paradigms and languages is undertaken which includes use of specific languages to broaden the student’s experience. Implementation is studied through an introduction to language translation along with a study of run-time models and interfaces with virtual machines.
CMPS 350 — Computer Architecture — 3 credits
(Prerequisite: CMPS 250) A study of the logical structure of computer-system organization including a survey of logic and design with an emphasis on functional components. Topics include instruction sets, hard-wired and micro-programmed control-unit designs, memory systems (caches and virtual memory), I/O systems (interrupts, DMA, and channels). Overview and examples of alternative and advanced computer architectures (pipeline, array processors, multiprocessors).
CMPS 352 — Operating Systems — 3 credits
(Prerequisites: CMPS 240, CMPS 250) An introduction to the principles of operating systems. Topics include operating system structure, process management, scheduling and dispatching, process synchronization and interprocess communication, memory management, virtual memory, device management, I/O, and file systems.
CMPS 354 — Data Communications and Networks — 3 credits
(Prerequisite: CMPS 352) A study of data communication and networking concepts, including distributed-system architectures, electronic interfaces, data-transmission, data link protocols, terminal networks, computer communication, public-data networks, and local-area networks.
CMPS 356 — Web Programming — 3 credits
(Prerequisites: CMPS 240, HTML experience to the level where the students are capable of developing their own Web page) This course covers all aspects of programming on the World Wide Web. This includes the presentation of HTML, Java, JavaScript and CGI. Topics include advanced HTML (maps, forms, etc.) client-server programming basics as they relate to the Web, Java machine concepts, Java/JavaScript similarities and differences, server-side programming, GIF animations, Web programming resources and environments.
CMPS 358 — Real-Time Systems — 3 credits
(Prerequisite: CMPS 352) A study of issues related to systems that interface with the physical world and must meet the timing constraints imposed on them. Topics include: real-time hardware architecture, real-time operating systems, invoking and managing threads and processes, interprocess communications and synchronization, manipulating process priority, concurrent programming, exception handling, software safety, reliability, and fault tolerance.
CMPS 360 — Analysis of Algorithms — 3 credits
(Prerequisite: CMPS 240) A survey of methods for designing and analyzing algorithms. Classic algorithms from graph theory, combinatorics and text processing are examined, as are traditional design strategies such as divide-and-conquer, backtracking and dynamic programming. Other topics include NP-completeness and parallel algorithms.
CMPS 362 — Numerical Analysis — 3 credits
(Prerequisites: CMPS 134, MATH 222) A survey of numerical methods for solving equations, integration, differentiation, interpolation, differential equations, and linear algebra, and the analysis of error.
CMPS 364 — Theory of Computation — 3 credits
(Prerequisite: CMPS 260) The development of a theoretical notion of computability and its relationship to Turing computability and recursive functions; the study of the relationships between automata, formal languages and grammars.
CMPS 370 — Computer Graphics — 3 credits
(Prerequisite: CMPS 240) An introduction to the hardware, software and techniques used to generate graphical representations by computer. Two and three dimensional concepts, algorithms and architectures are studied. An essential aspect of the course involves the development of programs utilizing appropriate APIs (currently OpenGL is emphasized) as a means of developing expertise. Advanced topics may be pursued as appropriate.
CMPS 372 — Artificial Intelligence — 3 credits
(Prerequisite: CMPS 240) Problem solving using expert systems, heuristic programming techniques, tree speed-up techniques, and learning mechanisms.
CMPS 374 — (W) Fundamentals of Software Engineering — 3 credits
(Prerequisite: CMPS 240) An introduction to the concepts of Software Engineering. Stress is placed upon formal models for the design and development of high-quality software. Topics include: project planning, requirements analysis, system design, program design, program implementation, program testing, system testing, system delivery, and maintenance. A group project will be included.
CMPS 376 — Rapid Prototyping — 3 credits
(Prerequisite: CMPS 136 or CMPS 144) Some common applications using a database with a visual interface (perhaps Web based) can be successfully created using Rapid Prototyping (a.k.a. Rapid Application Development) This course will cover the synergy of combining a visual language and a relational database employing rigorous design techniques.
CMPS 384 — Special Topics — 3 credits
(Prerequisite: as published) Some recent courses have covered Rapid Prototyping, Real-Time Systems, and Parallel Computing. A syllabus including prerequisites is published prior to the registration period for the course.
CMPS 393 — Computer Research — 3 credits
(Prerequisite: departmental permission) A research project carried out by a student under the direction of a faculty member in the department. The results will be prepared in a form suitable for publication. Reader fee.
CMPS 440 — Compiler Design — 3 credits
(Prerequisite: CMPS 344) Study of techniques and problems involved in constructing compilers. Lexical analysis, syntax analysis, semantic analysis, symbol-table management, code generation, code optimization.
CMPS 481 — Computer Internship — 3 credits
(Prerequisite: departmental permission) An extensive job experience in computing which carries academic credit. Prior approval is required; information is available on the department Web site.
CMPS 490 — (W) Computer Projects — 3 credits
(Prerequisite: senior standing, departmental permission) In this course, students prepare and present individual computer projects to be evaluated by the instructor and their fellow students.

Search / Site Map / Ask Scranton
Choosing Scranton / My.Scranton / Campus Contacts

Disclaimer: The University of Scranton does not endorse views or opinions
found on pages directly or indirectly accessed from our Web site.


© 2008 The University of Scranton
Home