Undergraduate Program
Term Schedule
Fall 2020
Number  Title  Instructor  Time 

CSC 108
Rolando Raqueno
TR 4:50PM  6:05PM


An introduction to computer applications in business and graphic design. Students will begin by learning the basics and some advanced functions of Microsoft Word, Excel, and Powerpoint. The class then progresses through the Adobe graphic design applications Photoshop, After Effects, and Flash. In learning these applications, students are introduced to topics such as computer graphics, file compression, and animation. Not open to officially declared CSC majors.


CSC 108
Rolando Raqueno
TR 6:15PM  7:30PM


An introduction to computer applications in business and graphic design. Students will begin by learning the basics and some advanced functions of Microsoft Word, Excel, and Powerpoint. The class then progresses through the Adobe graphic design applications Photoshop, After Effects, and Flash. In learning these applications, students are introduced to topics such as computer graphics, file compression, and animation. Not open to officially declared CSC majors.


CSC 108
Rolando Raqueno
MW 3:25PM  4:40PM


An introduction to computer applications in business and graphic design. Students will begin by learning the basics and some advanced functions of Microsoft Word, Excel, and Powerpoint. The class then progresses through the Adobe graphic design applications Photoshop, After Effects, and Flash. In learning these applications, students are introduced to topics such as computer graphics, file compression, and animation. Not open to officially declared CSC majors.


CSC 131
Thaddeus Pawlicki
TR 11:05AM  12:20PM


A hands on introduction to 3D computer graphics and animation techniques taught from a user point of view. Topics include 3D modeling, animation, and simulation. Assessment based on projects. No written exams. If the course is closed, DO NOT email the professor. Fill out this form to be added to the waitlist: https://goo.gl/forms/IyFoIfjrtISvJls62. Additional places, if any, will become available automatically.


CSC 161
Richard Sarkis
MW 4:50PM  6:05PM


Handson introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as objectoriented programming and graphics. Recommended for nonmajors, and/or students with less math and science background. Lab and workshop required.


CSC 161
Richard Sarkis
TR 12:30PM  1:45PM


Handson introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as objectoriented programming and graphics. Recommended for nonmajors, and/or students with less math and science background. Lab and workshop required.


CSC 161
Richard Sarkis
MW 12:30PM  1:45PM


Handson introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as objectoriented programming and graphics. Recommended for nonmajors, and/or students with less math and science background. Lab and workshop required.


CSC 161
Richard Sarkis
MW 6:15PM  7:30PM


Handson introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as objectoriented programming and graphics. Recommended for nonmajors, and/or students with less math and science background. Lab and workshop required.


CSC 161
Richard Sarkis
M 7:40PM  8:55PM


Handson introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as objectoriented programming and graphics. Recommended for nonmajors, and/or students with less math and science background. Lab and workshop required.


CSC 161
Richard Sarkis
W 7:40PM  10:55PM


Handson introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as objectoriented programming and graphics. Recommended for nonmajors, and/or students with less math and science background. Lab and workshop required.


CSC 161
Richard Sarkis
R 7:40PM  8:55PM


Handson introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as objectoriented programming and graphics. Recommended for nonmajors, and/or students with less math and science background. Lab and workshop required.


CSC 161
Richard Sarkis
U 2:00PM  3:15PM


Handson introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as objectoriented programming and graphics. Recommended for nonmajors, and/or students with less math and science background. Lab and workshop required.


CSC 161
Richard Sarkis
M 10:25AM  11:40AM


Handson introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as objectoriented programming and graphics. Recommended for nonmajors, and/or students with less math and science background. Lab and workshop required.


CSC 161
Richard Sarkis
R 2:00PM  3:15PM


Handson introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as objectoriented programming and graphics. Recommended for nonmajors, and/or students with less math and science background. Lab and workshop required.


CSC 161
Richard Sarkis
T 3:25PM  4:40PM


Handson introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as objectoriented programming and graphics. Recommended for nonmajors, and/or students with less math and science background. Lab and workshop required.


CSC 161
Richard Sarkis
R 4:50PM  6:05PM


Handson introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as objectoriented programming and graphics. Recommended for nonmajors, and/or students with less math and science background. Lab and workshop required.


CSC 161
Richard Sarkis
W 3:25PM  4:40PM


Handson introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as objectoriented programming and graphics. Recommended for nonmajors, and/or students with less math and science background. Lab and workshop required.


CSC 161
Richard Sarkis
U 7:40PM  8:55PM


Handson introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as objectoriented programming and graphics. Recommended for nonmajors, and/or students with less math and science background. Lab and workshop required.


CSC 161
Richard Sarkis
T 6:15PM  7:30PM


Handson introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as objectoriented programming and graphics. Recommended for nonmajors, and/or students with less math and science background. Lab and workshop required.


CSC 161
Richard Sarkis
M 6:15PM  7:30PM


Handson introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as objectoriented programming and graphics. Recommended for nonmajors, and/or students with less math and science background. Lab and workshop required.


CSC 161
Richard Sarkis
W 6:15PM  7:30PM


Handson introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as objectoriented programming and graphics. Recommended for nonmajors, and/or students with less math and science background. Lab and workshop required.


CSC 170
Robert Kostin
TR 11:05AM  12:20PM


An introduction to the World Wide Web and related technologies. Topics include HTML5 and CSS3, Progressive Enhancement, and Web page design. Emphasis is placed on fundamentals, industry standards and best practices. Additional topics include: web site construction techniques, mobile design issues, and Search Engine Optimization (SEO). Programming with JavaScript will be introduced.


CSC 170
Robert Kostin
MW 12:30PM  1:45PM


An introduction to the World Wide Web and related technologies. Topics include HTML5 and CSS3, Progressive Enhancement, and Web page design. Emphasis is placed on fundamentals, industry standards and best practices. Additional topics include: web site construction techniques, mobile design issues, and Search Engine Optimization (SEO). Programming with JavaScript will be introduced.


CSC 170
Robert Kostin
MW 11:05AM  12:20PM


An introduction to the World Wide Web and related technologies. Topics include HTML5 and CSS3, Progressive Enhancement, and Web page design. Emphasis is placed on fundamentals, industry standards and best practices. Additional topics include: web site construction techniques, mobile design issues, and Search Engine Optimization (SEO). Programming with JavaScript will be introduced.


CSC 170
Robert Kostin
TR 3:25PM  4:40PM


An introduction to the World Wide Web and related technologies. Topics include HTML5 and CSS3, Progressive Enhancement, and Web page design. Emphasis is placed on fundamentals, industry standards and best practices. Additional topics include: web site construction techniques, mobile design issues, and Search Engine Optimization (SEO). Programming with JavaScript will be introduced.


CSC 171
Adam Purtee
MW 10:25AM  11:40AM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 171
Adam Purtee
TR 6:15PM  7:30PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 171
Adam Purtee
TR 11:05AM  12:20PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 171
Adam Purtee
WF 12:30PM  1:45PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 171
Adam Purtee
MW 2:00PM  3:15PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 171
Adam Purtee
TR 9:40AM  10:55AM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 171
Adam Purtee
TR 9:40AM  10:55AM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 171
Adam Purtee
T 7:40PM  8:55PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 171
Adam Purtee
M 7:40PM  8:55PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 171
Adam Purtee
T 7:40PM  8:55PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 171
Adam Purtee
T 7:40PM  8:55PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 171
Adam Purtee
T 6:15PM  7:30PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 171
Adam Purtee
U 7:40PM  8:55PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 171
Adam Purtee
M 7:40PM  8:55PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 171
Adam Purtee
M 7:40PM  8:55PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 171
Adam Purtee
M 3:25PM  4:40PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 171
Adam Purtee
W 3:25PM  4:40PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 171
Adam Purtee
W 6:15PM  7:30PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 171
Adam Purtee
W 7:40PM  8:55PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 171
Adam Purtee
M 4:50PM  6:05PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 171
Adam Purtee
T 4:50PM  6:05PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 171
Adam Purtee
M 3:25PM  4:40PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 171
Adam Purtee
T 3:25PM  4:40PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 171
Adam Purtee
U 6:15PM  7:30PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 171
Adam Purtee
W 6:15PM  7:30PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 171
Adam Purtee
M 6:15PM  7:30PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 171
Adam Purtee
M 6:15PM  7:30PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 171
Adam Purtee
M 6:15PM  7:30PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 172
Eustrat Zhupa
TR 3:25PM  4:40PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required. Prerequisites: CSC 171 or equivalent, MTH 150.


