BS Core Requirements

CS Content Area Descriptions

CS 152L Computer Programming Fundamentals (3), CS 251L Intermediate Programming (3), CS 351L Design of Large Programs (4)

The sequence CS 152L, 251L, 351L involves a comprehensive study of the fundamentals of computer programming. The language Java will be mastered and techniques and ideas of algorithmic program design, recursion, programmer team organization, structured programming, correctness, program specification, program testing, maintenance and modification and the use and implementation of various data structures and files will be covered. CS 152 and CS 251 are taught only in Java.

CS 259L Data Structures with Java (5)

CS 259L is an accelerated course designed for potential CS students with some programming experience or education. It involves the same material as the normal undergraduate sequence CS 152L,251L. It requires a minimum of one year experience or instruction in a high level programming language and associated methodology.

CS241 Data Organization, CS341 Introduction to Computing Systems

The sequence CS24, 341 introduces students to the memory organization of data storage, comupter architecture and design, and assembly language programming. CS 241 is taught only in C.

ECE 238L Computer Logic Design (4)

Students are provided with basic hardware literacy through EECE 238L, and the study of computer architecture included in CS 341L and CS 481.

CS 261 Mathematical Foundations of Computer Science (3), CS 361L Data Structures and Algorithms I (3), CS 362 Data Structures and Algorithms II (3)

The sequence CS 261,361Lintroduces the student to data structures and algorithms and the mathematics needed to analyze their time and space complexity. Topics include 0( ) notation, recurrence relations and their solution, sorting, hash tables, priority queues, search trees ( including, at least, one balanced tree structure), and basic graph representation and search. CS 362 introduces sophisticated data structures, algorithms that use them, and techniques for analyzing their performance. CS 361 is taught only in C.

CS 293 Social and Ethical Issues in Computing (1)

CS 293 gives an overview of philosophical ethics, privacy and databases, intellectual property, computer security, computer crime, safety and reliability, professional resposibility and codes, electronic communities and the Internet, and social inpact of computers.

CS 357L (3)

CS 357L provides an examination of several classes of programming languages.

CS 460 Software Engineering (3)

CS 460 is a capstone design course involving a large team-oriented programming project.

CS 481 Operating Systems Principles (3)

CS 481 introduces the student to the principles of operating systems and provides further instruction on computer architecture. Technical electives taken from a wide variety of courses permit the student to specialize (numerical analysis, operations research, artificial intelligence, architecture and systems, etc.) or to acquire additional breadth.