|
All courses are coded (A), liberal arts. Other codes: (N) = natural
science without lab; (T) = computer literacy.
Generally, CSIS-track core courses are offered both fall and spring
semesters, and CSIS-track electives are offered every other semester.
Exceptions and late changes are possible; check the most recent
registration schedule, or call the Department of Computer Science
at (716) 395-2194.
CSC 104 Computers in the Business World (A,T). Provides
a general introduction to the different uses of computers in business.
Includes these topics: computer system concepts, data representation
and storage, processor and peripheral hardware, data processing
and word processing systems, spreadsheets, report generation,
database queries, and management packages. 3 Cr. Every Semester.
CSC 120 Introduction to Computer Science (A,T). Prerequisite:
MTH 121. Provides an introduction to problem solving and
computers for prospective computer science majors or minors, or
other students wishing to take CSC 203. Includes these topics:
computer system orientation; data representation; algorithms
and their properties, representations, and structure; designing
and testing algorithms; assembly language concepts; syntax notation;
elementary Pascal programming; history, uses, and social effects
of computers. Requires extensive programming. (Closed to students
who have successfully completed CSC 203.) 3 Cr. Every Semester.
CSC 203 Fundamentals of Computer Science I (A,N,T). Prerequisites:
MTH 122 and CSC 120. Covers fundamental computer science
concepts and programming in Pascal. Includes these topics: computing
system concepts, problem solving, algorithm design, top-down development,
program testing and documentation, data types (built-in and enumerated),
data manipulation, sequences, selection, loops, modules, parameters,
arrays, records, sets, strings, files, introduction to sorting
and searching techniques and other basic algorithms. Requires
extensive programming and supervised lab sessions. 4 Cr.
Every Semester.
|
|
|
CSC 205 Fundamentals of Computer Science II (A). Prerequisites:
CSC 203 and MTH 281. Covers abstract data structures and
their operations, and software engineering concepts. Includes
these topics: program development (interpreting specifications,
top-down development, information hiding, structured testing),
implementation of built-in data types and structures, files, pointers,
stacks, queues, linked lists, recursion, trees, graphs, searching
and sorting algorithms, and an introduction to complexity analysis
of algorithms. Requires extensive programming and supervised
lab sessions. 4 Cr. Every Semester.
CSC 212 Programming in BASIC (A,T). Prerequisite:
MTH 121. Provides a general introduction to computer programming
and applications for non-majors, using the BASIC language. Includes
these topics: computer terminology, programming concepts, language
features, and algorithm design. Surveys computer applications
using the following programming techniques: decisions, loops,
functions, subroutines, arrays, and files. Requires extensive
programming. (Closed to students who have successfully completed
CSC 203.) 3 Cr. Spring.
CSC 213 FORTRAN (A). Prerequisite: CSC 120 or 212.
Provides a comprehensive study in FORTRAN 77. Includes these
topics: FORTRAN language features, structured programming techniques,
file operations, applications, and the FORTRAN subroutine library.
Requires an ability to program in some computer language. Also
requires extensive programming. 3 Cr.
CSC 214 COBOL (A). Prerequisite: CSC 120 or 212.
Provides a comprehensive study in COBOL. Includes these topics:
COBOL language features, structured programming techniques, file
operations, and applications. Requires an ability to program
in some computer language. Also requires extensive programming.
3 Cr.
CSC 219 Programming in C (A). Prerequisite: CSC 120 or 212. Provides an introduction to ANSI C. Includes these
topics: types, operators, expressions, control flow, functions
and program structure, pointers and arrays, structures and I/O.
Requires extensive programming. 3 Cr.
CSC 303 Digital Logic and Computer Design (A). Prerequisite:
MTH 281. Provides an introduction to digital logic and design
of computers. Includes these topics: number systems, Boolean
algebra and logic gates, simplification of Boolean functions,
combinational and sequential logic design, registers, counters
and memory units, register transfer logic, ALU and control unit
design. Includes hands-on experience with hardware circuit components.
3 Cr. Every Semester.
CSC 304 Office Information Systems (A). Prerequisites:
CSC 104 and junior status. Covers office productivity, information,
and decision support systems. Includes these topics: calendar
and memo systems; project management; word processing, spelling,
grammar and style checkers; desktop publishing; spreadsheets with
advanced applications; data analysis and statistical tools; artificial
intelligence and expert systems in business; and computers in
design and manufacturing. Requires extensive lab work. 3
Cr. Fall.
CSC 311 Assembly Language Programming (A). Prerequisite:
CSC 205. Covers basic computer hardware organization, machine
language programming and assembly language programming. Includes
these topics: digital data representation, assembly language concepts
and specific instructions for an available computer, addressing
techniques, digital arithmetic, macros, subroutines and linkage,
basic concepts of two-pass assemblers, and linking and loading
of external modules. Requires extensive programming and supervised
lab sessions. 4 Cr. Every Semester.
CSC 319 C in the UNIX Environment (A). Prerequisite:
CSC 205. Provides a comprehensive study of the C programming
language and the UNIX operating system from the programmer's point
of view. Covers language features, program development, modularization,
low-level I/O, system function calls, UNIX-specific library functions,
UNIX commands, programming environment and utilities. Requires
extensive programming. Recommended preparation for CSC 412.
3 Cr. Every Semester.
CSC 401 Theory of Programming Languages (A). Prerequisite:
CSC 311. Covers programming language concepts, description,
design, and evaluation. Includes these topics: language families
and history; design principles; BNF and other syntax notations;
compilation vs. interpretation; implementation concepts; comparison
of features and conventions of various languages, including: data
types, structures, declaration, abstraction, binding, scope, conversion,
and protection; computational primitives; control structures;
sub-programs; I/O; exceptions; concurrency; preprocessors; and
programming environments. Requires extensive programming. 3
Cr. Every Semester.
CSC 402 Compiler Construction (A). Prerequisite: CSC
401. Provides an introduction to the design and implementation
of compilers. Includes these topics: formal definitions of programming
language syntax and semantics, lexical analysis, parsing techniques
(using packages like LEX and YACC), syntax-directed translation,
symbol table organization, run-time storage management, code generation
and optimization, error detection and recovery. Requires extensive
programming. 3 Cr.
CSC 406 Advanced Data Structures (A). Prerequisites:
CSC 205 and MTH 481. Covers design and analysis of data
structures and associated algorithms. Includes these topics:
arrays, strings, stacks, linear and generalized lists, multilists,
multirings, queues, sets, hashing, trees, graphs, recursion, searching
and sorting, and applications such as text processing, polynomials,
sparse matrices, storage management, and unlimited-precision arithmetic.
Requires extensive programming and supervised lab sessions.
4 Cr. Every Semester.
CSC 411 Computer Architecture (A). Prerequisite: CSC
303 and CSC 311. Covers design and organization of digital
computers. Includes these topics: digital logic and circuit design,
data representation, registers, memories and memory management,
CPU and ALU architectures, instruction sets, busses and I/O systems,
interrupt structure, microprogramming. Covers additional topics
such as virtual machines, parallelism, pipelining, and data flow
machines. 3 Cr. Every Semester.
CSC 412 Operating Systems (A). Prerequisites: CSC
406 and 411. Recommended: CSC 319 or knowledge of C and
UNIX. Covers basic principles of operating systems. Includes
these topics: file systems, CPU scheduling and context switching,
memory management and virtual memory, disk scheduling, deadlock,
concurrent processes and programming, protection mechanisms, design
principles, and attempts at standardization. Includes an in-depth
study of the UNIX operating system. Requires extensive programming.
3 Cr. Spring. |
|
|
CSC 419 Computer Networks (A). Prerequisites: CSC
411 and MTH 481. Provides a comprehensive study of the field
of computer communications, with emphasis on the theoretical aspects
of local area networks. Compares specific LANs. Includes these
topics: the ISO model, protocols, topologies, error detection
and correction, routing, packet-switching, virtual circuits, and
datagrams. 3 Cr. Fall.
CSC 422 Relational Database Design (A). Prerequisite:
CSC 205. Provides a study of the theory and practice of
the relational approach to database design. Includes these topics:
DBMS vs. a traditional file processing, relational algebra, normalization,
lossless and/or dependency preserving decomposition, query languages
such as SQL and a language that is available on the system, query
optimization, integrity and security, and database project design.
Requires extensive programming. 3 Cr. Fall.
CSC 427 Software Engineering (A). Prerequisites: CSC
311 and instructor's permission. Provides an introduction
to software engineering and programming-in-the-large. Includes
these topics: life-cycle models, development standards, project
organization, requirements engineering, configuration management,
quality assurance, cost and manpower estimates, specification
techniques, design methods and representations, human factors,
structured programming, object-oriented programming, testing and
integration, validation, maintenance, and documentation. Requires
the class to work as a project team developing a system for an
actual customer. Communication and writing skills are essential.
Requires extensive programming. 3 Cr. Fall.
CSC 429 Object-Oriented Programming Using C++ (A). Prerequisite:
CSC 319, or CSC 205 and CSC 219. Provides an introduction
to basic concepts in object-oriented programming (OOP) and how
to apply OOP techniques using the C++ programming language. Includes
these topics: the OOP paradigm, data hiding and encapsulation,
inheritance and polymorphism, implementation of these concepts
in C++ using constructs such as class, friend functions, private,
public and protected, overload and virtual functions, and comparison
between ANSI C and C++. Requires extensive programming. 3
Cr.
CSC 432 Simulation (A). Prerequisites: CSC 203 and
MTH 281. Covers computer modeling of complex systems with
an emphasis on discrete stochastic models. Includes these topics:
brief review of random variables, distributions and statistical
tests, random number generation, mathematical model of a simple
queue, simulation of discrete systems (with SIMSCRIPT), and continuous
system simulation. 3 Cr. Fall.
CSC 433 Computer Graphics (A). Prerequisite: CSC 311.
Provides a hands-on approach to computer graphics, emphasizing
interactive 2D raster techniques. Includes these topics: graphics
models, drawing primitives and clipping, color models, user interaction,
2D geometrical transformations, animation, curve and surface representations,
introduction to 3D projections, solid modeling and rendering.
Requires extensive programming. 3 Cr. Spring.
CSC 434 Artificial Intelligence (A). Prerequisite:
CSC 205. Provides an introduction to artificial intelligence.
Includes these topics: history and state of the art in AI; programming
techniques in the languages LISP and PROLOG; fundamental methods
in AI including heuristic search, knowledge representation using
predicate logic, and production systems; classic basic problems
involving games, graphs, theorem-proving, symbolic algebra, expert
systems, natural language, etc. Requires extensive programming.
3 Cr. Fall.
CSC 437 Computer-Human Interface Design (A). Prerequisite:
CSC 205. Provides a hands-on introduction to design and
implementation of software for streamlined computer-human interaction,
emphasizing graphical user interfaces. Includes these topics:
theoretical models; design guidelines; implementation and evaluation
methodologies; interaction paradigms, e.g., command-line, menus,
hypertext, multimedia; case studies of graphical environments,
e.g., Microsoft Windows, Macintosh, X-Windows; application areas,
e.g., online help, data entry/editing, query processing, programming,
instruction, process control, communication. Extensive programming.
3 Cr. Spring.
CSC 444 Introduction to Parallel Computing (A). Prerequisites:
MTH 481 and CSC 406. Deals with design and analysis of parallel
algorithms. Includes these topics: parallel models of computation,
measures of complexity, parallel algorithms for selection, searching,
sorting, merging, matrix algorithms, transitive closure, connected
components, shortest path, minimum spanning tree and routing algorithms.
Hands-on experience in a parallel programming environment. 3
Cr. Spring.
CSC 483 Theory of Computation (A). Prerequisites:
CSC 203 and MTH 481. Provides a study of formal languages
and theory of automata with an emphasis on Church's thesis and
the "algorithm = machine" point of view. Includes these
topics: regular expressions and context-free languages, finite
and pushdown automata, Turing machines, computability, undecidability,
and complexity of problems. 3 Cr. Spring.
CSC 486 Junior/Senior Seminar (A). Prerequisites: CSC
311, junior or senior status, and computer science majors only.
Provides an overall view of the professional field of computing,
emphasizing development of communication skills for the profession.
Includes these topics: detailed history of computing technology,
social effects of computing, ethics in the field, professional
literature, organizations and related activities, current industrial,
social, legal governmental and technical developments, and career
opportunities. Requires extensive reading and writing, both technical
and non-technical, as well as library research, prepared group
discussions. 3 Cr. Every Semester.
CSC 492 Internship (A). Prerequisites: Junior status,
3.0 or better average in computer science courses, appropriate
course work, at least 18 credits towards the major completed prior
to starting the internship, and instructor's permission.
Provides an opportunity to apply knowledge from the classroom
by working in a professional setting. This is a valuable and
challenging experience for students who have never worked in such
a situation, as well as for professionals furthering their education.
The successful intern learns how effective professional performance
requires integrating substantive knowledge with behavioral skills
and proficiency in oral and written communication. Each student
is supervised on campus by a computer science faculty member,
and at the work site by qualified management personnel. Past
projects have involved software engineering, graphics, database
design, data communications, and process control. 3 Cr.
|
|
|
CSC 495 Topics in Computer Science (A). Prerequisite:
Instructor's permission. Addresses current topics in the
field. Each offering is motivated by the expertise of the instructor
and students' interests. Requires students to complete a major
research, design, or development project. Descriptions and prerequisites
are published prior to the registration period for the course.
Past topics include: networking, human factors, computational
linguistics, advanced architecture, software engineering, logic
programming, and program validation, object-oriented programming
and parallel algorithms. 3 Cr.
CSC 499 Independent Study in Computer Science (A). Prerequisite:
Instructor's permission. Arranged in consultation with the
instructor-sponsor and in accordance with the procedures of the
Office of Academic Advisement prior to registration. 1-3 Cr.
|
|
|
Return to the Brockport home page |
|
|