CSC 172
Eustrat Zhupa
MW 4:50PM  6:05PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 172
Eustrat Zhupa
TR 2:00PM  3:15PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 172
Eustrat Zhupa
MW 3:25PM  4:40PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 172
Eustrat Zhupa
MW 9:00AM  10:15AM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 172
Eustrat Zhupa
MW 4:50PM  6:05PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 172
Eustrat Zhupa
TR 12:30PM  1:45PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 172
Eustrat Zhupa
TR 2:00PM  3:15PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 172
Eustrat Zhupa
MW 12:30PM  1:45PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 172
Eustrat Zhupa
MW 2:00PM  3:15PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 172
Eustrat Zhupa
M 7:40PM  8:55PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 172
Eustrat Zhupa
W 7:40PM  8:55PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 172
Eustrat Zhupa
T 7:40PM  8:55PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 172
Eustrat Zhupa
M 7:40PM  8:55PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 172
Eustrat Zhupa
M 4:50PM  6:05PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 172
Eustrat Zhupa
T 7:40PM  8:55PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 172
Eustrat Zhupa
T 7:40PM  8:55PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 172
Eustrat Zhupa
M 7:40PM  8:55PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 172
Eustrat Zhupa
W 7:40PM  8:55PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 172
Eustrat Zhupa
W 4:50PM  6:05PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 172
Eustrat Zhupa
U 4:50PM  6:05PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 172
Eustrat Zhupa
M 6:15PM  7:30PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 172
Eustrat Zhupa
W 7:40PM  8:55PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 172
Eustrat Zhupa
U 6:15PM  7:30PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 172
Eustrat Zhupa
M 6:15PM  7:30PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 172
Eustrat Zhupa
M 3:25PM  4:40PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 172
Eustrat Zhupa
R 4:50PM  6:05PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 172
Eustrat Zhupa
U 4:50PM  6:05PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 172
Eustrat Zhupa
T 6:15PM  7:30PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 172
Eustrat Zhupa
R 2:00PM  3:15PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 173
George Ferguson
MW 2:00PM  3:15PM


Investigation of several formal systems influential in computer science, and also some of their applications (e.g. inspiring and providing the foundation for a computer programming style, or providing the basis for solving important practical problems like communications protocols, compiling, systems analysis, graphics ...) This course is available to majors only during the registration period.


CSC 175
Randal Nelson
WF 10:25AM  11:40AM


Quick! How much would a tunnel under Lake Ontario cost? How many people probably touched that orange you just bought at Wegmans? Can the military's satellites really read your license plate from orbit? Explores the creative use computational mechanisms and information sources to obtain rough estimates and feasibility analyses for interesting questions practical problems, and looks at the technological basis of the art of measurement.


CSC 210
–
TR 3:25PM  4:40PM


The World Wide Web was born around 1990, so it is not much older than most of you. In this course, we will follow the growth of the Web from its toddler years, to early childhood, to its turbulent preteen and teenage years, and finally as it begins to mature as a young adult. Along this journey, you will learn influential Web technologies such as HTTP, HTML, JavaScript, CSS, the LAMP stack, XML, JSON, Ajax, WebSockets, and modern MVC frameworks. Even though you will be doing a lot of programming in this course, its purpose is not to teach you to become an expert in any particular language or framework. Web technologies change at a blistering pace, so specifics quickly get outdated. However, once you take this course and understand the fundamentals, you will be able to easily pick up new technologies on the fly. *No audits will be allowed for this course.


CSC 211
–
MW 10:25AM  11:40AM


The goal of this course is to provide an introductory overview of the concepts, principles, methods and special topics of HumanComputer Interaction (HCI). This course will help students to build a frame of reference of HCI approaches and apply them in conducting design practices for realworld problems. This course contains a combination of lectures, seminars and group projects. The lectures will cover origins of HCI and interaction design, usercentered design methods, usability evaluation and user experience. The seminars will be a combination of guest lecturers and studentled discussions to introduce special topics in HCI, which may include Augmented and Virtual Reality, Tangible User Interface, HumanRobot Interaction, learning technologies, and assistive technologies. The group project will take place throughout the course and provide an opportunity for students to apply and reflect on HCI methods and usercentered design processes through contextual inquiry, prototyping, evaluation, iteration and presentation. Prerequisites: CSC 172. CSC 214 is recommended.


CSC 214
Arthur Roolfs
TR 6:15PM  7:30PM


Coursework covers user interface designs and functional algorithms for mobile devices (iOS fall, Android spring) and unique user interactions using multitouch technologies. Objectoriented design using modelviewcontroller paradigm, memory management. Other topics include: objectoriented database API, animation, multithreading and performance considerations


CSC 229
Robert Jacobs
TR 3:25PM  4:40PM


Blank Description


CSC 240
Thaddeus Pawlicki
TR 12:30PM  1:45PM


Fundamental concepts and techniques of data mining, including data attributes, data visualization, data preprocessing, mining frequent patterns, association and correlation, classification methods, and cluster analysis. Advanced topics include outlier detection, stream mining, and social media data mining. CSC 440, a graduatelevel course, requires additional readings and a course project.


CSC 242
George Ferguson
TR 3:25PM  4:40PM


Introduces fundamental principles and techniques from Artificial Intelligence, including heuristic search, automated reasoning, handling uncertainty, and machine learning, to prepare students for advanced AI courses. This course is available to majors only during the registration period.


CSC 244
Lenhart Schubert
TR 9:40AM  10:55AM


The logical foundations of AI including firstorder logic, reasoning, knowledge representation, planning, and probabilistic inference.


CSC 248
Daniel Gildea
TR 11:05AM  12:20PM


An introduction to statistical natural language processing and automatic speech recognition techniques. This course presents the theory and practice behind the recently developed language processing technologies that enable applications such as speechdriven dictation systems, document search engines (e.g., finding web pages) and automatic machine translation. Students taking this course at the 400 level will be required to complete additional readings and/or assignments.


CSC 249
Chenliang Xu
TR 2:00PM  3:15PM


Introduction to computer vision, including camera models, basic image processing, pattern and object recognition, and elements of human vision. Specific topics include geometric issues, statistical models, Hough transforms, color theory, texture, and optic flow. CSC 449, a graduatelevel course, requires additional readings and assignments.Prerequisites: MTH 161 and CSC 242; MTH 165 strongly recommended


CSC 251
Engin Ipek
TR 11:05AM  12:20PM


This course is crosslisted with ECE 201. Check the description there.


CSC 252
Sandhya Dwarkadas
MW 3:25PM  4:40PM


Introduction to computer architecture and the layering of hardware/software systems. Topics include instruction set design; logical building blocks; computer arithmetic; processor organization; the memory hierarchy (registers, caches, main memory, and secondary storage); I/Obuses, devices, and interrupts; microcode and assembly language; virtual machines; the roles of the assembler, linker, compiler, and operating system; technological trends and the future of computing hardware. Several programming assignments required.


CSC 253
Chen Ding
MW 3:25PM  4:40PM


Modern software is complex and more than a single person can fully comprehend. This course teaches the principles and techniques of writing modular and composable code and collaborating with others in software design. The topics include advanced concepts and techniques in modern programming languages, principles of modularity, software architecture, design patterns, software development processes, and other examples of software design. A significant portion of the assignment is a group project to develop a groupware system. Students enrolled in the class are expected to already have significant programming experience in some languages. The programming languages used in lectures are mainly Ruby and Haskell. Prerequisites: CSC 172, or equivalent. CSC 252 and CSC 254 recommended.


