Computer Science Courses
Show All Courses
-- Hide All Courses
- CSCI 1 / Introduction to Computers and Computing (4)
- view
An introduction to problem solving with computers. Tools for problem solving include the Alice 3D Authoring System, Adobe Flash and ActionScript, and a graphical application building environment, such as Visual Basic for Applications.
Meets: Three 50-minute class meetings and one 75-minute laboratory weekly.
Recommended: The department strongly recommends this course for all students planning to study Computer Science.
CSCI 1 is also the recommended course for students who seek a general education course in the field and do not expect to take additional courses.
- CSCI 1A / Introduction to Computers and Computing (Scripting Focus) (4)
- view
An introduction to problem solving with computers. Tools for problem solving include at least one scripting language, Microsoft Excel and a graphical application building environment such as visual basics for applications.
CSCI 1A is an appropriate course for students who seek a general education course computer science.
Meets: 150 minutes weekly.
Recommended: The department strongly recommends
CSCI 1 or
CSCI 1A for all students planning to study Computer Science.
Fulfills:
Q
- CSCI 2 / Object Oriented Programming (4)
- view
Designing, writing, and testing structured computer programs. Decomposing problems; writing function definitions; conditional and iterative control constructs; using class libraries. Problem-solving through programming with classes and vectors; algorithm correctness; recursion. Java will be the language of instruction. Meets: three times weekly for 65 minutes plus once a week for a 75 minute laboratory.
Prerequisite: C- or better in
CSCI 1.
Offered every semester.
Same as:
MAT 868.
Fulfills:
Q
- CSCI 10 / Human Interaction with Technology and Information (4)
- view
A study of how people perceive technology and the ways in which they consume and create information. An introduction to the practice of designing technology with careful consideration for its users. No programming experience is required prior to taking this course. Meets: weekly for at least 150 minutes.
Offered fall and spring semesters.
- CSCI 23 / Discrete Mathematics for Computer Science (4)
- view
Mathematics central to the study of computer science. Topics include: set theory, logic, induction, combinatorics, number theory, graph theory, sequences and series, matrices, and recurrence relations.
Meets: weekly for three 65-minute periods.
Prerequisite: C- or better in
CSCI 1.
Offered fall semester.
- CSCI 25 / Data Structures (4)
- view
Introduction to the study of abstract data types and the analysis of algorithms. Students will write Java applications using data structures such as linked lists, stacks, queues, multidimensional arrays, trees, sets, maps, and heaps.
Meets: weekly for three 65-minute periods, with an additional weekly 75-minute laboratory.
Prerequisite: C- or better in CSCI 9, or AP computer science and departmental approval.
Offered spring semester.
- CSCI 70 / Computing Technology, Society and Culture (4)
- view
This course will survey the principal computing technologies that are in use today or on the horizon, then investigate individual topics in more technical and cultural depth. Topics will vary in light of new developments, and could include blogging, RFID, intelligent systems, GPS, data mining, Google, and eBay. Other aspects of computing technology, society, and culture to be addressed will include legal and political issues such as regulation, jurisdiction, internationalization, and standardization, and broader questions such as how and why new computing technologies are developed and accepted.
Enrollment priority: Given to juniors and seniors.
Prerequisite: Sophomore standing.
Offered fall semester.
- CSCI 100 / Systems Programming and Tools (4)
- view
Development of software in the C programming language. User-functionality of the UNIX operating system. Architecture of the UNIX operating system from a programmer's perspective. Machine-level representation of data; assembly-level machine organization. Tools for large-scale software engineering including integrated development environments and code versioning systems.
Prerequisite: C- or better in
CSCI 2.
- CSCI 101 / Algorithm Analysis and Computability (4)
- view
Methods for the analysis of time and space efficiency, comparison of brute-force algorithms with divide-and-conquer algorithms, tree algorithms, graph algorithms, string algorithms, dynamic programming, and greedy methods. An introduction to NP-completeness and intractability. Turing machines, Church's thesis, determinism and non-determinism, unsolvability and reducibility. Search and constraint satisfaction.
Meets: weekly for three 65-minute periods.
Prerequisite: C- or better in
CSCI 25 and C- or better in
CSCI 23.
Offered spring semester.
- CSCI 124 / Operating Systems (4)
- view
The fundamentals of operating systems design and implementation. Basic structure; synchronization and communication mechanisms; implementation of processes, process management, scheduling, and protection; memory organization and management; file systems; machine-level representation of data; assembly-level machine organization; functional organization of computers.
Meets: 150 minutes weekly.
Prerequisite: C- or better in
CSCI 100.
Offered fall semester in even-numbered years.
- CSCI 130 / Information Management (4)
- view
Theory and practice of information storage, management and retrieval, emphasizing relational database management systems. Case studies of small-scale (personal computing) and large-scale (corporate records on distributed systems) applications. Data modeling, database design and management, query processing, data integrity, and security. Legal and social contexts of data management; the responsibility of professionals to understand requirements, risks, and liabilities.
Prerequisite: C- or better in
CSCI 2 and
CSCI 10.
- CSCI 140 / Software Engineering (4)
- view
Software design; using APIs; software tools and environments; software processes; software requirements and specifications; software validation; software evolution; software project management; methods and tools of working in teams; social context of computing; professional and ethical responsibilities; risks and liabilities of computer-based systems.
Prerequisite: C- or better in
MATH 3,
CSCI 10, and
CSCI 100.
- CSCI 150 / Net-centric Computing (4)
- view
Communication and networking; the social context of computing; intellectual property; network security; the web as an example of client-server computing; building web applications; network management; compression and decompression; wireless and mobile computing; virtual machines; knowledge representation and reasoning. Meets: weekly for at least 150 minutes.
Prerequisite:
CSCI 23 and C- or better in
MATH 3,
CSCI 10, and
CSCI 100.
- CSCI 160 / Applications of Computing to Other Disciplines (4)
- view
Much of computer science is practiced through application of computing to other disciplines. In this capstone course, the instructor and students will develop a software solution to a problem arising in another field. Application areas include, but are not limited to finance, economics, biology, and law. We will explore strategies for learning in and contributing to inter-disciplinary teams, customer-client communication; software design, requirements, specification, and project management. Meets weekly for at least 150 minutes.
Prerequisite:
CSCI 23,
CSCI 25, and C- or better in
MATH 3,
CSCI 10, and
CSCI 100.
- CSCI 198 / Topics in Computer Science (4)
- view
Topics to be determined by current events in computing and opportunities presented by visiting faculty, etc. Course may be repeated for credit as topic varies. Meets: weekly for at least 150 minutes.
Course may be repeated.
Meets: Meets: weekly for at least 150 minutes.
Prerequisite: Dependent on topic.
Offered spring semester in odd-numbered years.
- CSCI 199 / Independent Study in Computer Science (1-4)
- view
An independent investigation of a topic selected in conference with the instructor and approved by the department. Admission by petition to or invitation from the department.
Amount of credit established at time of registration.
May be repeated for credit with the approval of the department.
Prerequisite: Signature of the department.
Offered every semester.