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 YLIBCSCI-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 YLIBCSCI-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: SeniorCSCI-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 CCSCI-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 CCSCI-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 CCSCI-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 CCSCI-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 CCSCI-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 CCSCI-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 CCSCI-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 CCSCI-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 CCSCI-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 CCSCI-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 CCSCI-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 CCSCI-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 CCSCI-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 CCSCI-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-260CSCI-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 CCSCI-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, SeniorCSCI-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 CCSCI-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 CCSCI-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 CCSCI-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: SeniorCSCI-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: SeniorCSCI-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, SeniorCSCI-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