CSC 254
Michael Scott
MW 10:25AM  11:40AM


Design and implementation of programming languages, with an emphasis on imperative languages and on implementation tradeoffs. Indepth examination of 'how programming languages work.' Topics include fundamental language concepts (names, values, types, abstraction, control flow); compilation and interpretation (syntactic and semantic analysis, code generation and optimization); major language paradigms (imperative, objectoriented, functional, logicbased, concurrent). Course projects include assignments in several different languages, with an emphasis on compilation issues. Prerequisites: CSC 173 and CSC 252, or equivalent.


CSC 254
Michael Scott
R 6:15PM  7:30PM


Design and implementation of programming languages, with an emphasis on imperative languages and on implementation tradeoffs. Indepth examination of 'how programming languages work.' Topics include fundamental language concepts (names, values, types, abstraction, control flow); compilation and interpretation (syntactic and semantic analysis, code generation and optimization); major language paradigms (imperative, objectoriented, functional, logicbased, concurrent). Course projects include assignments in several different languages, with an emphasis on compilation issues.


CSC 254
Michael Scott
W 4:50PM  6:05PM


Design and implementation of programming languages, with an emphasis on imperative languages and on implementation tradeoffs. Indepth examination of 'how programming languages work.' Topics include fundamental language concepts (names, values, types, abstraction, control flow); compilation and interpretation (syntactic and semantic analysis, code generation and optimization); major language paradigms (imperative, objectoriented, functional, logicbased, concurrent). Course projects include assignments in several different languages, with an emphasis on compilation issues.


CSC 254
Michael Scott
W 6:15PM  7:30PM


Design and implementation of programming languages, with an emphasis on imperative languages and on implementation tradeoffs. Indepth examination of 'how programming languages work.' Topics include fundamental language concepts (names, values, types, abstraction, control flow); compilation and interpretation (syntactic and semantic analysis, code generation and optimization); major language paradigms (imperative, objectoriented, functional, logicbased, concurrent). Course projects include assignments in several different languages, with an emphasis on compilation issues.


CSC 254
Michael Scott
W 6:15PM  7:30PM


Design and implementation of programming languages, with an emphasis on imperative languages and on implementation tradeoffs. Indepth examination of 'how programming languages work.' Topics include fundamental language concepts (names, values, types, abstraction, control flow); compilation and interpretation (syntactic and semantic analysis, code generation and optimization); major language paradigms (imperative, objectoriented, functional, logicbased, concurrent). Course projects include assignments in several different languages, with an emphasis on compilation issues.


CSC 254
Michael Scott
W 3:25PM  4:40PM


Design and implementation of programming languages, with an emphasis on imperative languages and on implementation tradeoffs. Indepth examination of 'how programming languages work.' Topics include fundamental language concepts (names, values, types, abstraction, control flow); compilation and interpretation (syntactic and semantic analysis, code generation and optimization); major language paradigms (imperative, objectoriented, functional, logicbased, concurrent). Course projects include assignments in several different languages, with an emphasis on compilation issues.


CSC 254
Michael Scott
W 4:50PM  6:05PM


Design and implementation of programming languages, with an emphasis on imperative languages and on implementation tradeoffs. Indepth examination of 'how programming languages work.' Topics include fundamental language concepts (names, values, types, abstraction, control flow); compilation and interpretation (syntactic and semantic analysis, code generation and optimization); major language paradigms (imperative, objectoriented, functional, logicbased, concurrent). Course projects include assignments in several different languages, with an emphasis on compilation issues.


CSC 254
Michael Scott
R 7:40PM  8:55PM


Design and implementation of programming languages, with an emphasis on imperative languages and on implementation tradeoffs. Indepth examination of 'how programming languages work.' Topics include fundamental language concepts (names, values, types, abstraction, control flow); compilation and interpretation (syntactic and semantic analysis, code generation and optimization); major language paradigms (imperative, objectoriented, functional, logicbased, concurrent). Course projects include assignments in several different languages, with an emphasis on compilation issues.


CSC 254
Michael Scott
R 3:25PM  4:40PM


Design and implementation of programming languages, with an emphasis on imperative languages and on implementation tradeoffs. Indepth examination of 'how programming languages work.' Topics include fundamental language concepts (names, values, types, abstraction, control flow); compilation and interpretation (syntactic and semantic analysis, code generation and optimization); major language paradigms (imperative, objectoriented, functional, logicbased, concurrent). Course projects include assignments in several different languages, with an emphasis on compilation issues.


CSC 254
Michael Scott
R 6:15PM  7:30PM


Design and implementation of programming languages, with an emphasis on imperative languages and on implementation tradeoffs. Indepth examination of 'how programming languages work.' Topics include fundamental language concepts (names, values, types, abstraction, control flow); compilation and interpretation (syntactic and semantic analysis, code generation and optimization); major language paradigms (imperative, objectoriented, functional, logicbased, concurrent). Course projects include assignments in several different languages, with an emphasis on compilation issues.


CSC 254
Michael Scott
U 3:25PM  4:40PM


Design and implementation of programming languages, with an emphasis on imperative languages and on implementation tradeoffs. Indepth examination of 'how programming languages work.' Topics include fundamental language concepts (names, values, types, abstraction, control flow); compilation and interpretation (syntactic and semantic analysis, code generation and optimization); major language paradigms (imperative, objectoriented, functional, logicbased, concurrent). Course projects include assignments in several different languages, with an emphasis on compilation issues.


CSC 256
John Criswell
TR 2:00PM  3:15PM


Principles of operating system design, explored within the practical context of traditional, embedded, distributed, and realtime operating systems. Topics include device management, process management, scheduling, synchronization principles, memory management and virtual memory, file management and remote files, protection and security, fault tolerance, networks, and distributed computing. CSC 456, a graduatelevel course, requires additional readings and assignments.


CSC 257
Adam Purtee
MW 4:50PM  6:05PM


Introduction to computer networks and computer communication: Architecture and Protocols:. Design of protocols for error recovery, reliable delivery, routing and congestion control. Storeandforward networks, satellite networks, local area networks and locally distributed systems. Case studies of networks, protocols and protocol families. Emphasis on software design issues in computer communication.


CSC 261
Eustrat Zhupa
MW 12:30PM  1:45PM


This course presents the fundamental concepts of database design and use. It provides a study of data models, data description languages, and query facilities including relational algebra and SQL, data normalization, transactions and their properties, physical data organization and indexing, security issues and object databases. It also looks at the new trends in databases. The knowledge of the above topics will be applied in the design and implementation of a database application using a target database management system as part of a semesterlong group project.


CSC 262
Joseph Ciminelli
TR 2:00PM  3:15PM


This course will cover foundational concepts in descriptive analyses, probability, and statistical inference. Topics to be covered include data exploration through descriptive statistics (with a heavy emphasis on using R for such analyses), elementary probability, diagnostic testing, combinatorics, random variables, elementary distribution theory, statistical inference, and statistical modeling. The inference portion of the course will focus on building and applying hypothesis tests and confidence intervals for population means, proportions, variances, and correlations. Nonparametric alternatives will also be introduced. The modeling portion of the course will include ANOVA, and simple and multiple regression and their respective computational methods. Students will be introduced to the R statistical computing environment. PREREQUISITES: MTH 150 or MTH 150A; AND MTH 142 or MTH 161 or MTH 171 WAITLIST: If registration is full, submit your info to our Fall 2020 waitlist at: https://forms.gle/yc8u4rs5raBoeW2V7


CSC 264
Zhiyao Duan
TR 12:30PM  1:45PM


This course is crosslisted with ECE477. Please refer to ECE 477 for the course description.


