Courses

  • CSCI-140C P2Computer/Internet Ethics (3)

    This course will cover a wide variety of issues of ethics in the areas of technology, Internet, and computers in society. Among these will be information privacy, codes of ethical behavior, the cost of not doing the job right, the use and misuse of creativity, and more.

    Attributes: P2 YLIB
  • CSCI-150 P4 Life in a Digital World (3)

    Digital information has integrated itself into every aspect of modern life. Knowledge of how to use digital information has become essential in today?s world. In this course, students will gain a deeper understanding of how modern technology works, how it impacts them, and how it can be used to enrich their lives and the lives of those around them. In this broad survey course, students will gain a knowledge of various aspects of our digital world and includes topics such as information literacy, computing devices, operating systems, applications software, digital privacy and security, and networking. Additionally, technologies which enhance the ability to process information will be covered.

    Formerly titled: P4 Intro to High Technology

    Attributes: P4 YLIB
  • CSCI-158 P4 Int Computational Media (3)

    Students will explore the creative possibilities of code and gain a working knowledge of variables, conditionals, loops, functions and objects as they learn the fundamentals of procedural thought. In different semesters, this course may focus on the design and creation of computer graphics, mobile apps, computational objects, or web applications. No previous programming experience assumed. Cross listed with DIGC 158. Formerly titled P4 Intro to Media Computing.

    Attributes: P4 YLIB
    Restrictions: Excluding: -Class: Senior
  • CSCI-161 Found of Comp Sci I (3)

    This course is an introduction to the problem-solving and programming methodologies that are fundamental to the study of computer science. Problem-solving follows procedural paradigms. An appropriate programming language is used to support these paradigms and facilitates an introduction to the concept of classes and objects. Students gain considerable experience with fundamental language constructs and types (classes), such as expressions, decisions, iteration, functions, structures, and strings.

    Attributes: NLIB
    Pre-requisites: -
  • CSCI-162 Found of Comp Sci II (3)

    In this course, there is a further emphasis on object-oriented design and data abstraction as problem-solving strategies. The object-oriented paradigm is a primary focus, and the course also covers topics such as Exception Handling and File Input/Output.

    Attributes: NLIB
    Pre-requisites: CSCI-161 C AND (MATH-120C Y C OR MATH-150C Y C)
  • CSCI-231 Data Structures&Algorithms (3)

    This course covers a variety of algorithms and their analyses, using some of the mathematical tools. Complex linked structures such as B-trees, tries, graphs, hashing, searching, and sorting are implemented and analyzed.

    Attributes: NLIB
    Pre-requisites: CSCI-161 C
  • CSCI-241 Computer Architecture (3)

    This course provides an in-depth study of the interface between hardware and software including the history of computing technology and modern architectures. This course also gives an understanding of how computers are organized, including performance issues, processor design, pipelining, memory hierarchies, peripheral interfacing, and multiprocessing.

    Attributes: NLIB
    Pre-requisites: CSCI-161 Y C
  • CSCI-251 Intro to Computer Security (3)

    In this course, students will learn the fundamentals of computer security. Topics to be covered include: authentication, cryptography, steganography, methods of digital eavesdropping, wireless security, access control, exploits, denial of service attacks, intrusion detection and prevention, social engineering, and security policies.

    Attributes: YLIB
    Pre-requisites: CSCI-152 C OR CSCI-161 C
  • CSCI-260 Introduction to Databases (3)

    This course presents an overview of database organization and management. Topics include database organization, query languages, querying techniques with SQL, data extraction and manipulation, and database design. Students work with databases in multiple environments, including PCs, networks, and the Internet.. Formerly titled: Int Databases&Applications

    Attributes: NLIB
    Pre-requisites: CSCI-150 C
  • CSCI-290 Theory of Computation (3)

    An elementary treatment of abstract computer modeling, including such topics as finite automata, languages, regular expressions, context-free grammars, and Turing machines.

    Attributes: YLIB
    Pre-requisites: MATH-150C C OR MATH-200C C
  • CSCI-300 Networking (3)

    This course provides a fundamental understanding of networks as communication systems. Emphasis is placed on computer networks and how computer networks and distributed computing are used to solve customer problems. Throughout the course, students explore the telecommunications and networking industry, as well as the basic concepts inherent to the application of data communications and computer networks in a digital age.

    Attributes: NLIB
    Pre-requisites: CSCI-150 C
  • CSCI-303 C Module (1)

    This course is a rapid but thorough study of the syntax of C. Aimed at the Computer Science major, this course provides the experienced programmer with a working knowledge of this popular high-level language, widely used in systems programming.

    Attributes: NLIB
    Pre-requisites: CSCI-162 C
  • CSCI-304 Visual BASIC Module (1)

    This course is a rapid but thorough study of the syntax and features of Visual BASIC from an advanced standpoint. Aimed at the Computer Science major, this course provides the experienced programmer with a working knowledge of this important high-level language.

    Attributes: NLIB
    Pre-requisites: CSCI-162 C
  • CSCI-307 Python Module (1)

    This course is a rapid but thorough study of the syntax and features of the Python programming language from an advanced standpoint. Aimed at the Computer Science major, this course provides the experienced programmer with a working knowledge of this important high-level language.

    Attributes: NLIB
    Pre-requisites: CSCI-162 C
  • CSCI-342 Operating Systems (3)

    This course explores operating systems concepts and concurrent programming using C. Discussed are multithreaded programming, synchronization, classic synchronization problems and their solutions, and distributed programming.

    Attributes: YLIB
    Pre-requisites: CSCI-231 C AND CSCI-241 C AND CSCI-303 C
  • CSCI-353 Database Structures (3)

    This course focuses on the internal, conceptual, and external views of modern database structures. The relational model is studied with specific attention to the theory and application of various query languages including SQL and QBE, and the usage of these languages to consider data. Additional topics include: data integrity, relational algebra, relational calculus, object-oriented databases, security issues, and concurrency issues.

    Attributes: NLIB
    Pre-requisites: CSCI-231 C
  • CSCI-355 Mobile Computing (3)

    Mobile computing (also known as ubiquitous computing) and devices such as the iPhone, iPad, and tablet have changed the way we look at computing. This course will cover basic mobile development concepts that apply to multiple platforms. Topics include: an introduction to user interface design, database connectivity, mobile web sites, and network communications. The course includes a project that requires the student to design and develop a mobile app of their choosing for both iOS and Android operating systems.

    Attributes: YLIB
    Pre-requisites: CSCI-231 C
  • CSCI-365 Computer Graphics (3)

    This course is an introduction to graphics software. Topics include vector and raster graphics, viewing and window coordinates, two-dimensional and three-dimensional transformations, three-dimensional ray tracing, and graphics packages and systems.

    Attributes: YLIB
    Pre-requisites: CSCI-162 C
  • CSCI-375 Programming the WWW (3)

    This course focuses on the WWW and the various languages and technologies used to provide interactivity and dynamic content to web pages. The paradigm of programming within a web page is explored, as it is distinct from more traditional types of programming. Markup languages (HTML5, XHTML, XML) and scripting languages (JavaScript, PHP, Perl) are studied. Additional topics include: client/server databases, browser and web server technologies. Students build and maintain a web site and complete several programming projects using available technologies.

    Attributes: NLIB
    Pre-requisites: CSCI-162 C
  • CSCI-385 Data Mining (3)

    Data mining is concerned with the extraction of novel knowledge from large amounts of data and supports decision making by detecting patterns, devising rules, identifying new decision alternatives and making predictions. Topics include: data warehousing and data cleaning, data preparation and variable selection, clustering, classification, association rules, text indexing and searching algorithms, decision trees, neural networks and techniques for mining text. Data visualization techniques will be used whenever possible to reveal patterns and relationships. Students will use a variety of tools and techniques to mine large databases.

    Attributes: YLIB
    Pre-requisites: CSCI-353 OR CSCI-260
  • CSCI-395 Artificial Intell (3)

    Fundamental concepts used in computer implementation of processes, which imitate human cognition are studied. Topics include knowledge representation, logical deduction and problem-solving, natural language understanding, knowledge bases, and expert systems. Students complete several programming projects.

    Attributes: YLIB
    Pre-requisites: CSCI-231 C
  • CSCI-400 Special Topics (3)

    This course presents a special topic that would not regularly be offered, such as compiler construction. May be taken only once.

    Attributes: YLIB
    Restrictions: Including: -Major: Computer Science -Class: Junior, Senior
  • CSCI-451 Applied Security Technique (3)

    Students learn advanced concepts of computer attacks and defenses in an intensive, hands-on setting. Students learn the details of various exploits, including buffer overruns and format string attacks. Other specific attack techniques, such as Man-In-The-Middle, Denial of Services, Worms, Viruses, and Trojan Horses are examined. Students then learn to craft defenses to these attacks from both a host-based and network-based point of view.

    Attributes: YLIB
    Pre-requisites: CSCI-231 C AND CSCI-251 C AND CSCI-303 C
  • CSCI-452 Database Applications (3)

    Relational database design and implementation are studied within the context of the Oracle database management system. Students design and implement a menu-driven application using Oracle and PL/SQL. Topics include: database and application design principles, including data normalization, data integrity, entity-attribute-relationship methodology, UML, and human-computer interactions.

    Attributes: NLIB
    Pre-requisites: CSCI-353 C
  • CSCI-461 Progrmng Language Concepts (3)

    This course is a study of the general principles of programming language design and implementation. Central concepts of syntax, semantic structures, and run-time representations are discussed. Several programming languages are studied to compare and contrast their design, rather than to master one particular language.

    Attributes: YLIB
    Pre-requisites: CSCI-231 C AND CSCI-290 C AND CSCI-303 C AND CSCI-304 C AND CSCI-307 C
  • CSCI-475 Software Engineering (3)

    The course covers topics in the development of software systems, including software life models, requirements definition, design, verification and validation, and project management techniques. Each student then applies this knowledge in an individual software design project.

    Attributes: YLIB
    Restrictions: Including: -Major: Computer Science -Class: Senior
  • CSCI-480 Senior Project (3)

    This course involves the application of formal design technique to the development of a large software project performed by students producing a non-trivial software system. Students discuss the project and implementation options with a client, present their accomplishments and progress, as well as document the product and its development process throughout the semester.

    Attributes: NLIB
    Restrictions: Including: -Major: Computer Science -Class: Senior
  • CSCI-490 Internship (3)

    The student accepted into this course spends 10 to 15 hours per week as an intern with an organization in the Rochester area. The student performs tasks assigned by the supervisor in the organization with the goal of participating meaningfully in real-world computer applications or research. Completion of at least one upper-level CSCI course and a minimum GPA of 3.00 or higher is recommended before registering for this course. Permission of the internship coordinator is required to register.

    Attributes: NLIB
    Restrictions: Including: -Major: Computer Science -Class: Junior, Senior
  • CSCI-496 Independent Study (1 TO 3)

    Well-qualified seniors may initiate and carry out a proposal for independent, advanced work under the supervision of a member of the department. Completion of the Independent Study/Tutorial Authorization is required.

    Attributes: YLIB
    Restrictions: Including: -Major: Computer Science -Class: Senior