Courses in Computer Science
Our general courses are suitable for everyone and we recommend that every student take at least CSAS 1015. The remaining courses are geared towards our major (or minor) but can of course be taken by anyone with the necessary background.
General Courses
- CSAS 1015 Computer Science Essentials
- General overview of the many facets of computer science and information technology: Data, hardware, software, networks. System software including operating systems and programming environments. Software engineering; program development using data structures, algorithms, files, and databases. Exposure to other topics and issues in computer science, such as data compression, security, theory of computation, computational complexity. Prerequisites: MATH 0012 or appropriate placement. 3 credits.
- CSAS 1113 Computing for Science Majors
- A course in programming in C++ with emphasis on applications to the sciences and to numeric algorithms. Basics of software development (variables, control structures, functions), data structures (records, arrays, lists), dynamic structures (pointers, linked lists) and principles of Object-Oriented programming (fields and methods, classes, inheritance). The course will focus on creating programs for topics of interest in the natural sciences. Prerequisites: CSAS 1111. Corequisite: MATH 1015 or equivalent. 4 credits.
- CSAS 2213 The UNIX Operating System and the C Language
- UNIX: Using the UNIX environment; shells and customization; UNIX tools. The C Language: syntax and idioms; low-level features, tools and libraries; I/O and file manipulation, pointers and data structures, compilation. Combining C and UNIX. Systems programming. Pipes and sockets. The Perl language: syntax and idioms, formats. Using Perl for systems programming. Prerequisite: A full-year of programming. 3 credits.
Major/Minor Courses
- CSAS 1111 Introduction to Computer Science I
- The organization of a modern computer. Major areas and issues in computer science. Social and ethical concerns. Problem solving and pseudocode; formal specification and verification; basic software engineering. Data structures. Structured types: arrays, records, files. Objects and methods. Programming in a high-level language, such as C++ or Java. Corequisites: MATH 1015. 4 credits.
- CSAS 1112 Introduction to Computer Science II [current course]
- Major issues, areas and applications of computer science. Data structures and algorithms. Linked lists, trees and graphs. Stacks, queues and heaps. Object-oriented programming. Problem solving and software engineering. Algorithm design, induction, recursion and complexity. Social, economic and ethical concerns. Programming in a high-level language, such as C++ or Java. Prerequisites: CSAS 1111. Corequisite: MATH 1501/1401. 4 credits.
- CSAS 2121 Computer Systems I
- Computer architecture. Hierarchies of language, memory and architecture. Circuits and devices. Introduction to finite-state machines and regular expressions. Registers, machine language and microcode. Introduction to assembly language programming. Data and numeric representation. Prerequisites: MATH 1511/1411, CSAS 1112. MATH 1611 recommended. 4 credits.
- CSAS 2122 Computer Systems II
- The memory hierarchy. External devices and files. File organizations, system provided and user designed; multikey organizations. Data structures, dynamic programming and induction. Recursion and complexity. Files and databases. Software engineering issues. Social and ethical concerns. Prerequisites: CSAS 2121. MATH 1611 recommended. 4 credits.
- CSAS 2214 Java and Network Programming
- Included topics: Introduction to Unix, Object oriented programming principles. Graphical User Interface, animation and multi-threading, advanced error handling techniques, client/server programming, SQL databases, overview of common client/server techniques. Prerequisite: CSAS 1112 or the equivalent. 3 credits.
- CSAS 3094, 3095, 3096 Computer Science Co-op I, II, III
- (See Co-op Adviser). 3 credits each.
- CSAS 3111 Operating Systems and Computer Architecture
- Interdependence of operating systems and architecture. Systems structure and systems evaluation. Memory management and process management. Prerequisites: CSAS 2122. 3 credits.
- CSAS 3112 Data Structures and Algorithm Analysis
- Advanced programming techniques. Data structures, design and analysis of algorithms. Representation and complexity. Applications. Prerequisite: CSAS 2122, MATH 1611. 3 credits.
- CSAS 3113 Organization of Programming Languages
- Analysis of significant features of higher-level languages. Introduction to correctness and the formal theory of languages. Programming in Scheme, Prolog, or other non-procedural language. Prerequisites: CSAS 2122. 3 credits.
- CSAS 3211 Networks and Networking
- Principles of computer and networking. The layered model of a computer network and its implementation. Standard protocols. Applications. Mathematical principles and theory. Team and individual programming projects. Prerequisites: CSAS 2122 or permission of instructor. 3 credits.
- CSAS 3212: Computer Graphics Programming
- The course CSAS 3212 is an introduction to computer graphics, with an emphasis on applications programming. This course will cover topics which form the basis for computer graphics applications programming, such as, graphics computer architectures and software, application programmer's interfaces, interactive programs, geometric objects and their transformations, viewing with a computer, shading of objects, pixel-oriented techniques, implementation of a renderer, curves and surfaces and visualization of scientific data. Graphics programs will be developed using a high-level programming language, such as C++ or Java, and an application programmer's interface, such as OpenGL or Java 3D. Prerequisites: MATH 2812 or 2813 and CSAS 2121. 3 credits
- CSAS 4081-4086 Special Topics in Computer Science
- Special topics and problems in various branches of computer science. Prerequisites: At least five CSAS courses, including CSAS 2122, or permission of department chair. 1-3 credits.
- CSAS 4091-4096 Independent Study in Computer Science
- Prerequisites: At least five CSAS courses, including CSAS 2122, or permission of department chair. 1-3 credits.
- CSAS 4111 Introduction to Artificial Intelligence
- Representation of problems, search and control strategies. Knowledge and inference. Applications to cognitive science, the problem of perception, expert systems and robotics. Prerequisites: CSAS 3113, MATH 2611. 3 credits.
- CSAS 4112 Design and Analysis of Algorithms
- Analysis of complexity and validity of algorithms for the solution of problems in combinatorics, systems programming, artificial intelligence and other fields. Prerequisites: CSAS 3112. 3 credits.
- CSAS 4113 Automata Computability and Formal Languages
- Introduction to the theory of finite state machines and regular expressions. Formal grammars. Computability and Turing machines. Prerequisite: CSAS 2122, MATH 2611. 3 credits.
- CSAS 4114 Theory of Programming Languages
- The formal treatment of programming language translations and compiler design concepts. Major programming project. Prerequisite: CSAS 3113. 3 credits.
- CSAS 4115 Theory of Relational Databases
- The theory of modern relational databases. Relational algebra, views, queries, normal forms, optimization and incrementality. Other models for databases: hierarchical and network models. The entity-relationship model, knowledge bases and exceptions. Distributed databases. Applications. Software engineering; social, ethical and economic issues. Programming in an SQL-based environment such as Access or Oracle. Prerequisites: CSAS 2112, MATH 1611 or permission of department chair. MATH 2611 recommended. 3 credits.
- CSAS 4116 Software Engineering and Object-Oriented Development
- Principles of software engineering; classical and object-oriented approaches. Large-scale application design. Classical approach: process and entity-relation diagrams. UML: use cases, CRC cards, class diagrams, sequence diagrams, and related notations. Phases of a project. From object-oriented design to object-oriented development. Libraries, reuse, and reengineering. Management of large-scale projects. Testing, validation, and verification; introduction to formal methods. Course involves a large-scale, team-oriented project. Prerequisite: CSAS 2122 or permission of the instructor. 4 credits.
- CSAS 4912 Senior Project
- Student completes and presents a major project in computer science. Course is ordinarily taken in Spring Semester of the student's last year, based on a proposal submitted in the previous two semesters, approved by the department, and supervised by a director and a second reader. The project typically involves programming and/or research, and both written and oral presentations. Prerequisites: Senior standing with a 2.8 average, or permission of department chair. 3 credits.
Last Modified: Apr 2004
Maintained by: Math/CS @ SHU.edu (bgw)