Fall Term Schedule
Fall 2023
Number | Title | Instructor | Time |
---|
CSC 161-1
Monika Polak
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. This course is for non-majors and/or students with less math and science background. Lab and workshop required. This course may not be used for CSC major credit if completed after or at the same time as CSC171
|
CSC 161-10
Monika Polak
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. This course is for non-majors and/or students with less math and science background. Lab and workshop required. This course may not be used for CSC major credit if completed after or at the same time as CSC171
|
CSC 161-11
Monika Polak
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. This course is for non-majors and/or students with less math and science background. Lab and workshop required. This course may not be used for CSC major credit if completed after or at the same time as CSC171
|
CSC 161-12
Monika Polak
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. This course is for non-majors and/or students with less math and science background. Lab and workshop required. This course may not be used for CSC major credit if completed after or at the same time as CSC171
|
CSC 161-13
Monika Polak
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. This course is for non-majors and/or students with less math and science background. Lab and workshop required. This course may not be used for CSC major credit if completed after or at the same time as CSC171
|
CSC 161-14
Monika Polak
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. This course is for non-majors and/or students with less math and science background. Lab and workshop required. This course may not be used for CSC major credit if completed after or at the same time as CSC171
|
CSC 161-15
Monika Polak
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. This course is for non-majors and/or students with less math and science background. Lab and workshop required. This course may not be used for CSC major credit if completed after or at the same time as CSC171
|
CSC 161-16
Monika Polak
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. This course is for non-majors and/or students with less math and science background. Lab and workshop required. This course may not be used for CSC major credit if completed after or at the same time as CSC171
|
CSC 161-17
Monika Polak
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. This course is for non-majors and/or students with less math and science background. Lab and workshop required. This course may not be used for CSC major credit if completed after or at the same time as CSC171
|
CSC 161-18
Monika Polak
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. This course is for non-majors and/or students with less math and science background. Lab and workshop required. This course may not be used for CSC major credit if completed after or at the same time as CSC171
|
CSC 161-19
Monika Polak
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. This course is for non-majors and/or students with less math and science background. Lab and workshop required. This course may not be used for CSC major credit if completed after or at the same time as CSC171
|
CSC 161-2
Monika Polak
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. This course is for non-majors and/or students with less math and science background. Lab and workshop required. This course may not be used for CSC major credit if completed after or at the same time as CSC171
|
CSC 161-20
Monika Polak
W 9:00AM - 10:15AM
|
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. This course is for non-majors and/or students with less math and science background. Lab and workshop required. This course may not be used for CSC major credit if completed after or at the same time as CSC171
|
CSC 161-21
Monika Polak
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. This course is for non-majors and/or students with less math and science background. Lab and workshop required. This course may not be used for CSC major credit if completed after or at the same time as CSC171
|
CSC 161-22
Monika Polak
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. This course is for non-majors and/or students with less math and science background. Lab and workshop required. This course may not be used for CSC major credit if completed after or at the same time as CSC171
|
CSC 161-23
Monika Polak
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. This course is for non-majors and/or students with less math and science background. Lab and workshop required. This course may not be used for CSC major credit if completed after or at the same time as CSC171
|
CSC 161-3
Monika Polak
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. This course is for non-majors and/or students with less math and science background. Lab and workshop required. This course may not be used for CSC major credit if completed after or at the same time as CSC171
|
CSC 161-4
Monika Polak
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. This course is for non-majors and/or students with less math and science background. Lab and workshop required. This course may not be used for CSC major credit if completed after or at the same time as CSC171
|
CSC 161-5
Monika Polak
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. This course is for non-majors and/or students with less math and science background. Lab and workshop required. This course may not be used for CSC major credit if completed after or at the same time as CSC171
|
CSC 161-6
Monika Polak
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. This course is for non-majors and/or students with less math and science background. Lab and workshop required. This course may not be used for CSC major credit if completed after or at the same time as CSC171
|
CSC 161-7
Monika Polak
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. This course is for non-majors and/or students with less math and science background. Lab and workshop required. This course may not be used for CSC major credit if completed after or at the same time as CSC171
|
CSC 161-8
Monika Polak
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. This course is for non-majors and/or students with less math and science background. Lab and workshop required. This course may not be used for CSC major credit if completed after or at the same time as CSC171
|
CSC 161-9
Monika Polak
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. This course is for non-majors and/or students with less math and science background. Lab and workshop required. This course may not be used for CSC major credit if completed after or at the same time as CSC171
|
CSC 170-1
Eustrat Zhupa
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. Students must register for a lab when registering for the lecture.
|
CSC 170-2
Eustrat Zhupa
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
Eustrat Zhupa
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 CS & DSCC majors. Lab and workshop required. Open to CSC and DSCC majors only during registration week. Non-Majors should plan to take CSC 171 during Spring and Summer semesters.
|
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 CS & DSCC majors. 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 CS & DSCC majors. Lab and workshop required.
|
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 CS & DSCC majors. 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 CS & DSCC majors. Lab and workshop required.
|
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 CS & DSCC majors. 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 CS & DSCC majors. Lab and workshop required.
|
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 CS & DSCC majors. Lab and workshop required.
|
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 CS & DSCC majors. Lab and workshop required.
|
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 CS & DSCC majors. Lab and workshop required.
|
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 CS & DSCC majors. Lab and workshop required.
|
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 CS & DSCC majors. 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 CS & DSCC majors. Lab and workshop required.
|
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 CS & DSCC majors. 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 CS & DSCC majors. 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 CS & DSCC majors. Lab and workshop required.
|
CSC 171-3
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 CS & DSCC majors. 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 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 CS & DSCC majors. 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 CS & DSCC majors. Lab and workshop required.
|
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 CS & DSCC majors. Lab and workshop required.
|
CSC 171-8
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 CS & DSCC majors. Lab and workshop required.
|
CSC 171-9
Adam Purtee
T 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 CS & DSCC majors. 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, MATH 150. May be taken concurrently with MATH 150 if CSC 171 prerequisite is satisfied.
|
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. Prerequisites: CSC 171 or equivalent, MATH 150. May be taken concurrently with MATH 150 if CSC 171 prerequisite is satisfied.
|
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. Prerequisites: CSC 171 or equivalent, MATH 150. May be taken concurrently with MATH 150 if CSC 171 prerequisite is satisfied.
|
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. Prerequisites: CSC 171 or equivalent, MATH 150. May be taken concurrently with MATH 150 if CSC 171 prerequisite is satisfied.
|
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. Prerequisites: CSC 171 or equivalent, MATH 150. May be taken concurrently with MATH 150 if CSC 171 prerequisite is satisfied.
|
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. Prerequisites: CSC 171 or equivalent, MATH 150. May be taken concurrently with MATH 150 if CSC 171 prerequisite is satisfied.
|
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. Prerequisites: CSC 171 or equivalent, MATH 150. May be taken concurrently with MATH 150 if CSC 171 prerequisite is satisfied.
|
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. Prerequisites: CSC 171 or equivalent, MATH 150. May be taken concurrently with MATH 150 if CSC 171 prerequisite is satisfied.
|
CSC 172-2
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. Prerequisites: CSC 171 or equivalent, MATH 150. May be taken concurrently with MATH 150 if CSC 171 prerequisite is satisfied.
|
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. Prerequisites: CSC 171 or equivalent, MATH 150. May be taken concurrently with MATH 150 if CSC 171 prerequisite is satisfied.
|
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. Prerequisites: CSC 171 or equivalent, MATH 150. May be taken concurrently with MATH 150 if CSC 171 prerequisite is satisfied.
|
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. Prerequisites: CSC 171 or equivalent, MATH 150. May be taken concurrently with MATH 150 if CSC 171 prerequisite is satisfied.
|
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. Prerequisites: CSC 171 or equivalent, MATH 150. May be taken concurrently with MATH 150 if CSC 171 prerequisite is satisfied.
|
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. Prerequisites: CSC 171 or equivalent, MATH 150. May be taken concurrently with MATH 150 if CSC 171 prerequisite is satisfied.
|
CSC 172-3
Thaddeus Pawlicki
T 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. Prerequisites: CSC 171 or equivalent, MATH 150. May be taken concurrently with MATH 150 if CSC 171 prerequisite is satisfied.
|
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. Prerequisites: CSC 171 or equivalent, MATH 150. May be taken concurrently with MATH 150 if CSC 171 prerequisite is satisfied.
|
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. Prerequisites: CSC 171 or equivalent, MATH 150. May be taken concurrently with MATH 150 if CSC 171 prerequisite is satisfied.
|
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. Prerequisites: CSC 171 or equivalent, MATH 150. May be taken concurrently with MATH 150 if CSC 171 prerequisite is satisfied.
|
CSC 172-9
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. Prerequisites: CSC 171 or equivalent, MATH 150. May be taken concurrently with MATH 150 if CSC 171 prerequisite is satisfied.
|
CSC 173-1
George Ferguson
MW 2:00PM - 3:15PM
|
An introduction to some of the most important formal models of computation, and their application to real-world computing problems. Prerequisites: CSC 172 and MTH 150. Basic Science Sequence: https://www.rochester.edu/college/ccas/handbook/science-sequence.html Audits are not allowed.
|
CSC 211-1
Thaddeus Pawlicki
TR 11:05AM - 12:20PM
|
The goal of this course is to provide an introductory overview of the concepts, principles, methods and special topics of Human-Computer Interaction (HCI). This course will help students to build a frame of reference of HCI approaches and apply them in conducting design practices for real-world problems. This course contains a combination of lectures, seminars and group projects. The lectures will cover origins of HCI and interaction design, user-centered design methods, usability evaluation and user experience. The seminars will be a combination of guest lecturers and student-led discussions to introduce special topics in HCI, which may include Augmented and Virtual Reality, Tangible User Interface, Human-Robot Interaction, learning technologies, and assistive technologies. The group project will take place throughout the course and provide an opportunity for students to apply and reflect on HCI methods and user-centered design processes through contextual inquiry, prototyping, evaluation, iteration and presentation. Prerequisite: CSC 172 (required), CSC 214 (desired), or permission of the instructor.
|
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 Data Structures & Algorithms
|
CSC 227-1
Maria Helguera
MW 10:25AM - 11:40AM
|
This course will introduce the students to the basic concepts of digital image processing, and establish a good foundation for further study and research in this field. The theoretical components of this course will be presented at a level that seniors and first year graduate students who have taken introductory courses in vectors, matrices, probability, statistics, linear systems, and computer programming should be comfortable with. Topics cover in this course will include intensity transformation and spatial filtering, filtering in the frequency domain, image restoration, morphological image processing, image segmentation, image registration, and image compression. The course will also provide a brief introduction to python (ipython), the primary programming language that will be used for solving problems in class as well as take-home assignments. Prerequisites: ECE 242 and ECE 440 & ECE 446 are recommended or permission of instructor
|
CSC 229-2
Robert Jacobs
TR 11:05AM - 12:20PM
|
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
Cantay Caliskan
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. Prerequisites will be strictly enforced: CSC171, CSC 172 and MATH 161. Recommended: CSC 242 or CSC262; MATH165. Open to CSC and DSCC majors during registration week.
|
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. Prerequisites: CSC 172 and MTH 150; CSC 173 STRONGLY Recommended. Audits not allowed. Open to CSC and DSCC majors only during registration week.
|
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 245-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: MATH 164, MATH 165, and CSC 172. Programming in Python.
|
CSC 246-1
Adam Purtee
TR 11:05AM - 12:20PM
|
Mathematical foundations of classification, regression, and decision making. Supervised algorithms covered include perceptrons, logistic regression, support vector machines, and neural networks. Directed and undirected graphical models. Numerical parameter optimization, including gradient descent, expectation maximization, and other methods. Introduction to reinforcement learning. Proofs covered as appropriate. Significant programming projects will be assigned. Prerequisites: This course involves a lot of math and algorithms. You should know multivariable calculus, linear algebra, and some algorithms. No formal prerequisites but MATH 165, MATH 164, and CSC 242 strongly recommended.
|
CSC 247-1
Hangfeng He
MW 4:50PM - 6:05PM
|
This course addresses issues of representing computing meaning from natural language, especially issues of understanding language in context using commonsense knowledge of the world. Topics will include a survey of English phrase structure and parsing, semantic representation (e.g., events, semantic roles, time, causality and speech acts), and theories and techniques for understanding language in context, including intention recognition, text understanding using knowledge of scripts and plans, and models of spoken dialogue systems (e.g., conversational agents such as Siri). CSC447, the graduate level version of the course, requires a substantial individual project. Prerequisite: CSC 242 Artificial Intelligence
|
CSC 252-1
John Criswell
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 Discrete Mathematics and CSC 172 Data Structures and Algorithms
|
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 Data Structures and Algorithms, 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 Computation and Formal Systems, and CSC 252 Computer Organization, 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-12
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-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 257-1
Andrew Read-McFarland
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 Computer Organization
|
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. Open to CSC and DSCC majors only during registration week.
|
CSC 262-1
Bruce Blaine
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
Zhiyao Duan
TR 12:30PM - 1:45PM
|
Computer audition is the study of how to design a computational system that can analyze and process auditory scenes. Example problems in this field include source separation (splitting audio mixtures into individual source tracks), pitch estimation (estimating the pitches played by each instrument), timbre modeling (finding features to distinguish different kinds of instruments), and source localization (finding where the sound comes from). This course will cover both fundamentals and state-of-the-art research in this field, which applies various kinds of signal processing and machine learning techniques. Multiple programming assignments will help students practice what they learn, and a final research project will lead students through the entire research process. Prerequisites: ECE 246/446 or ECE 272/472 or other equivalent signal processing courses, and Python/Matlab programming. Knowledge of machine learning techniques such as Markov models, support vector machines and neural networks is also helpful, but not 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 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 277-1
Christopher Kanan
TR 2:00PM - 3:15PM
|
Deep learning systems are now being widely productionized at large corporations and many AI-centric start-ups have been created. Productionizing AI systems requires more than just algorithmic considerations. We need to organize the data for training these systems, measure the bias present in these systems after training them, monitor them over time, and more. This course covers these topics, including, but are not limited to, deploying AI systems, MLOps, model versioning, dataset curation, data management, AI ethics/fairness, detecting and mitigation of bias, detecting out-of-distribution inputs, domain shift, data-centric AI, real-time machine learning, continual machine learning, monitoring AI systems after deployment, model/data parallelism, managing AI projects/teams, training and inference on edge-devices, and launching AI start-ups. Prerequisites: At least one course that covers neural networks, e.g., CSC 242, CSC 298/578, CSC 266/466), (CSC 249/449), or instructor permission. Students are expected to be familiar with Python, one or more deep learning toolboxes, deep learning, and machine learning more broadly. Students should have at least a high-level understanding of back propagation, multi-layer perceptrons, transformers, convolutional neural networks, and neural network fine-tuning.
|
CSC 280-1
Kaave Hosseini
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: CSC 173 Computation and Formal Systems, and MATH 150 Discrete Mathematics
|
CSC 280-2
Kaave Hosseini
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-5
Kaave Hosseini
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 281-1
Monika Polak
MW 9:00AM - 10:15AM
|
The modern study of cryptography investigates techniques for facilitating interactions between distrustful entities. In this course we introduce some of the fundamental concepts of this study. Emphasis will be placed on the foundations of cryptography and in particular on precise definitions and proof techniques. The main skills that will be assumed from these courses are: the ability to understand and write formal mathematical definitions and proofs and 2) comfort with reasoning about algorithms, such as proving their correctness and analyzing their running times. It is also important that you are familiar with basic probability. CSC 280 (or equivalent), MATH150 (or mathematical maturity), or permission of instructor.
|
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 MATH 150) or MATH172. Students MUST register for the recitation when registering for this course.
|
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. Prerequisites: (CSC 172 and MATH 150) or MATH172. Students MUST register for the recitation when registering for this course.
|
CSC 282-3
Daniel Stefankovic
W 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. Prerequisites: (CSC 172 and MATH 150) or MATH172. Students MUST register for the recitation when registering for this course.
|
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. Prerequisites: (CSC 172 and MATH 150) or MATH172. Students MUST register for the recitation when registering for this course.
|
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. Prerequisites: (CSC 172 and MATH 150) or MATH172. Students MUST register for the recitation when registering for this course.
|
CSC 284-1
Kaave Hosseini
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 287-1
Daniel Stefankovic
MW 2:00PM - 3:15PM
|
The course will focus on algorithmic sampling from probability distributions. For MCMC we will study methods to bound convergence speed and show how they apply to classical problems. Background material on probability theory will be covered.
|
CSC 293-1
Sreepathi Pai
MW 9:00AM - 10:15AM
|
CS IMPROVES is about applying computer science to create novel technology. Students will work in teams to solve problems and produce artifacts for real-world use. In Fall 2023, we will focus on tools to improve the production of 3D printed open-source hardware (OSHW). Using techniques from computational geometry and algorithms for CAD/CAM, computer graphics and animation, AR/VR, and programming languages, we will make it easier for people to build, document, reuse, and remix 3D printed open source hardware. Programming maturity expected, experience with 3D printing not required. Prerequisites: CSC173 and at least two of (CSC252, CSC254, CSC242, CSC280, Students must register for the lab when registering for the lecture. If course is full, you may join the waitlist here: https://forms.gle/e6ya1yLBvQyvKTW79
|
CSC 293-2
Sreepathi Pai
F 9:40AM - 10:55AM
|
CS IMPROVES is about applying computer science to create novel technology. Students will work in teams to solve problems and produce artifacts for real-world use.
|
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 299-2
Andrew Read-McFarland
MW 10:25AM - 11:40AM
|
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
|
No description
|
CSC 299W-2
Andrew Read-McFarland
MW 10:25AM - 11:40AM
|
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 390-1
|
Blank Description
|
Fall 2023
Number | Title | Instructor | Time |
---|---|
Monday | |
CSC 161-5
Monika Polak
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. This course is for non-majors and/or students with less math and science background. Lab and workshop required. This course may not be used for CSC major credit if completed after or at the same time as CSC171
|
|
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 CS & DSCC majors. 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. Prerequisites: CSC 171 or equivalent, MATH 150. May be taken concurrently with MATH 150 if CSC 171 prerequisite is satisfied.
|
|
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 CS & DSCC majors. 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. Prerequisites: CSC 171 or equivalent, MATH 150. May be taken concurrently with MATH 150 if CSC 171 prerequisite is satisfied.
|
|
CSC 280-2
Kaave Hosseini
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 161-6
Monika Polak
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. This course is for non-majors and/or students with less math and science background. Lab and workshop required. This course may not be used for CSC major credit if completed after or at the same time as CSC171
|
|
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 CS & DSCC majors. Lab and workshop required.
|
|
CSC 171-8
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 CS & DSCC majors. 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. Prerequisites: CSC 171 or equivalent, MATH 150. May be taken concurrently with MATH 150 if CSC 171 prerequisite is satisfied.
|
|
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. Prerequisites: (CSC 172 and MATH 150) or MATH172. Students MUST register for the recitation when registering for this course.
|
|
CSC 161-7
Monika Polak
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. This course is for non-majors and/or students with less math and science background. Lab and workshop required. This course may not be used for CSC major credit if completed after or at the same time as CSC171
|
|
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 CS & DSCC majors. 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 CS & DSCC majors. Lab and workshop required.
|
|
CSC 171-3
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 CS & DSCC majors. 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. Prerequisites: CSC 171 or equivalent, MATH 150. May be taken concurrently with MATH 150 if CSC 171 prerequisite is satisfied.
|
|
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. Prerequisites: CSC 171 or equivalent, MATH 150. May be taken concurrently with MATH 150 if CSC 171 prerequisite is satisfied.
|
|
CSC 172-2
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. Prerequisites: CSC 171 or equivalent, MATH 150. May be taken concurrently with MATH 150 if CSC 171 prerequisite is satisfied.
|
|
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. Prerequisites: CSC 171 or equivalent, MATH 150. May be taken concurrently with MATH 150 if CSC 171 prerequisite is satisfied.
|
|
CSC 281-1
Monika Polak
MW 9:00AM - 10:15AM
|
|
The modern study of cryptography investigates techniques for facilitating interactions between distrustful entities. In this course we introduce some of the fundamental concepts of this study. Emphasis will be placed on the foundations of cryptography and in particular on precise definitions and proof techniques. The main skills that will be assumed from these courses are: the ability to understand and write formal mathematical definitions and proofs and 2) comfort with reasoning about algorithms, such as proving their correctness and analyzing their running times. It is also important that you are familiar with basic probability. CSC 280 (or equivalent), MATH150 (or mathematical maturity), or permission of instructor.
|
|
CSC 293-1
Sreepathi Pai
MW 9:00AM - 10:15AM
|
|
CS IMPROVES is about applying computer science to create novel technology. Students will work in teams to solve problems and produce artifacts for real-world use. In Fall 2023, we will focus on tools to improve the production of 3D printed open-source hardware (OSHW). Using techniques from computational geometry and algorithms for CAD/CAM, computer graphics and animation, AR/VR, and programming languages, we will make it easier for people to build, document, reuse, and remix 3D printed open source hardware. Programming maturity expected, experience with 3D printing not required. Prerequisites: CSC173 and at least two of (CSC252, CSC254, CSC242, CSC280, Students must register for the lab when registering for the lecture. If course is full, you may join the waitlist here: https://forms.gle/e6ya1yLBvQyvKTW79
|
|
CSC 170-2
Eustrat Zhupa
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 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 CS & DSCC majors. Lab and workshop required. Open to CSC and DSCC majors only during registration week. Non-Majors should plan to take CSC 171 during Spring and Summer semesters.
|
|
CSC 227-1
Maria Helguera
MW 10:25AM - 11:40AM
|
|
This course will introduce the students to the basic concepts of digital image processing, and establish a good foundation for further study and research in this field. The theoretical components of this course will be presented at a level that seniors and first year graduate students who have taken introductory courses in vectors, matrices, probability, statistics, linear systems, and computer programming should be comfortable with. Topics cover in this course will include intensity transformation and spatial filtering, filtering in the frequency domain, image restoration, morphological image processing, image segmentation, image registration, and image compression. The course will also provide a brief introduction to python (ipython), the primary programming language that will be used for solving problems in class as well as take-home assignments. Prerequisites: ECE 242 and ECE 440 & ECE 446 are recommended or permission of instructor
|
|
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 Computation and Formal Systems, and CSC 252 Computer Organization, or equivalent.
|
|
CSC 299-2
Andrew Read-McFarland
MW 10:25AM - 11:40AM
|
|
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-2
Andrew Read-McFarland
MW 10:25AM - 11:40AM
|
|
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 161-8
Monika Polak
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. This course is for non-majors and/or students with less math and science background. Lab and workshop required. This course may not be used for CSC major credit if completed after or at the same time as CSC171
|
|
CSC 170-3
Eustrat Zhupa
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 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. Open to CSC and DSCC majors only during registration week.
|
|
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 CS & DSCC majors. 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. Prerequisites: CSC 171 or equivalent, MATH 150. May be taken concurrently with MATH 150 if CSC 171 prerequisite is satisfied.
|
|
CSC 173-1
George Ferguson
MW 2:00PM - 3:15PM
|
|
An introduction to some of the most important formal models of computation, and their application to real-world computing problems. Prerequisites: CSC 172 and MTH 150. Basic Science Sequence: https://www.rochester.edu/college/ccas/handbook/science-sequence.html Audits are not allowed.
|
|
CSC 280-1
Kaave Hosseini
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: CSC 173 Computation and Formal Systems, and MATH 150 Discrete Mathematics
|
|
CSC 287-1
Daniel Stefankovic
MW 2:00PM - 3:15PM
|
|
The course will focus on algorithmic sampling from probability distributions. For MCMC we will study methods to bound convergence speed and show how they apply to classical problems. Background material on probability theory will be covered.
|
|
CSC 161-19
Monika Polak
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. This course is for non-majors and/or students with less math and science background. Lab and workshop required. This course may not be used for CSC major credit if completed after or at the same time as CSC171
|
|
CSC 252-1
John Criswell
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 Discrete Mathematics and CSC 172 Data Structures and Algorithms
|
|
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 Data Structures and Algorithms, or equivalent for CSC 253. CSC 172 and CSC 252 or equivalent for CSC 453 and TCS 453.
|
|
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
|
|
No description
|
|
CSC 161-1
Monika Polak
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. This course is for non-majors and/or students with less math and science background. Lab and workshop required. This course may not be used for CSC major credit if completed after or at the same time as CSC171
|
|
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. Prerequisites: CSC 171 or equivalent, MATH 150. May be taken concurrently with MATH 150 if CSC 171 prerequisite is satisfied.
|
|
CSC 247-1
Hangfeng He
MW 4:50PM - 6:05PM
|
|
This course addresses issues of representing computing meaning from natural language, especially issues of understanding language in context using commonsense knowledge of the world. Topics will include a survey of English phrase structure and parsing, semantic representation (e.g., events, semantic roles, time, causality and speech acts), and theories and techniques for understanding language in context, including intention recognition, text understanding using knowledge of scripts and plans, and models of spoken dialogue systems (e.g., conversational agents such as Siri). CSC447, the graduate level version of the course, requires a substantial individual project. Prerequisite: CSC 242 Artificial Intelligence
|
|
CSC 257-1
Andrew Read-McFarland
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 Computer Organization
|
|
CSC 161-9
Monika Polak
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. This course is for non-majors and/or students with less math and science background. Lab and workshop required. This course may not be used for CSC major credit if completed after or at the same time as CSC171
|
|
Tuesday | |
CSC 161-22
Monika Polak
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. This course is for non-majors and/or students with less math and science background. Lab and workshop required. This course may not be used for CSC major credit if completed after or at the same time as CSC171
|
|
CSC 171-9
Adam Purtee
T 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 CS & DSCC majors. Lab and workshop required.
|
|
CSC 161-13
Monika Polak
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. This course is for non-majors and/or students with less math and science background. Lab and workshop required. This course may not be used for CSC major credit if completed after or at the same time as CSC171
|
|
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 CS & DSCC majors. Lab and workshop required.
|
|
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 CS & DSCC majors. Lab and workshop required.
|
|
CSC 172-3
Thaddeus Pawlicki
T 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. Prerequisites: CSC 171 or equivalent, MATH 150. May be taken concurrently with MATH 150 if CSC 171 prerequisite is satisfied.
|
|
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
Monika Polak
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. This course is for non-majors and/or students with less math and science background. Lab and workshop required. This course may not be used for CSC major credit if completed after or at the same time as CSC171
|
|
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 CS & DSCC majors. 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. Prerequisites: CSC 171 or equivalent, MATH 150. May be taken concurrently with MATH 150 if CSC 171 prerequisite is satisfied.
|
|
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. Prerequisites: (CSC 172 and MATH 150) or MATH172. Students MUST register for the recitation when registering for this course.
|
|
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 CS & DSCC majors. Lab and workshop required.
|
|
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 CS & DSCC majors. 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. Prerequisites: CSC 171 or equivalent, MATH 150. May be taken concurrently with MATH 150 if CSC 171 prerequisite is satisfied.
|
|
Tuesday and Thursday | |
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 CS & DSCC majors. Lab and workshop required.
|
|
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 245-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: MATH 164, MATH 165, and CSC 172. Programming in Python.
|
|
CSC 170-1
Eustrat Zhupa
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. Students must register for a lab when registering for the lecture.
|
|
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 CS & DSCC majors. Lab and workshop required.
|
|
CSC 211-1
Thaddeus Pawlicki
TR 11:05AM - 12:20PM
|
|
The goal of this course is to provide an introductory overview of the concepts, principles, methods and special topics of Human-Computer Interaction (HCI). This course will help students to build a frame of reference of HCI approaches and apply them in conducting design practices for real-world problems. This course contains a combination of lectures, seminars and group projects. The lectures will cover origins of HCI and interaction design, user-centered design methods, usability evaluation and user experience. The seminars will be a combination of guest lecturers and student-led discussions to introduce special topics in HCI, which may include Augmented and Virtual Reality, Tangible User Interface, Human-Robot Interaction, learning technologies, and assistive technologies. The group project will take place throughout the course and provide an opportunity for students to apply and reflect on HCI methods and user-centered design processes through contextual inquiry, prototyping, evaluation, iteration and presentation. Prerequisite: CSC 172 (required), CSC 214 (desired), or permission of the instructor.
|
|
CSC 229-2
Robert Jacobs
TR 11:05AM - 12:20PM
|
|
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 246-1
Adam Purtee
TR 11:05AM - 12:20PM
|
|
Mathematical foundations of classification, regression, and decision making. Supervised algorithms covered include perceptrons, logistic regression, support vector machines, and neural networks. Directed and undirected graphical models. Numerical parameter optimization, including gradient descent, expectation maximization, and other methods. Introduction to reinforcement learning. Proofs covered as appropriate. Significant programming projects will be assigned. Prerequisites: This course involves a lot of math and algorithms. You should know multivariable calculus, linear algebra, and some algorithms. No formal prerequisites but MATH 165, MATH 164, and CSC 242 strongly recommended.
|
|
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 MATH 150) or MATH172. Students MUST register for the recitation when registering for this course.
|
|
CSC 161-15
Monika Polak
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. This course is for non-majors and/or students with less math and science background. Lab and workshop required. This course may not be used for CSC major credit if completed after or at the same time as CSC171
|
|
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. Prerequisites: CSC 171 or equivalent, MATH 150. May be taken concurrently with MATH 150 if CSC 171 prerequisite is satisfied.
|
|
CSC 264-1
Zhiyao Duan
TR 12:30PM - 1:45PM
|
|
Computer audition is the study of how to design a computational system that can analyze and process auditory scenes. Example problems in this field include source separation (splitting audio mixtures into individual source tracks), pitch estimation (estimating the pitches played by each instrument), timbre modeling (finding features to distinguish different kinds of instruments), and source localization (finding where the sound comes from). This course will cover both fundamentals and state-of-the-art research in this field, which applies various kinds of signal processing and machine learning techniques. Multiple programming assignments will help students practice what they learn, and a final research project will lead students through the entire research process. Prerequisites: ECE 246/446 or ECE 272/472 or other equivalent signal processing courses, and Python/Matlab programming. Knowledge of machine learning techniques such as Markov models, support vector machines and neural networks is also helpful, but not required.
|
|
CSC 284-1
Kaave Hosseini
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-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. Prerequisites: CSC 171 or equivalent, MATH 150. May be taken concurrently with MATH 150 if CSC 171 prerequisite is satisfied.
|
|
CSC 262-1
Bruce Blaine
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 277-1
Christopher Kanan
TR 2:00PM - 3:15PM
|
|
Deep learning systems are now being widely productionized at large corporations and many AI-centric start-ups have been created. Productionizing AI systems requires more than just algorithmic considerations. We need to organize the data for training these systems, measure the bias present in these systems after training them, monitor them over time, and more. This course covers these topics, including, but are not limited to, deploying AI systems, MLOps, model versioning, dataset curation, data management, AI ethics/fairness, detecting and mitigation of bias, detecting out-of-distribution inputs, domain shift, data-centric AI, real-time machine learning, continual machine learning, monitoring AI systems after deployment, model/data parallelism, managing AI projects/teams, training and inference on edge-devices, and launching AI start-ups. Prerequisites: At least one course that covers neural networks, e.g., CSC 242, CSC 298/578, CSC 266/466), (CSC 249/449), or instructor permission. Students are expected to be familiar with Python, one or more deep learning toolboxes, deep learning, and machine learning more broadly. Students should have at least a high-level understanding of back propagation, multi-layer perceptrons, transformers, convolutional neural networks, and neural network fine-tuning.
|
|
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, MATH 150. May be taken concurrently with MATH 150 if CSC 171 prerequisite is satisfied.
|
|
CSC 240-1
Cantay Caliskan
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. Prerequisites will be strictly enforced: CSC171, CSC 172 and MATH 161. Recommended: CSC 242 or CSC262; MATH165. Open to CSC and DSCC majors during registration week.
|
|
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. Prerequisites: CSC 172 and MTH 150; CSC 173 STRONGLY Recommended. Audits not allowed. Open to CSC and DSCC majors only during registration week.
|
|
CSC 161-18
Monika Polak
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. This course is for non-majors and/or students with less math and science background. Lab and workshop required. This course may not be used for CSC major credit if completed after or at the same time as CSC171
|
|
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 CS & DSCC majors. Lab and workshop required.
|
|
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 Data Structures & Algorithms
|
|
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 CS & DSCC majors. Lab and workshop required.
|
|
Wednesday | |
CSC 161-20
Monika Polak
W 9:00AM - 10:15AM
|
|
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. This course is for non-majors and/or students with less math and science background. Lab and workshop required. This course may not be used for CSC major credit if completed after or at the same time as CSC171
|
|
CSC 161-23
Monika Polak
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. This course is for non-majors and/or students with less math and science background. Lab and workshop required. This course may not be used for CSC major credit if completed after or at the same time as CSC171
|
|
CSC 161-16
Monika Polak
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. This course is for non-majors and/or students with less math and science background. Lab and workshop required. This course may not be used for CSC major credit if completed after or at the same time as CSC171
|
|
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 CS & DSCC majors. Lab and workshop required.
|
|
CSC 254-12
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-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 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. Prerequisites: CSC 171 or equivalent, MATH 150. May be taken concurrently with MATH 150 if CSC 171 prerequisite is satisfied.
|
|
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 161-17
Monika Polak
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. This course is for non-majors and/or students with less math and science background. Lab and workshop required. This course may not be used for CSC major credit if completed after or at the same time as CSC171
|
|
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 CS & DSCC majors. Lab and workshop required.
|
|
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 282-3
Daniel Stefankovic
W 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. Prerequisites: (CSC 172 and MATH 150) or MATH172. Students MUST register for the recitation when registering for this course.
|
|
CSC 161-2
Monika Polak
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. This course is for non-majors and/or students with less math and science background. Lab and workshop required. This course may not be used for CSC major credit if completed after or at the same time as CSC171
|
|
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 CS & DSCC majors. Lab and workshop required.
|
|
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. Prerequisites: (CSC 172 and MATH 150) or MATH172. Students MUST register for the recitation when registering for this course.
|
|
Thursday | |
CSC 161-21
Monika Polak
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. This course is for non-majors and/or students with less math and science background. Lab and workshop required. This course may not be used for CSC major credit if completed after or at the same time as CSC171
|
|
CSC 161-10
Monika Polak
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. This course is for non-majors and/or students with less math and science background. Lab and workshop required. This course may not be used for CSC major credit if completed after or at the same time as CSC171
|
|
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. Prerequisites: CSC 171 or equivalent, MATH 150. May be taken concurrently with MATH 150 if CSC 171 prerequisite is satisfied.
|
|
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 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 161-11
Monika Polak
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. This course is for non-majors and/or students with less math and science background. Lab and workshop required. This course may not be used for CSC major credit if completed after or at the same time as CSC171
|
|
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. Prerequisites: CSC 171 or equivalent, MATH 150. May be taken concurrently with MATH 150 if CSC 171 prerequisite is satisfied.
|
|
CSC 172-9
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. Prerequisites: CSC 171 or equivalent, MATH 150. May be taken concurrently with MATH 150 if CSC 171 prerequisite is satisfied.
|
|
CSC 280-5
Kaave Hosseini
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 161-12
Monika Polak
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. This course is for non-majors and/or students with less math and science background. Lab and workshop required. This course may not be used for CSC major credit if completed after or at the same time as CSC171
|
|
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.
|
|
Friday | |
CSC 293-2
Sreepathi Pai
F 9:40AM - 10:55AM
|
|
CS IMPROVES is about applying computer science to create novel technology. Students will work in teams to solve problems and produce artifacts for real-world use.
|