|
|
| |
COS 115 - Computing Across the Disciplines |
This course will cover the role of computer science in disciplines from across campus cluding but certainly not limited to philosophy, the natural sciences, business, languages, the social sciences, and the arts. Every two years.
Credit: 4 |
|
| |
COS 140 - Introduction to Computer Science |
Using the framework of problem solving and programming in the object-oriented paradigm, this course introduces the fundamental concepts and techniques of Computer Science. Students learn how to develop problem solutions by integrating pre-defined or user-defined data objects and the control algorithms that make use of the objects. Topics include object design and use, algorithmic control structures, interactive and file-based input/output and some basic structured data objects such as strings, arrays, lists and tables. Every semester.
Credit: 4 |
|
| |
COS 142 - Data Structures |
The focus of this course is deeper study of the concepts of structured data types, in particular their design and specification in an object-oriented framework. Data structures such as lists, stacks, queues and trees will be examined, both in terms of how they can be implemented by a programmer and how they can be used to develop solutions for larger problems. New object-oriented programming concepts such as inheritance, polymorphism and generic classes will be introduced as techniques to aid in the implementation of these structures, and related algorithmic topics such as recursion, searching and sorting will be studied. Prerequisite(s): COS 140 and either MAT 141M or MAT 151M. Spring semester.
Credit: 4 |
|
| |
COS 241 - Computer Organization |
This course is intended to give students a broad overview of Computer Organization at a number of different levels. The lowest level is the Assembly Language level. Students will gain an understanding of Instruction Set Architecture design and tradeoffs. The next level, fundamentals of logic design, provides an understanding of the implementation of a given architecture. Topics include adders, shifters, and multipliers, and flipflops. Higher levels include pipelining and caches. Other topics include storage (along with input/output) and multiprocessors. Laboratory work includes an assembler with which students write assembly language programs and, possibly, a digital logic design package. Prerequisite(s): COS 140. Fall semester.
Credit: 4 |
|
| |
COS 280 - Networking Using TCP/IP |
This course provides both a theoretical and practical introduction to the TCP/IP (Transmission Control Protocol/Internet Protocol) Internet working protocols. Topics include Internet Addresses, DNS, ARP, UDP, TCP, IP, ICMP, DHCP, Application Layer and Client-Server Model, Routing Protocols, and selected network security topics. A TCP/IP network will be designed, configured, and managed using Linux in a laboratory environment. The necessary Linux background will be developed within this course. The course provides international comparisons in the design, purpose, and security of communications. Prerequisite(s): COS 142 and COS 241. Every year.
Credit: 4 |
|
| |
COS 297 - Independent Study in Computer Science |
An opportunity to pursue independent study of selected intermediate level computer science topics under the direction of a faculty member. The course may be repeated for a different topic. Prerequisite(s): 4 credits of Computer Science and permission of instructor. Variable.
Credit: 1-4 |
|
| |
COS 341 - Fundamentals of the Theory of Computation |
The course will deal with the major areas of theoretical computer science: (1) automata and their relationship to formal languages, (2) models of computability and (un)decidability, and (3) time and space models of computational complexity and the categorization of algorithms by complexity classes. Variable Offerings. Prerequisite(s): COS 142 and MAT 151M. Variable.
Credit: 4 |
|
| |
COS 355 - Computer Graphics |
Mathematical techniques for generating computer graphics of 2- and 3- dimensional objects will be studied. Implementation of these concepts, up to and including perspective projection and 3D transformations, in a higher level language will be involved. At this point, an API (usually OpenGL) will be used to aid in the writing of more sophisticated applications involving lighting and texture mapping. A study and design of the human interaction component, dealing with graphical design interfaces and event-driven programming, occurs throughout the course. Selected additional topics may include game programming, image processing, ray tracing, and designing more complex graphical interfaces. The course has a laboratory component. Prerequisite(s): MAT 141M and COS 142. Fall semester.
Credit: 4 |
|
| |
COS 360 - Programming Language Concepts |
An examination of issues involved in the design and implementation of high-level computer languages. Starting from a working interpreter for a very simple programming language, we first consider general issues such as syntax grammars, semantic descriptions, and the mechanisms used in translating a high-level language into an equivalent lower-level executable form. Following that we gradually introduce new language features, each requiring further modifications to our language's syntax and interpreter, which provides a basis for studying more advanced programming language features. Prerequisite(s): COS 142 and COS 241. Odd fall.
Credit: 4 |
|
| |
COS 364 - Algorithm Design and Analysis |
Examines algorithm design techniques such as divide-and-conquer, dynamic programming, the greedy approach, backtracking, and branch-and-bound. Representative algorithms are studied in each category, with an emphasis on demonstrating an algorithm's correctness and analyzing its efficiency in terms of computing time and storage space requirements. The notion of intractable problems is introduced, along with efficient approaches to these problems, such as approximation algorithms. Prerequisite(s): COS 142 and MAT 151M. Even fall.
Credit: 4 |
|
| |
COS 372 - Computer Operating Systems |
The components of an operating system will be studied in general and applied to the Linux operating system. Topics include: processes and threads, user mode versus kernel mode, concurrency and writing concurrent programs, device management, use of system resources by processes and threads, scheduling strategies, synchronization principles, monitors and interprocess communication, the concept of deadlock, memory management and virtual memory, and file management. There is a large programming component (in languages such as C or Java). A laboratory component includes an in-depth examination of a second operating system. Prerequisite(s): COS 142, COS 241, and COS 280. Every year.
Credit: 4 |
|
| |
COS 377 - Intermediate Topics in Computer Science |
Each time this course is offered a Computer Science topic will be chosen which requires a background (at least 12 hours) in college level computing experience. It may be repeated for credit with different topics. The topics offered will be ones which are not covered in the regular course offerings of the division. Prerequisite(s): Minimum 12 credits of Computer Science, including COS 142 and permission of instructor. Variable
Credit: 4 |
|
| |
COS 396 - Field Experience in Computer Science |
This course provides the student with an in-depth experience in practical applications in computer science. The experience may include work for a social or governmental agency or for business or industry. Proposals should be developed in consultation with a faculty member and submitted in writing to the division chair for approval. At the conclusion of the work period, the student submits a comprehensive report on the experience to the supervising faculty member. The course may be repeated for up to a total of 16 credits; each repetition must be a differenet proposal. Credits will generally reflect 32 work hours for each credit. Prerequisite(s): 16 hours of Computer Science and approval of the supervising faculty member and the Division Chairperson. (Pass/Fail only) Every semester.
Credit: 4-16 |
|
| |
COS 455 - Database Systems |
The course studies the fundamentals of database modeling and design, the languages and facilities provided by a database management system, and programmatic interfaces to the database (including web access). Emphasis is on the relational database model. Theoretical topics include: data modeling using the entity-relationship model, schema definition, relational algebra, functional dependencies and normal forms, queries, data storage and physical design, and indexing structures for files. In addition, there is a laboratory component that uses the Oracle database. In the laboratory, the topics include: SQL query language, PL/SQL language, creation of a web interface to the database. The web interface will involve either the Oracle PL/SQL toolkit, other Oracle products, Java and JDBC, C#, or a scripting language. Prerequisite(s): 12 credits of Computer Science including COS 142 and COS 241 plus MAT 151M. Every year.
Credit: 4 |
|
| |
COS 477 - Advanced Topics in Computer Science |
Each time COS 477 is offered the content will be determined by the needs of the students and the interests of the faculty. However, the content will deal with the area of databases since this course can satisfy the Computer Science major requirement of COS 455. It may be repeated for credit with different database topics. Prerequisite(s): 12 credits of Computer Science including COS 142 and COS 241 and permission of instructor. Variable.
Credit: 4 |
|
| |
COS 497 - Independent Study in Computer Science II |
An opportunity to pursue independent study of selected computer science topics under the direction of a faculty member. The course may be repeated for a different topic. Prerequisite(s): 12 credits of Computer Science and permission of instructor. Variable
Credit: 1-4 |
|
|
|