Hunter College Computer Science Courses and Prerequisites
The Department of Computer Science curriculum engages students in rigorous exploration of ideas and theory that are shaping the future of the information age.
CSCI 49900 Advanced Applications: A Capstone Course for CSCI Majors (4 hours, 4 credits)
- CSCI 12000: Introduction to Computers (3 hours, 3 credits)
- Prerequisite: English and Math proficiency. Intended for non-CSCI majors. Basic concepts of computer technology. Principles of hardware operation, software and networking. Roles of computers in society, including ethical and legal issues. This course does not count toward the CSCI major or minor.
- CSCI 12100: Computers and Money: Quantitative Reasoning in Context (3 hours, 3 credits)
- Intended for non-CSCI majors. Practical money topics like stocks, credit cards, mortgages, gambling, inflation, retirement and more, cut down to size with a hands-on spreadsheet-based approach. No math is assumed beyond basic arithmetic. This course does not count toward the CSCI major or minor. Fulfills the GER 1/B requirement.
- CSCI 12700: Introduction to Computer Science (3 hours, 3 credits)
- A technical introduction to computer science. Organization of hardware, software, information, and an introduction to programming. For potential Computer Science majors who may not be prepared for CSCI 135, science majors who need some basic computer knowledge, and for non-majors who want a more rigorous introduction to the field than CSCI 120. This course does not count toward the CSCI major or minor. Fulfills GER 2/E requirement. Prerequisite or Co-requisite: Math 121, 125 or 150.
- CSCI 13200: Practical Unix Programming, with Lab (3 hours, 3 credits)
- Prerequisite: none. An introduction to computer programming and the UNIX operating system using Perl. Conceptual overview of the UNIX operating system and programming environment, a practical introduction to shell programming and the use of UNIX filters and utilities. A pragmatic course with an emphasis on skills acquisition. This course does not count toward the CSCI major or minor.
- CSCI 13300: Programming for Everyone (3 hours, 3 credits)
- Prerequisite: none. A comprehensive practical course in programming that concentrates on producing working software for games, simulations, animations, data manipulations, interacting with the Internet, graphical user interfaces and many other application areas. No programming experience is necessary. The course is required for Computer Science minors. It is open to Computer Science majors, but not for major credit. Fulfills GER 2/E Requirement.
- CSC1 13500: Software Design and Analysis I (3 hours, 3 credits)
- Prerequisite: CSCI 127 or equivalent. This first course for prospective computer science majors and minors concentrates on problem-solving techniques using a high level programming language (currently C++). The course includes a brief overview of computer systems.
- CSCI 13600: Supervised C++ Programming Lab (2 hours, 1 credit)
- Co-requisite: CSCI 135. In this supervised lab environment, students will be expected to work in small teams to complete programming assignments each week under the supervision of an instructor. The assignments will be at the level of material covered in CSCI 135, although it is not a recitation or review section for the course. Emphasis will be on how to solve problems in a cooperative environment. This course does not count toward the CSCI major.
- CSCI 15000: Discrete Structures (3 hours, 3 credits)
- Prerequisite: MATH 125 or MATH 150 or MATH 155. Mathematical background required for computer science. Sets, relations, cardinality, propositional calculus, discrete functions, truth tables, induction, combinatorics.
- CSCI 16000: Computer Architecture I (3 hours, 3 credits)
- Prerequisite: CSCI 127, CSCI 150. Boolean algebra, data representation, combinational circuitsand minimization, sequential circuits.
- CSCI 18100, 18200, , 183: Independent Workshop (1-3 hours, 1-3 credits)
- Prerequisite: Student must be a declared computer science major and have completed 18 credits in the department. Outside internship in practical aspects of computing, e.g., systems programming, bio-medical computing, computer aided instruction. Credits may not be used toward the major.
- CSCI 23200: Relational Databases and SQL Programming, with Lab (3 hours, 3 credits)
- Prerequisite: CSCI 127 or CSCI 132. An introduction to elementary database concepts and SQL, the standard language of communicating with most database systems. A pragmatic course with an emphasis on skills acquisition; students will learn how to get things done quickly and easily in a database environment. This course does not count toward the computer science major. Fulfills GER 3/B requirement.
- CSCI 23300: Programming Projects Seminar for Minors (2 hours, 1 credit)
- Prerequisite: CSCI 133 and CSCI 232. Open only to declared Computer Science Minors. This course will serve as a capstone for the minor, affording students the opportunity to write reasonably large and complex programs. Students will be expected to draw topics for these programs from tehir majors and other areas of interest. This course does not count toward the computer science major.
- CSCI 23500: Software Design and Analysis II (3 hours, 3 credits)
- Prerequisites: CSCI 135 and 15O, and MATH 150. Representation of information in computers, including process and data abstraction techniques. Topics covered include static and dynamic storage methods, lists, stacks, queues, binary trees, recursion, analysis of simple algorithms, and some searching and sorting algorithms. Fulfills GER 3/B requirement.
- CSCI 26000: Computer Architecture II (3 hours, 3 credits)
- Prerequisites: CSCI 135, CSCI 160 or CSCI 245, Math 150.Organization of computer systems and design of system elements, including ALU, memories and interfaces. Some assembly language programming. Fulfills GER 3/B requirement.
- CSCI 26500: Computer Theory I (3 hours, 3 credits)
- Prerequisites: CSCI 245 and MATH 150. Recursion, regular sets, regular expressions, finite automata, context-free grammars, pushdown automata. Fulfills GER 3/B requirement.
- CSCI 33500: Software Design and Analysis III (3 hours, 3 credits)
- Prerequisites: CSCI 235 and MATH 155. The design and analysis of various types of algorithms, including searching, sorting, graph and tree algorithms. Problem solving techniques. Worst and average case behavior analysis and optimality. Polynomial time complexity classes and theory, including NP-completeness. Fulfills GER 3/B requirement.
- CSCI 34000: Operating Systems (3 hours, 3 credits)
- Prerequisites: CSCI 235 and CSCI 260, and MATH 155 and either STAT 113 or 213. Definition of functions and components of operating systems. Survey of contemporary multiprocessing /multiprogramming systems. Exploration of systems programs: their design, internal structure, and implementation. Fulfills GER 3/B requirement.
- CSCI 35000: Artificial Intelligence (3 hours, 3 credits)
- Prerequisite: CSCI 235. A survey of artificial intelligence including search and control, knowledge representation, logic and theorem proving, learning, natural language, and AI programming. Fulfills GER 3/B requirement.
- CSCI 35500: Introduction to Linear Programming (3 hours, 3 credits)
- Prerequisite: CSCI 235 and MATH 160. Introduction to operations research and game theory. Simplex method; inconsistency, redundancy, and degeneracy problems; two-phase method; duality; transportation problems. Fulfills GER 3/B requirement.
- CSCI 36000: Computer Architecture III (3 hours, 3 credits)
- Prerequisites: CSCI 260 or CSCI 245 and MATH 155. High performance computer architectures, including massively parallel SIMD and MIMD machines and distributed architectures. Fulfills GER 3/B requirement.
- CSCI 36500: Computer Theory II (3 hours, 3 credits)
- Prerequisite: CSCI 265.Turing machines, Post machines, Post's theorem, Minsky's theorem. Determinism and non-determinism. Undecidability, the halting problem. Recursive function theory.
- CSCI 39100, 39200, 39300 Independent Study in Computer Science (1 cr, 2 cr, 3cr respectively)
- Prerequisite: Declared CSCI major having completed 18 or more credits toward the major, with the permission of a faculty sponsor and department. Independent work under the direction of a faculty member in practical aspects of computing. NOTE: as of Fall 2002, these courses may be repeatable up to a total of 6 credits HOWEVER only three credits may be counted toward the CSCI major.
- CSCI 39500 Topics in Computer Science (3 hours, 3 credits)
- Prerequisites vary with specific topics and are announced prior to registration. Topics include, but are not limited to, networking, data communications, software metrics, and others.
- CSCI 40500 Software Engineering (3 hours, 3 credits)
- Prerequisite: CSCI 335. Problems in large-scale software development including functional analysis of information processing systems, system design concepts, timing estimates, documentation, and system testing.
- CSCI 41500 Data Communications and Networking (3 hours, 3 credits)
- Prerequisite: CSCI 335 and 340. A broad technical introduction to the components, protocols, organization, industry and regulatory issues that are fundamental to the understanding of contemporary computer networks.
- CSCI 43500 Data Base Management (3 hours, 3 credits)
- Prerequisite: CSCI 335. Hierarchical and network databases; theory of relational databases; normalization theory; query languages.
- CSCI 46000 Advanced Programming Languages (3 hours, 3 credits)
- Prerequisite: CSCI 265 and 335. Survey course on the design and implementation of modern programming languages. Includes object-oriented, functional, logic and concurrent/distributed paradigms.
- CSCI 49300 Seminars (3 hours, 3 credits)
- Prerequisites vary with specific topics and are announced prior to registration. Topics include, but are not limited to, microprogramming, information retrieval, artificial intelligence, data communications, cryptography, and other areas..
Prerequisites: CSCI 333500, 34000 and 36000. A chance for Computer Science Majors to test their mettle on a major project. Working in small groups they will implement systems that involve at least two platforms written in at least three languages.