CSC 273W
Joseph Loporcaro
R 2:00PM  3:15PM


In this course, students prepare, critique, and discuss written materials relevant to Computer Science. Will count as one of the two upper level writing requirements for Computer Science majors. If the course is closed, DO NOT email the professor.


CSC 273W
Joseph Loporcaro
T 4:50PM  6:05PM


In this course, students prepare, critique, and discuss written materials relevant to Computer Science. Will count as one of the two upper level writing requirements for Computer Science majors. If the course is closed, DO NOT email the professor. Fill out this form to be added to the waitlist: https://goo.gl/forms/IyFoIfjrtISvJls62. Additional places, if any, will become available automatically for online registration.


CSC 275
Randal Nelson
WF 10:25AM  11:40AM


Quick! How much would a tunnel under Lake Ontario cost? How many people probably touched that orange you just bought at Wegmans? Can the military's satellites really read your license plate from orbit? Explores the creative use computational mechanisms and information sources to obtain rough estimates and feasibility analyses for interesting questions practical problems, and looks at the technological basis of the art of measurement.


CSC 280
Eustrat Zhupa
M 4:50PM  6:05PM


This course studies fundamental computer models and their computational limitations. Finitestate machines and pumping lemmas, the contextfree languages, Turing machines, decidable and Turingrecognizable languages, undecidability. Prerequisites include CSC 173 and MTH 150.


CSC 280
Eustrat Zhupa
MW 2:00PM  3:15PM


This course studies fundamental computer models and their computational limitations. Finitestate machines and pumping lemmas, the contextfree languages, Turing machines, decidable and Turingrecognizable languages, undecidability. Prerequisites include CSC 173 and MTH 150.


CSC 280
Eustrat Zhupa
W 4:50PM  6:05PM


This course studies fundamental computer models and their computational limitations. Finitestate machines and pumping lemmas, the contextfree languages, Turing machines, decidable and Turingrecognizable languages, undecidability. Prerequisites include CSC 173 and MTH 150.


CSC 280
Eustrat Zhupa
R 4:50PM  6:05PM


This course studies fundamental computer models and their computational limitations. Finitestate machines and pumping lemmas, the contextfree languages, Turing machines, decidable and Turingrecognizable languages, undecidability. Prerequisites include CSC 173 and MTH 150.


CSC 280
Eustrat Zhupa
R 6:15PM  7:30PM


This course studies fundamental computer models and their computational limitations. Finitestate machines and pumping lemmas, the contextfree languages, Turing machines, decidable and Turingrecognizable languages, undecidability. Prerequisites are CSC 173 and MTH 150.


CSC 280
Eustrat Zhupa
T 6:15PM  7:30PM


This course studies fundamental computer models and their computational limitations. Finitestate machines and pumping lemmas, the contextfree languages, Turing machines, decidable and Turingrecognizable languages, undecidability. Prerequisites are CSC 173 and MTH 150.


CSC 280
Eustrat Zhupa
W 6:15PM  7:30PM


This course studies fundamental computer models and their computational limitations. Finitestate machines and pumping lemmas, the contextfree languages, Turing machines, decidable and Turingrecognizable languages, undecidability. Prerequisites include CSC 173 and MTH 150


CSC 280
Eustrat Zhupa
W 6:15PM  7:30PM


This course studies fundamental computer models and their computational limitations. Finitestate machines and pumping lemmas, the contextfree languages, Turing machines, decidable and Turingrecognizable languages, undecidability. Prerequisites are CSC 173 and MTH 150.


CSC 280
Eustrat Zhupa
R 4:50PM  6:05PM


This course studies fundamental computer models and their computational limitations. Finitestate machines and pumping lemmas, the contextfree languages, Turing machines, decidable and Turingrecognizable languages, undecidability. Prerequisites are CSC 173 and MTH 150


CSC 280
Eustrat Zhupa
R 3:25PM  4:40PM


This course studies fundamental computer models and their computational limitations. Finitestate machines and pumping lemmas, the contextfree languages, Turing machines, decidable and Turingrecognizable languages, undecidability. Prerequisites are CSC 173 and MTH 150.


CSC 282
Daniel Stefankovic
TR 11:05AM  12:20PM


How does one design programs and ascertain their efficiency? Divideandconquer techniques, string processing, graph algorithms, mathematical algorithms. Advanced data structures such as balanced tree schemes. Introduction to NPcompleteness and intractable combinatorial search, optimization, and decision problems.


CSC 282
Daniel Stefankovic
T 6:15PM  7:30PM


How does one design programs and ascertain their efficiency? Divideandconquer techniques, string processing, graph algorithms, mathematical algorithms. Advanced data structures such as balanced tree schemes. Introduction to NPcompleteness and intractable combinatorial search, optimization, and decision problems.


CSC 282
Daniel Stefankovic
W 6:15PM  7:30PM


How does one design programs and ascertain their efficiency? Divideandconquer techniques, string processing, graph algorithms, mathematical algorithms. Advanced data structures such as balanced tree schemes. Introduction to NPcompleteness and intractable combinatorial search, optimization, and decision problems.


CSC 282
Daniel Stefankovic
M 6:15PM  7:30PM


How does one design programs and ascertain their efficiency? Divideandconquer techniques, string processing, graph algorithms, mathematical algorithms. Advanced data structures such as balanced tree schemes. Introduction to NPcompleteness and intractable combinatorial search, optimization, and decision problems.


CSC 282
Daniel Stefankovic
W 7:40PM  8:55PM


How does one design programs and ascertain their efficiency? Divideandconquer techniques, string processing, graph algorithms, mathematical algorithms. Advanced data structures such as balanced tree schemes. Introduction to NPcompleteness and intractable combinatorial search, optimization, and decision problems.


CSC 287
Daniel Stefankovic
MW 2:00PM  3:15PM


The course will focus on algorithmic sampling from probability distributions using Markov chains, perfect sampling methods (coupling from the past, Lovasz Local Lemma), determinantal techinques (spanning trees, matchings in planar graphs), and using correlation decay. For MCMC we will study methods to bound convergence speed (coupling, canonical paths, conductance, logconcavity) and show how they apply to classical problems (colorings, permanent, volume, matroids). Background material on probability theory will be covered.


CSC 292
Yuhao Zhu
WF 11:50AM  1:05PM


This class studies both classic and emerging topics in mobile visual computing through paper critiquing, inclass presentations, and the fun "wild and crazy" paper writing. The nature of mobile computing casts two important implications of this course. First, the course will necessarily span many important layers of a computer system, including application development, programming language and framework, compiler, OS, and hardware architecture; we will also touch traditionally noncomputing domains such as sensing and optics that are critical to visual applications. Second, the course material will be driven by key domains and usecases of mobile visual computing, such as realtime computer vision, Augmented/Virtual Reality, computational photography/imaging, etc.


CSC 298
Chenliang Xu
TR 12:30PM  1:45PM


Much of the recent advances in machine learning and artificial intelligence have been dominated by neural network approaches broadly described as deep learning. This course provides an overview of the most important deep learning techniques covering both theoretical foundations and practical applications. The applications focus on problems in image understanding and language modeling utilizing stateoftheart deep learning libraries and tools, which are introduced in the course. Prerequisites: MTH 164, MTH 165, and CSC 172. Programming in Python. Recommended: CSC 246 and CSC 249.


CSC 299
Joseph Loporcaro
MW 3:25PM  4:40PM


Computers and the Internet, perhaps more than any other technology, have transformed society over the past 50 years. In developed nations, at least, they have enabled dramatic increases in human productivity; an explosion of options for news, entertainment, and communication; and fundamental breakthroughs in almost every branch of science and engineering. At the same time, they have contributed to unprecedented threats to privacy; whole new categories of crime and antisocial behavior; major disruptions in the job market; and the largescale concentration of risk into systems capable of catastrophic failure. In this discussion and writingoriented class, we will consider all of this and more, with the goal of better understanding how to shape technological change in ways that maximize the benefits and minimize the costs.


