Undergraduate Program
Term Schedule
Fall 2021
Number | Title | Instructor | Time |
---|
CSC 1000-1
Daniel Gildea
|
Graduate teaching assistantship in Computer Science.
|
CSC 1001-1
Daniel Gildea
|
Graduate research assistantship in Computer Science.
|
CSC 131-1
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.
|
CSC 161-1
Richard Sarkis
MW 4:50PM - 6:05PM
|
Hands-on introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming and graphics. Recommended for non-majors, and/or students with less math and science background. Lab and workshop required.
|
CSC 161-10
Richard Sarkis
R 2:00PM - 3:15PM
|
Hands-on introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming and graphics. Recommended for non-majors, and/or students with less math and science background. Lab and workshop required.
|
CSC 161-11
Richard Sarkis
R 4:50PM - 6:05PM
|
Hands-on introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming and graphics. Recommended for non-majors, and/or students with less math and science background. Lab and workshop required.
|
CSC 161-12
Richard Sarkis
R 7:40PM - 8:55PM
|
Hands-on introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming and graphics. Recommended for non-majors, and/or students with less math and science background. Lab and workshop required.
|
CSC 161-13
Richard Sarkis
T 3:25PM - 4:40PM
|
Hands-on introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming and graphics. Recommended for non-majors, and/or students with less math and science background. Lab and workshop required.
|
CSC 161-14
Richard Sarkis
T 6:15PM - 7:30PM
|
Hands-on introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming and graphics. Recommended for non-majors, and/or students with less math and science background. Lab and workshop required.
|
CSC 161-15
Richard Sarkis
TR 12:30PM - 1:45PM
|
Hands-on introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming and graphics. Recommended for non-majors, and/or students with less math and science background. Lab and workshop required.
|
CSC 161-16
Richard Sarkis
W 3:25PM - 4:40PM
|
Hands-on introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming and graphics. Recommended for non-majors, and/or students with less math and science background. Lab and workshop required.
|
CSC 161-17
Richard Sarkis
W 6:15PM - 7:30PM
|
Hands-on introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming and graphics. Recommended for non-majors, and/or students with less math and science background. Lab and workshop required.
|
CSC 161-18
Richard Sarkis
TR 4:50PM - 6:05PM
|
Hands-on introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming and graphics. Recommended for non-majors, and/or students with less math and science background. Lab and workshop required.
|
CSC 161-19
Richard Sarkis
MW 3:25PM - 4:40PM
|
Hands-on introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming and graphics. Recommended for non-majors, and/or students with less math and science background. Lab and workshop required.
|
CSC 161-2
Richard Sarkis
W 7:40PM - 8:55PM
|
Hands-on introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming and graphics. Recommended for non-majors, and/or students with less math and science background. Lab and workshop required.
|
CSC 161-20
Richard Sarkis
W 10:25AM - 11:40AM
|
Hands-on introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming and graphics. Recommended for non-majors, and/or students with less math and science background. Lab and workshop required.
|
CSC 161-21
Richard Sarkis
R 9:40AM - 10:55AM
|
Hands-on introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming and graphics. Recommended for non-majors, and/or students with less math and science background. Lab and workshop required.
|
CSC 161-22
Richard Sarkis
T 9:40AM - 10:55AM
|
Hands-on introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming and graphics. Recommended for non-majors, and/or students with less math and science background. Lab and workshop required.
|
CSC 161-23
Richard Sarkis
W 2:00PM - 3:15PM
|
Hands-on introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming and graphics. Recommended for non-majors, and/or students with less math and science background. Lab and workshop required.
|
CSC 161-3
Richard Sarkis
U 1:30PM - 3:00PM
|
Hands-on introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming and graphics. Recommended for non-majors, and/or students with less math and science background. Lab and workshop required.
|
CSC 161-4
Richard Sarkis
U 7:30PM - 9:30PM
|
Hands-on introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming and graphics. Recommended for non-majors, and/or students with less math and science background. Lab and workshop required.
|
CSC 161-5
Richard Sarkis
M 10:25AM - 11:40AM
|
Hands-on introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming and graphics. Recommended for non-majors, and/or students with less math and science background. Lab and workshop required.
|
CSC 161-6
Richard Sarkis
M 6:15PM - 7:30PM
|
Hands-on introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming and graphics. Recommended for non-majors, and/or students with less math and science background. Lab and workshop required.
|
CSC 161-7
Richard Sarkis
M 7:40PM - 8:55PM
|
Hands-on introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming and graphics. Recommended for non-majors, and/or students with less math and science background. Lab and workshop required.
|
CSC 161-8
Richard Sarkis
MW 12:30PM - 1:45PM
|
Hands-on introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming and graphics. Recommended for non-majors, and/or students with less math and science background. Lab and workshop required.
|
CSC 161-9
Richard Sarkis
MW 6:15PM - 7:30PM
|
Hands-on introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming and graphics. Recommended for non-majors, and/or students with less math and science background. Lab and workshop required.
|
CSC 170-1
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-2
Robert Kostin
MW 10:25AM - 11:40AM
|
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-3
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 171-1
Adam Purtee
MW 10:25AM - 11:40AM
|
Hands-on 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-10
Adam Purtee
M 7:40PM - 8:55PM
|
Hands-on 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-11
Adam Purtee
M 7:40PM - 8:55PM
|
Hands-on 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-13
Adam Purtee
MW 2:00PM - 3:15PM
|
Hands-on 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-14
Adam Purtee
T 3:25PM - 4:40PM
|
Hands-on 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-15
Adam Purtee
T 4:50PM - 6:05PM
|
Hands-on 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-16
Adam Purtee
T 6:15PM - 7:30PM
|
Hands-on 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-17
Adam Purtee
T 7:40PM - 8:55PM
|
Hands-on 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-19
Adam Purtee
T 7:40PM - 8:55PM
|
Hands-on 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-20
Adam Purtee
TR 7:40PM - 8:55PM
|
Hands-on 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-21
Adam Purtee
TR 9:40AM - 10:55AM
|
Hands-on 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-22
Adam Purtee
TR 11:05AM - 12:20PM
|
Hands-on 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-23
Adam Purtee
TR 6:15PM - 7:30PM
|
Hands-on 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-24
Adam Purtee
W 3:25PM - 4:40PM
|
Hands-on 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-25
Adam Purtee
W 6:15PM - 7:30PM
|
Hands-on 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-27
Adam Purtee
W 7:40PM - 8:55PM
|
Hands-on 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-28
Adam Purtee
WF 12:30PM - 1:45PM
|
Hands-on 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-4
Adam Purtee
M 3:25PM - 4:40PM
|
Hands-on 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-5
Adam Purtee
M 3:25PM - 4:40PM
|
Hands-on 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-6
Adam Purtee
M 4:50PM - 6:05PM
|
Hands-on 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-7
Adam Purtee
M 6:15PM - 7:30PM
|
Hands-on 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-1
Thaddeus Pawlicki
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-10
Thaddeus Pawlicki
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-11
Thaddeus Pawlicki
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-12
Thaddeus Pawlicki
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-13
Thaddeus Pawlicki
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-14
Thaddeus Pawlicki
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-15
Thaddeus Pawlicki
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-16
Thaddeus Pawlicki
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-17
Thaddeus Pawlicki
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-18
Thaddeus Pawlicki
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 172-19
Thaddeus Pawlicki
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-2
Thaddeus Pawlicki
U 1:30PM - 3:00PM
|
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-20
Thaddeus Pawlicki
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-21
Thaddeus Pawlicki
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-22
Thaddeus Pawlicki
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-24
Thaddeus Pawlicki
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-25
Thaddeus Pawlicki
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-26
Thaddeus Pawlicki
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-27
Thaddeus Pawlicki
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-28
Thaddeus Pawlicki
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-29
Thaddeus Pawlicki
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-3
Thaddeus Pawlicki
U 7:30PM - 9: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-30
Thaddeus Pawlicki
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-4
Thaddeus Pawlicki
|
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-5
Thaddeus Pawlicki
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-6
Thaddeus Pawlicki
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-7
Thaddeus Pawlicki
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-8
Thaddeus Pawlicki
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-9
Thaddeus Pawlicki
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 173-1
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. Prerequisites: CSC 172 and MTH 150.
|
CSC 210-1
Robert Kostin
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 pre-teen 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. Prerequisites: CSC 172
|
CSC 214-1
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 multi-touch technologies. Object-oriented design using model-view-controller paradigm, memory management. Other topics include: object-oriented database API, animation, multi-threading and performance considerations. Prerequisites: CSC 172
|
CSC 216-1
Zhen Bai
TR 3:25PM - 4:40PM
|
Human activity is embodied through all our sensorimotor capacities, immersed in our immediate physical, social & cultural surroundings. Interaction technologies such as Augmented Reality (AR) & Virtual Reality (VR) have shown vast potential to enhance the way we think, feel & behave by superimposing/substituting digital contents onto/with our reality. This course is an introduction to AR,VR & related technologies, aiming to help students build a frame of reference of those technologies, apply them in design practices that address real-world problems, & actively reflect on social implications. CSC 172 and CSC 214 required (or proven equivalent application development experience); CSC 186 recommended.
|
CSC 229-1
Robert Jacobs
TR 3:25PM - 4:40PM
|
How can computer models help us understand how people perceive and reason about their environments? This course addresses this question, with emphasis placed on how people use probabilistic reasoning in order to represent and manage ambiguity and uncertainty for the purpose of making intelligent decisions. The course is relevant to students with interests in computational studies of human perception and cognition, and to students with interests in artificial intelligence. Homework assignments will require students to write computer programs using the Python programming language. Prerequisites: MATH 161, MATH 162, and CSC 161 (or equivalent proficiency in Python programming) required. MATH 164, MATH 165, and/or STAT 213 are helpful but not required.
|
CSC 240-1
Jiebo Luo
TR 3:25PM - 4:40PM
|
Fundamental concepts and techniques of data mining, including data attributes, data visualization, data pre-processing, 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 graduate-level course, requires additional readings and a course project. Prerequisites will be strictly enforced: CSC171, CSC 172 and MTH 161. Recommended: CSC 242 or CSC262; MTH165.
|
CSC 242-1
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. Prerequisites: CSC 172 and MTH 150; CSC 173 STRONGLY Recommended.
|
CSC 244-1
Lenhart Schubert
TR 9:40AM - 10:55AM
|
Representing knowledge and implementing reasoning and goal-directed planning in a computer, using first-order logic as well as specialized and uncertain methods.
|
CSC 248-1
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 speech-driven 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. Prerequisites: CSC 172 and CSC 242.
|
CSC 252-1
Alan Beadle
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/O buses, 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. Prerequisites: MTH 150 and CSC 172
|
CSC 253-1
Chen Ding
MW 3:25PM - 4:40PM
|
Modern software is complex and more than a single person can fully comprehend. This course teaches collaborative programming which is multi-person construction of software where each person's contribution is non-trivial and clearly defined and documented. The material to study includes design principles, safe and modular programming in modern programming languages including Rust, software teams and development processes, design patterns, and productivity tools. The assignments include collaborative programming and software design and development in teams. Students in CSC 453 and TCS 453 have additional reading and requirements. Prerequisites: CSC 172 or equivalent for CSC 253. CSC 172 and CSC 252 or equivalent for CSC 453 and TCS 453.
|
CSC 254-1
Michael Scott
MW 10:25AM - 11:40AM
|
Design and implementation of programming languages, with an emphasis on imperative languages and on implementation tradeoffs. In-depth 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, object-oriented, functional, logic-based, 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-10
Michael Scott
W 6:15PM - 7:30PM
|
Design and implementation of programming languages, with an emphasis on imperative languages and on implementation tradeoffs. In-depth 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, object-oriented, functional, logic-based, concurrent). Course projects include assignments in several different languages, with an emphasis on compilation issues.
|
CSC 254-11
Michael Scott
W 6:15PM - 7:30PM
|
Design and implementation of programming languages, with an emphasis on imperative languages and on implementation tradeoffs. In-depth 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, object-oriented, functional, logic-based, concurrent). Course projects include assignments in several different languages, with an emphasis on compilation issues.
|
CSC 254-2
Michael Scott
U 1:30PM - 3:00PM
|
Design and implementation of programming languages, with an emphasis on imperative languages and on implementation tradeoffs. In-depth 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, object-oriented, functional, logic-based, concurrent). Course projects include assignments in several different languages, with an emphasis on compilation issues.
|
CSC 254-3
Michael Scott
R 3:25PM - 4:40PM
|
Design and implementation of programming languages, with an emphasis on imperative languages and on implementation tradeoffs. In-depth 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, object-oriented, functional, logic-based, concurrent). Course projects include assignments in several different languages, with an emphasis on compilation issues.
|
CSC 254-4
Michael Scott
R 6:15PM - 7:30PM
|
Design and implementation of programming languages, with an emphasis on imperative languages and on implementation tradeoffs. In-depth 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, object-oriented, functional, logic-based, concurrent). Course projects include assignments in several different languages, with an emphasis on compilation issues.
|
CSC 254-5
Michael Scott
R 6:15PM - 7:30PM
|
Design and implementation of programming languages, with an emphasis on imperative languages and on implementation tradeoffs. In-depth 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, object-oriented, functional, logic-based, concurrent). Course projects include assignments in several different languages, with an emphasis on compilation issues.
|
CSC 254-6
Michael Scott
R 7:40PM - 8:55PM
|
Design and implementation of programming languages, with an emphasis on imperative languages and on implementation tradeoffs. In-depth 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, object-oriented, functional, logic-based, concurrent). Course projects include assignments in several different languages, with an emphasis on compilation issues.
|
CSC 254-7
Michael Scott
W 3:25PM - 4:40PM
|
Design and implementation of programming languages, with an emphasis on imperative languages and on implementation tradeoffs. In-depth 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, object-oriented, functional, logic-based, concurrent). Course projects include assignments in several different languages, with an emphasis on compilation issues.
|
CSC 254-8
Michael Scott
W 4:50PM - 6:05PM
|
Design and implementation of programming languages, with an emphasis on imperative languages and on implementation tradeoffs. In-depth 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, object-oriented, functional, logic-based, concurrent). Course projects include assignments in several different languages, with an emphasis on compilation issues.
|
CSC 254-9
Michael Scott
W 4:50PM - 6:05PM
|
Design and implementation of programming languages, with an emphasis on imperative languages and on implementation tradeoffs. In-depth 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, object-oriented, functional, logic-based, concurrent). Course projects include assignments in several different languages, with an emphasis on compilation issues.
|
CSC 256-1
John Criswell
TR 2:00PM - 3:15PM
|
Principles of operating system design, explored within the practical context of traditional, embedded, distributed, and real-time 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 graduate-level course, requires additional readings and assignments. Prerequisites: CSC 252 or ECE 200.
|
CSC 257-1
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. Store-and-forward 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. Prerequisites: CSC 252
|
CSC 260-1
Ehsan Hoque
R 2:00PM - 4:40PM
|
We currently add 51 billion tons of greenhouse gases to the atmosphere every year. We need to get it down to zero to stop the warming and avoid a cloud disaster. How? In this class, we will discuss and explore the role of technology to bring innovative breakthroughs to combat this unique challenge. Examples include the use of machine learning techniques to better predict climate, visualizing the effects of extreme weather to create awareness, monitoring the emission of carbon with satellite imagery. The lectures will consist of discussions, reading papers, guest lecturers, and a final project. Prerequisite: CSC 242.
|
CSC 261-1
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 semester-long group project. Prerequisites: CSC 172; CSC 173 and CSC 252 recommended.
|
CSC 262-1
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. Non-parametric 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
|
CSC 264-1
Andrea Cogliati
TR 12:30PM - 1:45PM
|
This course is cross-listed with ECE477. Please refer to ECE 477 for the course description.
|
CSC 273W-1
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-2
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.
|
CSC 280-1
Eustrat Zhupa
MW 2:00PM - 3:15PM
|
This course studies fundamental computer models and their computational limitations. Finite-state machines and pumping lemmas, the context-free languages, Turing machines, decidable and Turing-recognizable languages, undecidability. Prerequisites include CSC 173 and MTH 150.
|
CSC 280-10
Eustrat Zhupa
R 3:25PM - 4:15PM
|
This course studies fundamental computer models and their computational limitations. Finite-state machines and pumping lemmas, the context-free languages, Turing machines, decidable and Turing-recognizable languages, undecidability.
|
CSC 280-2
Eustrat Zhupa
W 4:50PM - 6:05PM
|
This course studies fundamental computer models and their computational limitations. Finite-state machines and pumping lemmas, the context-free languages, Turing machines, decidable and Turing-recognizable languages, undecidability.
|
CSC 280-3
Eustrat Zhupa
M 4:50PM - 6:05PM
|
This course studies fundamental computer models and their computational limitations. Finite-state machines and pumping lemmas, the context-free languages, Turing machines, decidable and Turing-recognizable languages, undecidability.
|
CSC 280-4
Eustrat Zhupa
W 6:15PM - 7:30PM
|
This course studies fundamental computer models and their computational limitations. Finite-state machines and pumping lemmas, the context-free languages, Turing machines, decidable and Turing-recognizable languages, undecidability.
|
CSC 280-5
Eustrat Zhupa
R 4:50PM - 6:05PM
|
This course studies fundamental computer models and their computational limitations. Finite-state machines and pumping lemmas, the context-free languages, Turing machines, decidable and Turing-recognizable languages, undecidability.
|
CSC 280-6
Eustrat Zhupa
R 6:15PM - 7:30PM
|
This course studies fundamental computer models and their computational limitations. Finite-state machines and pumping lemmas, the context-free languages, Turing machines, decidable and Turing-recognizable languages, undecidability.
|
CSC 280-7
Eustrat Zhupa
T 6:15PM - 7:30PM
|
This course studies fundamental computer models and their computational limitations. Finite-state machines and pumping lemmas, the context-free languages, Turing machines, decidable and Turing-recognizable languages, undecidability.
|
CSC 280-8
Eustrat Zhupa
W 6:15PM - 7:30PM
|
This course studies fundamental computer models and their computational limitations. Finite-state machines and pumping lemmas, the context-free languages, Turing machines, decidable and Turing-recognizable languages, undecidability.
|
CSC 280-9
Eustrat Zhupa
R 4:50PM - 6:05PM
|
This course studies fundamental computer models and their computational limitations. Finite-state machines and pumping lemmas, the context-free languages, Turing machines, decidable and Turing-recognizable languages, undecidability.
|
CSC 282-1
Daniel Stefankovic
TR 11:05AM - 12:20PM
|
How does one design programs and ascertain their efficiency? Greedy algorithms, dynamic programming, divide-and-conquer techniques, string processing, graph algorithms, mathematical algorithms. Introduction to NP-completeness and linear programming. Students taking this course at the 400 level may be required to complete additional tests, readings or assignments.Prerequisites: (CSC 172 and MTH 150) or MTH172.
|
CSC 282-2
Daniel Stefankovic
T 6:15PM - 7:30PM
|
How does one design programs and ascertain their efficiency? Greedy algorithms, dynamic programming, divide-and-conquer techniques, string processing, graph algorithms, mathematical algorithms. Introduction to NP-completeness and linear programming. Students taking this course at the 400 level may be required to complete additional tests, readings or assignments.
|
CSC 282-3
Daniel Stefankovic
W 6:15PM - 7:30PM
|
How does one design programs and ascertain their efficiency? Divide-and-conquer techniques, string processing, graph algorithms, mathematical algorithms. Advanced data structures such as balanced tree schemes. Introduction to NP-completeness and intractable combinatorial search, optimization, and decision problems.
|
CSC 282-4
Daniel Stefankovic
M 6:15PM - 7:30PM
|
How does one design programs and ascertain their efficiency? Greedy algorithms, dynamic programming, divide-and-conquer techniques, string processing, graph algorithms, mathematical algorithms. Introduction to NP-completeness and linear programming. Students taking this course at the 400 level may be required to complete additional tests, readings or assignments.
|
CSC 282-5
Daniel Stefankovic
W 7:40PM - 8:55PM
|
How does one design programs and ascertain their efficiency? Greedy algorithms, dynamic programming, divide-and-conquer techniques, string processing, graph algorithms, mathematical algorithms. Introduction to NP-completeness and linear programming. Students taking this course at the 400 level may be required to complete additional tests, readings or assignments.
|
CSC 284-1
Daniel Stefankovic
TR 12:30PM - 1:45PM
|
Advanced study of design and analysis of algorithms. Topics typically include: combinatorial optimization, computational geometry, number-theoretic algorithms, probabilistic analysis and randomized algorithms, string algorithms, streaming algorithms. Students taking this course at the 400 level may be required to complete additional tests, readings or assignments.
|
CSC 292-1
Yuhao Zhu
WF 11:50AM - 1:05PM
|
How does a camera capture visually pleasing pictures? How does a computer magically recognize objects from an image? Why do some pixels look corrupted when playing a video? How does Virtual Reality provide a 360 immersive experience to you? How does a display work? How to render photorealistic graphics and why is it hard to do so in real-time on a mobile device? How does a robot/drone/self-driving car localize itself? These are a small subset of the questions we will explore in CSC 572/292. In this class, we will first study the fundamental building blocks of visual computing, including digital camera imaging, computer graphics, image/video compression, display technologies, and computer vision. We will then explore application domains that build on top of these fundamental building blocks such as AR/VR, computational photography, robotics, and self-driving cars. The course will necessarily span many scientific and engineering domains such as color science, neuroscience, optics, electrical engineering, and computer science. While there is no formal prerequisite, students will find their learning experience much more pleasant if they have basic knowledge in linear algebra, probability and random process, calculus, and high school-level physics. The course website for the previous iteration of this course provides the scope and the structure of the course as well as other useful information: https://www.cs.rochester.edu/courses/572/fall2020/index.html.
|
CSC 298-1
Chenliang Xu
TR 9:40AM - 10:55AM
|
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 state-of-the-art 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. Audits require instructor permission.
|
CSC 299-1
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 anti-social behavior; major disruptions in the job market; and the large-scale concentration of risk into systems capable of catastrophic failure. In this discussion- and writing-oriented 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 299W-1
Joseph Loporcaro
MW 3:25PM - 4:40PM
|
Blank Description
|
CSC 390-3
Eustrat Zhupa
|
Blank Description
|
CSC 391-1
|
Registration for Independent Study courses needs to be completed thru the instructions for online independent study registration.
|
CSC 391H-1
|
Registration for Independent Study courses needs to be completed thru the instructions for online independent study registration.
|
CSC 391W-1
|
Registration for Independent Study courses needs to be completed thru the instructions for online independent study registration.
|
CSC 392-1
|
Registration for Independent Study courses needs to be completed thru the instructions for online independent study registration.
|
CSC 395-1
|
Registration for Independent Study courses needs to be completed thru the instructions for online independent study registration.
|
CSC 395W-1
|
Registration for Independent Study courses needs to be completed thru the instructions for online independent study registration.
|
Fall 2021
Number | Title | Instructor | Time |
---|---|
Monday | |
CSC 161-5
Richard Sarkis
M 10:25AM - 11:40AM
|
|
Hands-on introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming and graphics. Recommended for non-majors, and/or students with less math and science background. Lab and workshop required.
|
|
CSC 171-5
Adam Purtee
M 3:25PM - 4:40PM
|
|
Hands-on 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-5
Thaddeus Pawlicki
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-4
Adam Purtee
M 3:25PM - 4:40PM
|
|
Hands-on 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 280-3
Eustrat Zhupa
M 4:50PM - 6:05PM
|
|
This course studies fundamental computer models and their computational limitations. Finite-state machines and pumping lemmas, the context-free languages, Turing machines, decidable and Turing-recognizable languages, undecidability.
|
|
CSC 172-6
Thaddeus Pawlicki
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 171-6
Adam Purtee
M 4:50PM - 6:05PM
|
|
Hands-on 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-7
Adam Purtee
M 6:15PM - 7:30PM
|
|
Hands-on 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-6
Richard Sarkis
M 6:15PM - 7:30PM
|
|
Hands-on introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming and graphics. Recommended for non-majors, and/or students with less math and science background. Lab and workshop required.
|
|
CSC 172-7
Thaddeus Pawlicki
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-8
Thaddeus Pawlicki
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 282-4
Daniel Stefankovic
M 6:15PM - 7:30PM
|
|
How does one design programs and ascertain their efficiency? Greedy algorithms, dynamic programming, divide-and-conquer techniques, string processing, graph algorithms, mathematical algorithms. Introduction to NP-completeness and linear programming. Students taking this course at the 400 level may be required to complete additional tests, readings or assignments.
|
|
CSC 172-11
Thaddeus Pawlicki
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-11
Adam Purtee
M 7:40PM - 8:55PM
|
|
Hands-on 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-10
Adam Purtee
M 7:40PM - 8:55PM
|
|
Hands-on 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-9
Thaddeus Pawlicki
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 161-7
Richard Sarkis
M 7:40PM - 8:55PM
|
|
Hands-on introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming and graphics. Recommended for non-majors, and/or students with less math and science background. Lab and workshop required.
|
|
CSC 172-10
Thaddeus Pawlicki
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.
|
|
Monday and Wednesday | |
CSC 172-12
Thaddeus Pawlicki
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-1
Adam Purtee
MW 10:25AM - 11:40AM
|
|
Hands-on 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-2
Robert Kostin
MW 10:25AM - 11:40AM
|
|
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 254-1
Michael Scott
MW 10:25AM - 11:40AM
|
|
Design and implementation of programming languages, with an emphasis on imperative languages and on implementation tradeoffs. In-depth 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, object-oriented, functional, logic-based, concurrent). Course projects include assignments in several different languages, with an emphasis on compilation issues. Prerequisites: CSC 173 and CSC 252, or equivalent.
|
|
CSC 261-1
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 semester-long group project. Prerequisites: CSC 172; CSC 173 and CSC 252 recommended.
|
|
CSC 161-8
Richard Sarkis
MW 12:30PM - 1:45PM
|
|
Hands-on introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming and graphics. Recommended for non-majors, and/or students with less math and science background. Lab and workshop required.
|
|
CSC 170-3
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-13
Thaddeus Pawlicki
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 173-1
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. Prerequisites: CSC 172 and MTH 150.
|
|
CSC 280-1
Eustrat Zhupa
MW 2:00PM - 3:15PM
|
|
This course studies fundamental computer models and their computational limitations. Finite-state machines and pumping lemmas, the context-free languages, Turing machines, decidable and Turing-recognizable languages, undecidability. Prerequisites include CSC 173 and MTH 150.
|
|
CSC 171-13
Adam Purtee
MW 2:00PM - 3:15PM
|
|
Hands-on 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-14
Thaddeus Pawlicki
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 299W-1
Joseph Loporcaro
MW 3:25PM - 4:40PM
|
|
Blank Description
|
|
CSC 299-1
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 anti-social behavior; major disruptions in the job market; and the large-scale concentration of risk into systems capable of catastrophic failure. In this discussion- and writing-oriented 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 252-1
Alan Beadle
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/O buses, 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. Prerequisites: MTH 150 and CSC 172
|
|
CSC 253-1
Chen Ding
MW 3:25PM - 4:40PM
|
|
Modern software is complex and more than a single person can fully comprehend. This course teaches collaborative programming which is multi-person construction of software where each person's contribution is non-trivial and clearly defined and documented. The material to study includes design principles, safe and modular programming in modern programming languages including Rust, software teams and development processes, design patterns, and productivity tools. The assignments include collaborative programming and software design and development in teams. Students in CSC 453 and TCS 453 have additional reading and requirements. Prerequisites: CSC 172 or equivalent for CSC 253. CSC 172 and CSC 252 or equivalent for CSC 453 and TCS 453.
|
|
CSC 161-19
Richard Sarkis
MW 3:25PM - 4:40PM
|
|
Hands-on introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming and graphics. Recommended for non-majors, and/or students with less math and science background. Lab and workshop required.
|
|
CSC 172-15
Thaddeus Pawlicki
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 257-1
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. Store-and-forward 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. Prerequisites: CSC 252
|
|
CSC 172-17
Thaddeus Pawlicki
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-16
Thaddeus Pawlicki
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-1
Richard Sarkis
MW 4:50PM - 6:05PM
|
|
Hands-on introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming and graphics. Recommended for non-majors, and/or students with less math and science background. Lab and workshop required.
|
|
CSC 161-9
Richard Sarkis
MW 6:15PM - 7:30PM
|
|
Hands-on introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming and graphics. Recommended for non-majors, and/or students with less math and science background. Lab and workshop required.
|
|
Tuesday | |
CSC 161-22
Richard Sarkis
T 9:40AM - 10:55AM
|
|
Hands-on introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming and graphics. Recommended for non-majors, and/or students with less math and science background. Lab and workshop required.
|
|
CSC 161-13
Richard Sarkis
T 3:25PM - 4:40PM
|
|
Hands-on introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming and graphics. Recommended for non-majors, and/or students with less math and science background. Lab and workshop required.
|
|
CSC 171-14
Adam Purtee
T 3:25PM - 4:40PM
|
|
Hands-on 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-15
Adam Purtee
T 4:50PM - 6:05PM
|
|
Hands-on 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-2
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.
|
|
CSC 161-14
Richard Sarkis
T 6:15PM - 7:30PM
|
|
Hands-on introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming and graphics. Recommended for non-majors, and/or students with less math and science background. Lab and workshop required.
|
|
CSC 171-16
Adam Purtee
T 6:15PM - 7:30PM
|
|
Hands-on 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-20
Thaddeus Pawlicki
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-7
Eustrat Zhupa
T 6:15PM - 7:30PM
|
|
This course studies fundamental computer models and their computational limitations. Finite-state machines and pumping lemmas, the context-free languages, Turing machines, decidable and Turing-recognizable languages, undecidability.
|
|
CSC 282-2
Daniel Stefankovic
T 6:15PM - 7:30PM
|
|
How does one design programs and ascertain their efficiency? Greedy algorithms, dynamic programming, divide-and-conquer techniques, string processing, graph algorithms, mathematical algorithms. Introduction to NP-completeness and linear programming. Students taking this course at the 400 level may be required to complete additional tests, readings or assignments.
|
|
CSC 171-17
Adam Purtee
T 7:40PM - 8:55PM
|
|
Hands-on 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-19
Adam Purtee
T 7:40PM - 8:55PM
|
|
Hands-on 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-21
Thaddeus Pawlicki
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-22
Thaddeus Pawlicki
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 244-1
Lenhart Schubert
TR 9:40AM - 10:55AM
|
|
Representing knowledge and implementing reasoning and goal-directed planning in a computer, using first-order logic as well as specialized and uncertain methods.
|
|
CSC 171-21
Adam Purtee
TR 9:40AM - 10:55AM
|
|
Hands-on 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 298-1
Chenliang Xu
TR 9:40AM - 10:55AM
|
|
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 state-of-the-art 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. Audits require instructor permission.
|
|
CSC 282-1
Daniel Stefankovic
TR 11:05AM - 12:20PM
|
|
How does one design programs and ascertain their efficiency? Greedy algorithms, dynamic programming, divide-and-conquer techniques, string processing, graph algorithms, mathematical algorithms. Introduction to NP-completeness and linear programming. Students taking this course at the 400 level may be required to complete additional tests, readings or assignments.Prerequisites: (CSC 172 and MTH 150) or MTH172.
|
|
CSC 131-1
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.
|
|
CSC 248-1
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 speech-driven 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. Prerequisites: CSC 172 and CSC 242.
|
|
CSC 170-1
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 171-22
Adam Purtee
TR 11:05AM - 12:20PM
|
|
Hands-on 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-15
Richard Sarkis
TR 12:30PM - 1:45PM
|
|
Hands-on introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming and graphics. Recommended for non-majors, and/or students with less math and science background. Lab and workshop required.
|
|
CSC 264-1
Andrea Cogliati
TR 12:30PM - 1:45PM
|
|
This course is cross-listed with ECE477. Please refer to ECE 477 for the course description.
|
|
CSC 284-1
Daniel Stefankovic
TR 12:30PM - 1:45PM
|
|
Advanced study of design and analysis of algorithms. Topics typically include: combinatorial optimization, computational geometry, number-theoretic algorithms, probabilistic analysis and randomized algorithms, string algorithms, streaming algorithms. Students taking this course at the 400 level may be required to complete additional tests, readings or assignments.
|
|
CSC 172-24
Thaddeus Pawlicki
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 256-1
John Criswell
TR 2:00PM - 3:15PM
|
|
Principles of operating system design, explored within the practical context of traditional, embedded, distributed, and real-time 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 graduate-level course, requires additional readings and assignments. Prerequisites: CSC 252 or ECE 200.
|
|
CSC 172-25
Thaddeus Pawlicki
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 262-1
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. Non-parametric 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
|
|
CSC 172-26
Thaddeus Pawlicki
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-1
Thaddeus Pawlicki
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 229-1
Robert Jacobs
TR 3:25PM - 4:40PM
|
|
How can computer models help us understand how people perceive and reason about their environments? This course addresses this question, with emphasis placed on how people use probabilistic reasoning in order to represent and manage ambiguity and uncertainty for the purpose of making intelligent decisions. The course is relevant to students with interests in computational studies of human perception and cognition, and to students with interests in artificial intelligence. Homework assignments will require students to write computer programs using the Python programming language. Prerequisites: MATH 161, MATH 162, and CSC 161 (or equivalent proficiency in Python programming) required. MATH 164, MATH 165, and/or STAT 213 are helpful but not required.
|
|
CSC 242-1
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. Prerequisites: CSC 172 and MTH 150; CSC 173 STRONGLY Recommended.
|
|
CSC 216-1
Zhen Bai
TR 3:25PM - 4:40PM
|
|
Human activity is embodied through all our sensorimotor capacities, immersed in our immediate physical, social & cultural surroundings. Interaction technologies such as Augmented Reality (AR) & Virtual Reality (VR) have shown vast potential to enhance the way we think, feel & behave by superimposing/substituting digital contents onto/with our reality. This course is an introduction to AR,VR & related technologies, aiming to help students build a frame of reference of those technologies, apply them in design practices that address real-world problems, & actively reflect on social implications. CSC 172 and CSC 214 required (or proven equivalent application development experience); CSC 186 recommended.
|
|
CSC 210-1
Robert Kostin
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 pre-teen 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. Prerequisites: CSC 172
|
|
CSC 240-1
Jiebo Luo
TR 3:25PM - 4:40PM
|
|
Fundamental concepts and techniques of data mining, including data attributes, data visualization, data pre-processing, 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 graduate-level course, requires additional readings and a course project. Prerequisites will be strictly enforced: CSC171, CSC 172 and MTH 161. Recommended: CSC 242 or CSC262; MTH165.
|
|
CSC 161-18
Richard Sarkis
TR 4:50PM - 6:05PM
|
|
Hands-on introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming and graphics. Recommended for non-majors, and/or students with less math and science background. Lab and workshop required.
|
|
CSC 171-23
Adam Purtee
TR 6:15PM - 7:30PM
|
|
Hands-on 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 214-1
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 multi-touch technologies. Object-oriented design using model-view-controller paradigm, memory management. Other topics include: object-oriented database API, animation, multi-threading and performance considerations. Prerequisites: CSC 172
|
|
CSC 171-20
Adam Purtee
TR 7:40PM - 8:55PM
|
|
Hands-on 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.
|
|
Tuesday and Friday | |
Wednesday | |
CSC 161-20
Richard Sarkis
W 10:25AM - 11:40AM
|
|
Hands-on introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming and graphics. Recommended for non-majors, and/or students with less math and science background. Lab and workshop required.
|
|
CSC 161-23
Richard Sarkis
W 2:00PM - 3:15PM
|
|
Hands-on introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming and graphics. Recommended for non-majors, and/or students with less math and science background. Lab and workshop required.
|
|
CSC 161-16
Richard Sarkis
W 3:25PM - 4:40PM
|
|
Hands-on introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming and graphics. Recommended for non-majors, and/or students with less math and science background. Lab and workshop required.
|
|
CSC 254-7
Michael Scott
W 3:25PM - 4:40PM
|
|
Design and implementation of programming languages, with an emphasis on imperative languages and on implementation tradeoffs. In-depth 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, object-oriented, functional, logic-based, concurrent). Course projects include assignments in several different languages, with an emphasis on compilation issues.
|
|
CSC 171-24
Adam Purtee
W 3:25PM - 4:40PM
|
|
Hands-on 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-27
Thaddeus Pawlicki
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 280-2
Eustrat Zhupa
W 4:50PM - 6:05PM
|
|
This course studies fundamental computer models and their computational limitations. Finite-state machines and pumping lemmas, the context-free languages, Turing machines, decidable and Turing-recognizable languages, undecidability.
|
|
CSC 254-9
Michael Scott
W 4:50PM - 6:05PM
|
|
Design and implementation of programming languages, with an emphasis on imperative languages and on implementation tradeoffs. In-depth 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, object-oriented, functional, logic-based, concurrent). Course projects include assignments in several different languages, with an emphasis on compilation issues.
|
|
CSC 254-8
Michael Scott
W 4:50PM - 6:05PM
|
|
Design and implementation of programming languages, with an emphasis on imperative languages and on implementation tradeoffs. In-depth 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, object-oriented, functional, logic-based, concurrent). Course projects include assignments in several different languages, with an emphasis on compilation issues.
|
|
CSC 282-3
Daniel Stefankovic
W 6:15PM - 7:30PM
|
|
How does one design programs and ascertain their efficiency? Divide-and-conquer techniques, string processing, graph algorithms, mathematical algorithms. Advanced data structures such as balanced tree schemes. Introduction to NP-completeness and intractable combinatorial search, optimization, and decision problems.
|
|
CSC 280-8
Eustrat Zhupa
W 6:15PM - 7:30PM
|
|
This course studies fundamental computer models and their computational limitations. Finite-state machines and pumping lemmas, the context-free languages, Turing machines, decidable and Turing-recognizable languages, undecidability.
|
|
CSC 280-4
Eustrat Zhupa
W 6:15PM - 7:30PM
|
|
This course studies fundamental computer models and their computational limitations. Finite-state machines and pumping lemmas, the context-free languages, Turing machines, decidable and Turing-recognizable languages, undecidability.
|
|
CSC 254-10
Michael Scott
W 6:15PM - 7:30PM
|
|
Design and implementation of programming languages, with an emphasis on imperative languages and on implementation tradeoffs. In-depth 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, object-oriented, functional, logic-based, concurrent). Course projects include assignments in several different languages, with an emphasis on compilation issues.
|
|
CSC 254-11
Michael Scott
W 6:15PM - 7:30PM
|
|
Design and implementation of programming languages, with an emphasis on imperative languages and on implementation tradeoffs. In-depth 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, object-oriented, functional, logic-based, concurrent). Course projects include assignments in several different languages, with an emphasis on compilation issues.
|
|
CSC 161-17
Richard Sarkis
W 6:15PM - 7:30PM
|
|
Hands-on introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming and graphics. Recommended for non-majors, and/or students with less math and science background. Lab and workshop required.
|
|
CSC 171-25
Adam Purtee
W 6:15PM - 7:30PM
|
|
Hands-on 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-30
Thaddeus Pawlicki
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-29
Thaddeus Pawlicki
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-28
Thaddeus Pawlicki
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-27
Adam Purtee
W 7:40PM - 8:55PM
|
|
Hands-on 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-5
Daniel Stefankovic
W 7:40PM - 8:55PM
|
|
How does one design programs and ascertain their efficiency? Greedy algorithms, dynamic programming, divide-and-conquer techniques, string processing, graph algorithms, mathematical algorithms. Introduction to NP-completeness and linear programming. Students taking this course at the 400 level may be required to complete additional tests, readings or assignments.
|
|
CSC 161-2
Richard Sarkis
W 7:40PM - 8:55PM
|
|
Hands-on introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming and graphics. Recommended for non-majors, and/or students with less math and science background. Lab and workshop required.
|
|
Wednesday and Friday | |
CSC 292-1
Yuhao Zhu
WF 11:50AM - 1:05PM
|
|
How does a camera capture visually pleasing pictures? How does a computer magically recognize objects from an image? Why do some pixels look corrupted when playing a video? How does Virtual Reality provide a 360 immersive experience to you? How does a display work? How to render photorealistic graphics and why is it hard to do so in real-time on a mobile device? How does a robot/drone/self-driving car localize itself? These are a small subset of the questions we will explore in CSC 572/292. In this class, we will first study the fundamental building blocks of visual computing, including digital camera imaging, computer graphics, image/video compression, display technologies, and computer vision. We will then explore application domains that build on top of these fundamental building blocks such as AR/VR, computational photography, robotics, and self-driving cars. The course will necessarily span many scientific and engineering domains such as color science, neuroscience, optics, electrical engineering, and computer science. While there is no formal prerequisite, students will find their learning experience much more pleasant if they have basic knowledge in linear algebra, probability and random process, calculus, and high school-level physics. The course website for the previous iteration of this course provides the scope and the structure of the course as well as other useful information: https://www.cs.rochester.edu/courses/572/fall2020/index.html.
|
|
CSC 171-28
Adam Purtee
WF 12:30PM - 1:45PM
|
|
Hands-on 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 161-21
Richard Sarkis
R 9:40AM - 10:55AM
|
|
Hands-on introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming and graphics. Recommended for non-majors, and/or students with less math and science background. Lab and workshop required.
|
|
CSC 161-10
Richard Sarkis
R 2:00PM - 3:15PM
|
|
Hands-on introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming and graphics. Recommended for non-majors, and/or students with less math and science background. Lab and workshop required.
|
|
CSC 273W-1
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 260-1
Ehsan Hoque
R 2:00PM - 4:40PM
|
|
We currently add 51 billion tons of greenhouse gases to the atmosphere every year. We need to get it down to zero to stop the warming and avoid a cloud disaster. How? In this class, we will discuss and explore the role of technology to bring innovative breakthroughs to combat this unique challenge. Examples include the use of machine learning techniques to better predict climate, visualizing the effects of extreme weather to create awareness, monitoring the emission of carbon with satellite imagery. The lectures will consist of discussions, reading papers, guest lecturers, and a final project. Prerequisite: CSC 242.
|
|
CSC 172-18
Thaddeus Pawlicki
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 254-3
Michael Scott
R 3:25PM - 4:40PM
|
|
Design and implementation of programming languages, with an emphasis on imperative languages and on implementation tradeoffs. In-depth 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, object-oriented, functional, logic-based, concurrent). Course projects include assignments in several different languages, with an emphasis on compilation issues.
|
|
CSC 280-10
Eustrat Zhupa
R 3:25PM - 4:15PM
|
|
This course studies fundamental computer models and their computational limitations. Finite-state machines and pumping lemmas, the context-free languages, Turing machines, decidable and Turing-recognizable languages, undecidability.
|
|
CSC 172-19
Thaddeus Pawlicki
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 161-11
Richard Sarkis
R 4:50PM - 6:05PM
|
|
Hands-on introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming and graphics. Recommended for non-majors, and/or students with less math and science background. Lab and workshop required.
|
|
CSC 280-5
Eustrat Zhupa
R 4:50PM - 6:05PM
|
|
This course studies fundamental computer models and their computational limitations. Finite-state machines and pumping lemmas, the context-free languages, Turing machines, decidable and Turing-recognizable languages, undecidability.
|
|
CSC 280-9
Eustrat Zhupa
R 4:50PM - 6:05PM
|
|
This course studies fundamental computer models and their computational limitations. Finite-state machines and pumping lemmas, the context-free languages, Turing machines, decidable and Turing-recognizable languages, undecidability.
|
|
CSC 254-4
Michael Scott
R 6:15PM - 7:30PM
|
|
Design and implementation of programming languages, with an emphasis on imperative languages and on implementation tradeoffs. In-depth 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, object-oriented, functional, logic-based, concurrent). Course projects include assignments in several different languages, with an emphasis on compilation issues.
|
|
CSC 254-5
Michael Scott
R 6:15PM - 7:30PM
|
|
Design and implementation of programming languages, with an emphasis on imperative languages and on implementation tradeoffs. In-depth 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, object-oriented, functional, logic-based, concurrent). Course projects include assignments in several different languages, with an emphasis on compilation issues.
|
|
CSC 280-6
Eustrat Zhupa
R 6:15PM - 7:30PM
|
|
This course studies fundamental computer models and their computational limitations. Finite-state machines and pumping lemmas, the context-free languages, Turing machines, decidable and Turing-recognizable languages, undecidability.
|
|
CSC 254-6
Michael Scott
R 7:40PM - 8:55PM
|
|
Design and implementation of programming languages, with an emphasis on imperative languages and on implementation tradeoffs. In-depth 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, object-oriented, functional, logic-based, concurrent). Course projects include assignments in several different languages, with an emphasis on compilation issues.
|
|
CSC 161-12
Richard Sarkis
R 7:40PM - 8:55PM
|
|
Hands-on introduction to programming using the Python programming language. Covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming and graphics. Recommended for non-majors, and/or students with less math and science background. Lab and workshop required.
|