CSC 386V
Chenliang Xu
–


Blank Description


CSC 390
–
–


Blank Description


CSC 390
Richard Sarkis
–


Blank Description


CSC 390A
–
–


Blank Description


CSC 390A
Eustrat Zhupa
–


Blank Description


CSC 391
–
–


Blank Description


CSC 391H
–
–


Blank Description


CSC 391W
–
–


Blank Description


CSC 392
–
–


Blank Description


CSC 393
–
–


Blank Description


CSC 393
Jiebo Luo
–


Blank Description


CSC 394
–
–


Blank Description


CSC 394
Yuhao Zhu
–


Blank Description


CSC 394
–
–


Blank Description


CSC 394
–
–


Blank Description


CSC 395
–
–


Blank Description


CSC 395W
–
–


Blank Description

Fall 2020
Number  Title  Instructor  Time 

Monday  
CSC 161
Richard Sarkis
M 10:25AM  11:40AM


Handson introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as objectoriented programming and graphics. Recommended for nonmajors, and/or students with less math and science background. Lab and workshop required.


CSC 172
Eustrat Zhupa
M 3:25PM  4:40PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 171
Adam Purtee
M 3:25PM  4:40PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 171
Adam Purtee
M 3:25PM  4:40PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 172
Eustrat Zhupa
M 4:50PM  6:05PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 280
Eustrat Zhupa
M 4:50PM  6:05PM


This course studies fundamental computer models and their computational limitations. Finitestate machines and pumping lemmas, the contextfree languages, Turing machines, decidable and Turingrecognizable languages, undecidability. Prerequisites include CSC 173 and MTH 150.


CSC 171
Adam Purtee
M 4:50PM  6:05PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 282
Daniel Stefankovic
M 6:15PM  7:30PM


How does one design programs and ascertain their efficiency? Divideandconquer techniques, string processing, graph algorithms, mathematical algorithms. Advanced data structures such as balanced tree schemes. Introduction to NPcompleteness and intractable combinatorial search, optimization, and decision problems.


CSC 172
Eustrat Zhupa
M 6:15PM  7:30PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 172
Eustrat Zhupa
M 6:15PM  7:30PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 171
Adam Purtee
M 6:15PM  7:30PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 171
Adam Purtee
M 6:15PM  7:30PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 171
Adam Purtee
M 6:15PM  7:30PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 161
Richard Sarkis
M 6:15PM  7:30PM


Handson introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as objectoriented programming and graphics. Recommended for nonmajors, and/or students with less math and science background. Lab and workshop required.


CSC 172
Eustrat Zhupa
M 7:40PM  8:55PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 172
Eustrat Zhupa
M 7:40PM  8:55PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 172
Eustrat Zhupa
M 7:40PM  8:55PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 171
Adam Purtee
M 7:40PM  8:55PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 171
Adam Purtee
M 7:40PM  8:55PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 171
Adam Purtee
M 7:40PM  8:55PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 161
Richard Sarkis
M 7:40PM  8:55PM


Handson introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as objectoriented programming and graphics. Recommended for nonmajors, and/or students with less math and science background. Lab and workshop required.


Monday and Wednesday  
CSC 172
Eustrat Zhupa
MW 9:00AM  10:15AM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 171
Adam Purtee
MW 10:25AM  11:40AM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 211
–
MW 10:25AM  11:40AM


The goal of this course is to provide an introductory overview of the concepts, principles, methods and special topics of HumanComputer Interaction (HCI). This course will help students to build a frame of reference of HCI approaches and apply them in conducting design practices for realworld problems. This course contains a combination of lectures, seminars and group projects. The lectures will cover origins of HCI and interaction design, usercentered design methods, usability evaluation and user experience. The seminars will be a combination of guest lecturers and studentled discussions to introduce special topics in HCI, which may include Augmented and Virtual Reality, Tangible User Interface, HumanRobot Interaction, learning technologies, and assistive technologies. The group project will take place throughout the course and provide an opportunity for students to apply and reflect on HCI methods and usercentered design processes through contextual inquiry, prototyping, evaluation, iteration and presentation. Prerequisites: CSC 172. CSC 214 is recommended.


CSC 254
Michael Scott
MW 10:25AM  11:40AM


Design and implementation of programming languages, with an emphasis on imperative languages and on implementation tradeoffs. Indepth examination of 'how programming languages work.' Topics include fundamental language concepts (names, values, types, abstraction, control flow); compilation and interpretation (syntactic and semantic analysis, code generation and optimization); major language paradigms (imperative, objectoriented, functional, logicbased, concurrent). Course projects include assignments in several different languages, with an emphasis on compilation issues. Prerequisites: CSC 173 and CSC 252, or equivalent.


CSC 170
Robert Kostin
MW 11:05AM  12:20PM


An introduction to the World Wide Web and related technologies. Topics include HTML5 and CSS3, Progressive Enhancement, and Web page design. Emphasis is placed on fundamentals, industry standards and best practices. Additional topics include: web site construction techniques, mobile design issues, and Search Engine Optimization (SEO). Programming with JavaScript will be introduced.


CSC 161
Richard Sarkis
MW 12:30PM  1:45PM


Handson introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as objectoriented programming and graphics. Recommended for nonmajors, and/or students with less math and science background. Lab and workshop required.


CSC 261
Eustrat Zhupa
MW 12:30PM  1:45PM


This course presents the fundamental concepts of database design and use. It provides a study of data models, data description languages, and query facilities including relational algebra and SQL, data normalization, transactions and their properties, physical data organization and indexing, security issues and object databases. It also looks at the new trends in databases. The knowledge of the above topics will be applied in the design and implementation of a database application using a target database management system as part of a semesterlong group project.


CSC 170
Robert Kostin
MW 12:30PM  1:45PM


An introduction to the World Wide Web and related technologies. Topics include HTML5 and CSS3, Progressive Enhancement, and Web page design. Emphasis is placed on fundamentals, industry standards and best practices. Additional topics include: web site construction techniques, mobile design issues, and Search Engine Optimization (SEO). Programming with JavaScript will be introduced.


CSC 172
Eustrat Zhupa
MW 12:30PM  1:45PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 280
Eustrat Zhupa
MW 2:00PM  3:15PM


This course studies fundamental computer models and their computational limitations. Finitestate machines and pumping lemmas, the contextfree languages, Turing machines, decidable and Turingrecognizable languages, undecidability. Prerequisites include CSC 173 and MTH 150.


CSC 173
George Ferguson
MW 2:00PM  3:15PM


Investigation of several formal systems influential in computer science, and also some of their applications (e.g. inspiring and providing the foundation for a computer programming style, or providing the basis for solving important practical problems like communications protocols, compiling, systems analysis, graphics ...) This course is available to majors only during the registration period.


CSC 172
Eustrat Zhupa
MW 2:00PM  3:15PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 287
Daniel Stefankovic
MW 2:00PM  3:15PM


The course will focus on algorithmic sampling from probability distributions using Markov chains, perfect sampling methods (coupling from the past, Lovasz Local Lemma), determinantal techinques (spanning trees, matchings in planar graphs), and using correlation decay. For MCMC we will study methods to bound convergence speed (coupling, canonical paths, conductance, logconcavity) and show how they apply to classical problems (colorings, permanent, volume, matroids). Background material on probability theory will be covered.


CSC 171
Adam Purtee
MW 2:00PM  3:15PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 299
Joseph Loporcaro
MW 3:25PM  4:40PM


Computers and the Internet, perhaps more than any other technology, have transformed society over the past 50 years. In developed nations, at least, they have enabled dramatic increases in human productivity; an explosion of options for news, entertainment, and communication; and fundamental breakthroughs in almost every branch of science and engineering. At the same time, they have contributed to unprecedented threats to privacy; whole new categories of crime and antisocial behavior; major disruptions in the job market; and the largescale concentration of risk into systems capable of catastrophic failure. In this discussion and writingoriented class, we will consider all of this and more, with the goal of better understanding how to shape technological change in ways that maximize the benefits and minimize the costs.


CSC 108
Rolando Raqueno
MW 3:25PM  4:40PM


An introduction to computer applications in business and graphic design. Students will begin by learning the basics and some advanced functions of Microsoft Word, Excel, and Powerpoint. The class then progresses through the Adobe graphic design applications Photoshop, After Effects, and Flash. In learning these applications, students are introduced to topics such as computer graphics, file compression, and animation. Not open to officially declared CSC majors.


CSC 253
Chen Ding
MW 3:25PM  4:40PM


Modern software is complex and more than a single person can fully comprehend. This course teaches the principles and techniques of writing modular and composable code and collaborating with others in software design. The topics include advanced concepts and techniques in modern programming languages, principles of modularity, software architecture, design patterns, software development processes, and other examples of software design. A significant portion of the assignment is a group project to develop a groupware system. Students enrolled in the class are expected to already have significant programming experience in some languages. The programming languages used in lectures are mainly Ruby and Haskell. Prerequisites: CSC 172, or equivalent. CSC 252 and CSC 254 recommended.


CSC 172
Eustrat Zhupa
MW 3:25PM  4:40PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 252
Sandhya Dwarkadas
MW 3:25PM  4:40PM


Introduction to computer architecture and the layering of hardware/software systems. Topics include instruction set design; logical building blocks; computer arithmetic; processor organization; the memory hierarchy (registers, caches, main memory, and secondary storage); I/Obuses, devices, and interrupts; microcode and assembly language; virtual machines; the roles of the assembler, linker, compiler, and operating system; technological trends and the future of computing hardware. Several programming assignments required.


CSC 257
Adam Purtee
MW 4:50PM  6:05PM


Introduction to computer networks and computer communication: Architecture and Protocols:. Design of protocols for error recovery, reliable delivery, routing and congestion control. Storeandforward networks, satellite networks, local area networks and locally distributed systems. Case studies of networks, protocols and protocol families. Emphasis on software design issues in computer communication.


CSC 161
Richard Sarkis
MW 4:50PM  6:05PM


Handson introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as objectoriented programming and graphics. Recommended for nonmajors, and/or students with less math and science background. Lab and workshop required.


CSC 172
Eustrat Zhupa
MW 4:50PM  6:05PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 172
Eustrat Zhupa
MW 4:50PM  6:05PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 161
Richard Sarkis
MW 6:15PM  7:30PM


Handson introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as objectoriented programming and graphics. Recommended for nonmajors, and/or students with less math and science background. Lab and workshop required.


Tuesday  
CSC 161
Richard Sarkis
T 3:25PM  4:40PM


Handson introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as objectoriented programming and graphics. Recommended for nonmajors, and/or students with less math and science background. Lab and workshop required.


CSC 171
Adam Purtee
T 3:25PM  4:40PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 171
Adam Purtee
T 4:50PM  6:05PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 273W
Joseph Loporcaro
T 4:50PM  6:05PM


In this course, students prepare, critique, and discuss written materials relevant to Computer Science. Will count as one of the two upper level writing requirements for Computer Science majors. If the course is closed, DO NOT email the professor. Fill out this form to be added to the waitlist: https://goo.gl/forms/IyFoIfjrtISvJls62. Additional places, if any, will become available automatically for online registration.


CSC 161
Richard Sarkis
T 6:15PM  7:30PM


Handson introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as objectoriented programming and graphics. Recommended for nonmajors, and/or students with less math and science background. Lab and workshop required.


CSC 171
Adam Purtee
T 6:15PM  7:30PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 172
Eustrat Zhupa
T 6:15PM  7:30PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 280
Eustrat Zhupa
T 6:15PM  7:30PM


This course studies fundamental computer models and their computational limitations. Finitestate machines and pumping lemmas, the contextfree languages, Turing machines, decidable and Turingrecognizable languages, undecidability. Prerequisites are CSC 173 and MTH 150.


CSC 282
Daniel Stefankovic
T 6:15PM  7:30PM


How does one design programs and ascertain their efficiency? Divideandconquer techniques, string processing, graph algorithms, mathematical algorithms. Advanced data structures such as balanced tree schemes. Introduction to NPcompleteness and intractable combinatorial search, optimization, and decision problems.


CSC 171
Adam Purtee
T 7:40PM  8:55PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 171
Adam Purtee
T 7:40PM  8:55PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 171
Adam Purtee
T 7:40PM  8:55PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 172
Eustrat Zhupa
T 7:40PM  8:55PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 172
Eustrat Zhupa
T 7:40PM  8:55PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 172
Eustrat Zhupa
T 7:40PM  8:55PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


Tuesday and Thursday  
CSC 171
Adam Purtee
TR 9:40AM  10:55AM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 244
Lenhart Schubert
TR 9:40AM  10:55AM


The logical foundations of AI including firstorder logic, reasoning, knowledge representation, planning, and probabilistic inference.


CSC 171
Adam Purtee
TR 9:40AM  10:55AM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 282
Daniel Stefankovic
TR 11:05AM  12:20PM


How does one design programs and ascertain their efficiency? Divideandconquer techniques, string processing, graph algorithms, mathematical algorithms. Advanced data structures such as balanced tree schemes. Introduction to NPcompleteness and intractable combinatorial search, optimization, and decision problems.


CSC 248
Daniel Gildea
TR 11:05AM  12:20PM


An introduction to statistical natural language processing and automatic speech recognition techniques. This course presents the theory and practice behind the recently developed language processing technologies that enable applications such as speechdriven dictation systems, document search engines (e.g., finding web pages) and automatic machine translation. Students taking this course at the 400 level will be required to complete additional readings and/or assignments.


CSC 171
Adam Purtee
TR 11:05AM  12:20PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 170
Robert Kostin
TR 11:05AM  12:20PM


An introduction to the World Wide Web and related technologies. Topics include HTML5 and CSS3, Progressive Enhancement, and Web page design. Emphasis is placed on fundamentals, industry standards and best practices. Additional topics include: web site construction techniques, mobile design issues, and Search Engine Optimization (SEO). Programming with JavaScript will be introduced.


CSC 131
Thaddeus Pawlicki
TR 11:05AM  12:20PM


A hands on introduction to 3D computer graphics and animation techniques taught from a user point of view. Topics include 3D modeling, animation, and simulation. Assessment based on projects. No written exams. If the course is closed, DO NOT email the professor. Fill out this form to be added to the waitlist: https://goo.gl/forms/IyFoIfjrtISvJls62. Additional places, if any, will become available automatically.


CSC 251
Engin Ipek
TR 11:05AM  12:20PM


This course is crosslisted with ECE 201. Check the description there.


CSC 298
Chenliang Xu
TR 12:30PM  1:45PM


Much of the recent advances in machine learning and artificial intelligence have been dominated by neural network approaches broadly described as deep learning. This course provides an overview of the most important deep learning techniques covering both theoretical foundations and practical applications. The applications focus on problems in image understanding and language modeling utilizing stateoftheart deep learning libraries and tools, which are introduced in the course. Prerequisites: MTH 164, MTH 165, and CSC 172. Programming in Python. Recommended: CSC 246 and CSC 249.


CSC 264
Zhiyao Duan
TR 12:30PM  1:45PM


This course is crosslisted with ECE477. Please refer to ECE 477 for the course description.


CSC 161
Richard Sarkis
TR 12:30PM  1:45PM


Handson introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as objectoriented programming and graphics. Recommended for nonmajors, and/or students with less math and science background. Lab and workshop required.


CSC 240
Thaddeus Pawlicki
TR 12:30PM  1:45PM


Fundamental concepts and techniques of data mining, including data attributes, data visualization, data preprocessing, mining frequent patterns, association and correlation, classification methods, and cluster analysis. Advanced topics include outlier detection, stream mining, and social media data mining. CSC 440, a graduatelevel course, requires additional readings and a course project.


CSC 172
Eustrat Zhupa
TR 12:30PM  1:45PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 249
Chenliang Xu
TR 2:00PM  3:15PM


Introduction to computer vision, including camera models, basic image processing, pattern and object recognition, and elements of human vision. Specific topics include geometric issues, statistical models, Hough transforms, color theory, texture, and optic flow. CSC 449, a graduatelevel course, requires additional readings and assignments.Prerequisites: MTH 161 and CSC 242; MTH 165 strongly recommended


CSC 256
John Criswell
TR 2:00PM  3:15PM


Principles of operating system design, explored within the practical context of traditional, embedded, distributed, and realtime operating systems. Topics include device management, process management, scheduling, synchronization principles, memory management and virtual memory, file management and remote files, protection and security, fault tolerance, networks, and distributed computing. CSC 456, a graduatelevel course, requires additional readings and assignments.


CSC 262
Joseph Ciminelli
TR 2:00PM  3:15PM


This course will cover foundational concepts in descriptive analyses, probability, and statistical inference. Topics to be covered include data exploration through descriptive statistics (with a heavy emphasis on using R for such analyses), elementary probability, diagnostic testing, combinatorics, random variables, elementary distribution theory, statistical inference, and statistical modeling. The inference portion of the course will focus on building and applying hypothesis tests and confidence intervals for population means, proportions, variances, and correlations. Nonparametric alternatives will also be introduced. The modeling portion of the course will include ANOVA, and simple and multiple regression and their respective computational methods. Students will be introduced to the R statistical computing environment. PREREQUISITES: MTH 150 or MTH 150A; AND MTH 142 or MTH 161 or MTH 171 WAITLIST: If registration is full, submit your info to our Fall 2020 waitlist at: https://forms.gle/yc8u4rs5raBoeW2V7


CSC 172
Eustrat Zhupa
TR 2:00PM  3:15PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 172
Eustrat Zhupa
TR 2:00PM  3:15PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 242
George Ferguson
TR 3:25PM  4:40PM


Introduces fundamental principles and techniques from Artificial Intelligence, including heuristic search, automated reasoning, handling uncertainty, and machine learning, to prepare students for advanced AI courses. This course is available to majors only during the registration period.


CSC 170
Robert Kostin
TR 3:25PM  4:40PM


An introduction to the World Wide Web and related technologies. Topics include HTML5 and CSS3, Progressive Enhancement, and Web page design. Emphasis is placed on fundamentals, industry standards and best practices. Additional topics include: web site construction techniques, mobile design issues, and Search Engine Optimization (SEO). Programming with JavaScript will be introduced.


CSC 172
Eustrat Zhupa
TR 3:25PM  4:40PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required. Prerequisites: CSC 171 or equivalent, MTH 150.


CSC 210
–
TR 3:25PM  4:40PM


The World Wide Web was born around 1990, so it is not much older than most of you. In this course, we will follow the growth of the Web from its toddler years, to early childhood, to its turbulent preteen and teenage years, and finally as it begins to mature as a young adult. Along this journey, you will learn influential Web technologies such as HTTP, HTML, JavaScript, CSS, the LAMP stack, XML, JSON, Ajax, WebSockets, and modern MVC frameworks. Even though you will be doing a lot of programming in this course, its purpose is not to teach you to become an expert in any particular language or framework. Web technologies change at a blistering pace, so specifics quickly get outdated. However, once you take this course and understand the fundamentals, you will be able to easily pick up new technologies on the fly. *No audits will be allowed for this course.


CSC 229
Robert Jacobs
TR 3:25PM  4:40PM


Blank Description


CSC 108
Rolando Raqueno
TR 4:50PM  6:05PM


An introduction to computer applications in business and graphic design. Students will begin by learning the basics and some advanced functions of Microsoft Word, Excel, and Powerpoint. The class then progresses through the Adobe graphic design applications Photoshop, After Effects, and Flash. In learning these applications, students are introduced to topics such as computer graphics, file compression, and animation. Not open to officially declared CSC majors.


CSC 214
Arthur Roolfs
TR 6:15PM  7:30PM


Coursework covers user interface designs and functional algorithms for mobile devices (iOS fall, Android spring) and unique user interactions using multitouch technologies. Objectoriented design using modelviewcontroller paradigm, memory management. Other topics include: objectoriented database API, animation, multithreading and performance considerations


CSC 171
Adam Purtee
TR 6:15PM  7:30PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 108
Rolando Raqueno
TR 6:15PM  7:30PM


An introduction to computer applications in business and graphic design. Students will begin by learning the basics and some advanced functions of Microsoft Word, Excel, and Powerpoint. The class then progresses through the Adobe graphic design applications Photoshop, After Effects, and Flash. In learning these applications, students are introduced to topics such as computer graphics, file compression, and animation. Not open to officially declared CSC majors.


Wednesday  
CSC 254
Michael Scott
W 3:25PM  4:40PM


Design and implementation of programming languages, with an emphasis on imperative languages and on implementation tradeoffs. Indepth examination of 'how programming languages work.' Topics include fundamental language concepts (names, values, types, abstraction, control flow); compilation and interpretation (syntactic and semantic analysis, code generation and optimization); major language paradigms (imperative, objectoriented, functional, logicbased, concurrent). Course projects include assignments in several different languages, with an emphasis on compilation issues.


CSC 171
Adam Purtee
W 3:25PM  4:40PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 161
Richard Sarkis
W 3:25PM  4:40PM


Handson introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as objectoriented programming and graphics. Recommended for nonmajors, and/or students with less math and science background. Lab and workshop required.


CSC 280
Eustrat Zhupa
W 4:50PM  6:05PM


This course studies fundamental computer models and their computational limitations. Finitestate machines and pumping lemmas, the contextfree languages, Turing machines, decidable and Turingrecognizable languages, undecidability. Prerequisites include CSC 173 and MTH 150.


CSC 172
Eustrat Zhupa
W 4:50PM  6:05PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 254
Michael Scott
W 4:50PM  6:05PM


Design and implementation of programming languages, with an emphasis on imperative languages and on implementation tradeoffs. Indepth examination of 'how programming languages work.' Topics include fundamental language concepts (names, values, types, abstraction, control flow); compilation and interpretation (syntactic and semantic analysis, code generation and optimization); major language paradigms (imperative, objectoriented, functional, logicbased, concurrent). Course projects include assignments in several different languages, with an emphasis on compilation issues.


CSC 254
Michael Scott
W 4:50PM  6:05PM


Design and implementation of programming languages, with an emphasis on imperative languages and on implementation tradeoffs. Indepth examination of 'how programming languages work.' Topics include fundamental language concepts (names, values, types, abstraction, control flow); compilation and interpretation (syntactic and semantic analysis, code generation and optimization); major language paradigms (imperative, objectoriented, functional, logicbased, concurrent). Course projects include assignments in several different languages, with an emphasis on compilation issues.


CSC 282
Daniel Stefankovic
W 6:15PM  7:30PM


How does one design programs and ascertain their efficiency? Divideandconquer techniques, string processing, graph algorithms, mathematical algorithms. Advanced data structures such as balanced tree schemes. Introduction to NPcompleteness and intractable combinatorial search, optimization, and decision problems.


CSC 280
Eustrat Zhupa
W 6:15PM  7:30PM


This course studies fundamental computer models and their computational limitations. Finitestate machines and pumping lemmas, the contextfree languages, Turing machines, decidable and Turingrecognizable languages, undecidability. Prerequisites are CSC 173 and MTH 150.


CSC 280
Eustrat Zhupa
W 6:15PM  7:30PM


This course studies fundamental computer models and their computational limitations. Finitestate machines and pumping lemmas, the contextfree languages, Turing machines, decidable and Turingrecognizable languages, undecidability. Prerequisites include CSC 173 and MTH 150


CSC 254
Michael Scott
W 6:15PM  7:30PM


Design and implementation of programming languages, with an emphasis on imperative languages and on implementation tradeoffs. Indepth examination of 'how programming languages work.' Topics include fundamental language concepts (names, values, types, abstraction, control flow); compilation and interpretation (syntactic and semantic analysis, code generation and optimization); major language paradigms (imperative, objectoriented, functional, logicbased, concurrent). Course projects include assignments in several different languages, with an emphasis on compilation issues.


CSC 254
Michael Scott
W 6:15PM  7:30PM


Design and implementation of programming languages, with an emphasis on imperative languages and on implementation tradeoffs. Indepth examination of 'how programming languages work.' Topics include fundamental language concepts (names, values, types, abstraction, control flow); compilation and interpretation (syntactic and semantic analysis, code generation and optimization); major language paradigms (imperative, objectoriented, functional, logicbased, concurrent). Course projects include assignments in several different languages, with an emphasis on compilation issues.


CSC 171
Adam Purtee
W 6:15PM  7:30PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 171
Adam Purtee
W 6:15PM  7:30PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 161
Richard Sarkis
W 6:15PM  7:30PM


Handson introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as objectoriented programming and graphics. Recommended for nonmajors, and/or students with less math and science background. Lab and workshop required.


CSC 172
Eustrat Zhupa
W 7:40PM  8:55PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 172
Eustrat Zhupa
W 7:40PM  8:55PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 172
Eustrat Zhupa
W 7:40PM  8:55PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 171
Adam Purtee
W 7:40PM  8:55PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


CSC 282
Daniel Stefankovic
W 7:40PM  8:55PM


How does one design programs and ascertain their efficiency? Divideandconquer techniques, string processing, graph algorithms, mathematical algorithms. Advanced data structures such as balanced tree schemes. Introduction to NPcompleteness and intractable combinatorial search, optimization, and decision problems.


CSC 161
Richard Sarkis
W 7:40PM  10:55PM


Handson introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as objectoriented programming and graphics. Recommended for nonmajors, and/or students with less math and science background. Lab and workshop required.


Wednesday and Friday  
CSC 275
Randal Nelson
WF 10:25AM  11:40AM


Quick! How much would a tunnel under Lake Ontario cost? How many people probably touched that orange you just bought at Wegmans? Can the military's satellites really read your license plate from orbit? Explores the creative use computational mechanisms and information sources to obtain rough estimates and feasibility analyses for interesting questions practical problems, and looks at the technological basis of the art of measurement.


CSC 175
Randal Nelson
WF 10:25AM  11:40AM


Quick! How much would a tunnel under Lake Ontario cost? How many people probably touched that orange you just bought at Wegmans? Can the military's satellites really read your license plate from orbit? Explores the creative use computational mechanisms and information sources to obtain rough estimates and feasibility analyses for interesting questions practical problems, and looks at the technological basis of the art of measurement.


CSC 292
Yuhao Zhu
WF 11:50AM  1:05PM


This class studies both classic and emerging topics in mobile visual computing through paper critiquing, inclass presentations, and the fun "wild and crazy" paper writing. The nature of mobile computing casts two important implications of this course. First, the course will necessarily span many important layers of a computer system, including application development, programming language and framework, compiler, OS, and hardware architecture; we will also touch traditionally noncomputing domains such as sensing and optics that are critical to visual applications. Second, the course material will be driven by key domains and usecases of mobile visual computing, such as realtime computer vision, Augmented/Virtual Reality, computational photography/imaging, etc.


CSC 171
Adam Purtee
WF 12:30PM  1:45PM


Handson introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.


Thursday  
CSC 273W
Joseph Loporcaro
R 2:00PM  3:15PM


In this course, students prepare, critique, and discuss written materials relevant to Computer Science. Will count as one of the two upper level writing requirements for Computer Science majors. If the course is closed, DO NOT email the professor.


CSC 161
Richard Sarkis
R 2:00PM  3:15PM


Handson introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as objectoriented programming and graphics. Recommended for nonmajors, and/or students with less math and science background. Lab and workshop required.


CSC 172
Eustrat Zhupa
R 2:00PM  3:15PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 280
Eustrat Zhupa
R 3:25PM  4:40PM


This course studies fundamental computer models and their computational limitations. Finitestate machines and pumping lemmas, the contextfree languages, Turing machines, decidable and Turingrecognizable languages, undecidability. Prerequisites are CSC 173 and MTH 150.


CSC 254
Michael Scott
R 3:25PM  4:40PM


Design and implementation of programming languages, with an emphasis on imperative languages and on implementation tradeoffs. Indepth examination of 'how programming languages work.' Topics include fundamental language concepts (names, values, types, abstraction, control flow); compilation and interpretation (syntactic and semantic analysis, code generation and optimization); major language paradigms (imperative, objectoriented, functional, logicbased, concurrent). Course projects include assignments in several different languages, with an emphasis on compilation issues.


CSC 280
Eustrat Zhupa
R 4:50PM  6:05PM


This course studies fundamental computer models and their computational limitations. Finitestate machines and pumping lemmas, the contextfree languages, Turing machines, decidable and Turingrecognizable languages, undecidability. Prerequisites are CSC 173 and MTH 150


CSC 172
Eustrat Zhupa
R 4:50PM  6:05PM


Abstract data types (e.g., sets, mappings, and graphs) and their implementation as concrete data structures in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab and workshop required.


CSC 280
Eustrat Zhupa
R 4:50PM  6:05PM


This course studies fundamental computer models and their computational limitations. Finitestate machines and pumping lemmas, the contextfree languages, Turing machines, decidable and Turingrecognizable languages, undecidability. Prerequisites include CSC 173 and MTH 150.


CSC 161
Richard Sarkis
R 4:50PM  6:05PM


Handson introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as objectoriented programming and graphics. Recommended for nonmajors, and/or students with less math and science background. Lab and workshop required.


CSC 280
Eustrat Zhupa
R 6:15PM  7:30PM


This course studies fundamental computer models and their computational limitations. Finitestate machines and pumping lemmas, the contextfree languages, Turing machines, decidable and Turingrecognizable languages, undecidability. Prerequisites are CSC 173 and MTH 150.


CSC 254
Michael Scott
R 6:15PM  7:30PM


Design and implementation of programming languages, with an emphasis on imperative languages and on implementation tradeoffs. Indepth examination of 'how programming languages work.' Topics include fundamental language concepts (names, values, types, abstraction, control flow); compilation and interpretation (syntactic and semantic analysis, code generation and optimization); major language paradigms (imperative, objectoriented, functional, logicbased, concurrent). Course projects include assignments in several different languages, with an emphasis on compilation issues.


CSC 254
Michael Scott
R 6:15PM  7:30PM


Design and implementation of programming languages, with an emphasis on imperative languages and on implementation tradeoffs. Indepth examination of 'how programming languages work.' Topics include fundamental language concepts (names, values, types, abstraction, control flow); compilation and interpretation (syntactic and semantic analysis, code generation and optimization); major language paradigms (imperative, objectoriented, functional, logicbased, concurrent). Course projects include assignments in several different languages, with an emphasis on compilation issues.


CSC 254
Michael Scott
R 7:40PM  8:55PM


Design and implementation of programming languages, with an emphasis on imperative languages and on implementation tradeoffs. Indepth examination of 'how programming languages work.' Topics include fundamental language concepts (names, values, types, abstraction, control flow); compilation and interpretation (syntactic and semantic analysis, code generation and optimization); major language paradigms (imperative, objectoriented, functional, logicbased, concurrent). Course projects include assignments in several different languages, with an emphasis on compilation issues.


CSC 161
Richard Sarkis
R 7:40PM  8:55PM


Handson introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as objectoriented programming and graphics. Recommended for nonmajors, and/or students with less math and science background. Lab and workshop required.
