blank
Select a level:
Select a term:
Only show courses available to first-year students.
blank

Course Listing for COMPUTER SCIENCE - Fall 2024 (ALL: 09/03/2024 - 12/18/2024)
Class
No.
Course ID Title Credits Type Instructor(s) Days:Times Location Permission
Required
Dist Qtr
2620 CPSC-110-01 Essentials of Computing-Python 1.00 LEC Johnson, Jonathan TR: 10:50AM-12:05PM TBA Y NUM  
  Enrollment limited to 24 Waitlist available: Y Mode of Instruction: In Person  
  Prerequisite: A satisfactory score on the Mathematics Placement Examination or a C- or better in Quantitative Literacy 101 or QLIT 103
  NOTE: 14 seats reserved for first year students.
  This course introduces fundamental concepts of computing and problem-solving techniques using the programming language Python. Topics covered include computer organization, data representations, algorithm design, coding, testing, and debugging strategies. Students will also explore various application areas of computing through a series of hands-on programming exercises. No prior programming experience is expected. This course is not open to students who have completed CPSC 215L This course is not open to students who have completed FYSM 124, Enchanted Data and Machine Minds
1006 CPSC-115-01 Intro to Computer Science 1.25 LEC Islam, Maminur MWF: 11:00AM-11:50AM TBA NUM  
  Enrollment limited to 40 Waitlist available: Y Mode of Instruction: In Person  
  Prerequisite: C- or better in Computer Science 110 or mathematics skills appropriate for enrolling in a calculus class.
  NOTE: 19 seats reserved for first-year students, 18 seats for sophomores and 3 seats for HMTCA students.
  This course provides an introduction to computer science from broad and diverse perspectives, through object-oriented problem-solving using the Java programming language. Throughout the course, recurring themes are abstraction and effective use of basic algorithmic constructs such as sequence, selection and iteration. The building blocks of object-oriented programming such as encapsulation, inheritance, polymorphism and generics are covered and reinforced with practical applications. Required weekly laboratory sessions deepen students' learning with hands-on opportunities to experiment with the concepts covered in the lectures.
1007 CPSC-115-20 Intro to Computer Science 1.25 LAB Islam, Maminur T: 1:30PM-4:10PM TBA NUM  
  Enrollment limited to 20 Waitlist available: Y Mode of Instruction: In Person  
  Prerequisite: C- or better in Computer Science 110 or mathematics skills appropriate for enrolling in a calculus class.
  This course provides an introduction to computer science from broad and diverse perspectives, through object-oriented problem-solving using the Java programming language. Throughout the course, recurring themes are abstraction and effective use of basic algorithmic constructs such as sequence, selection and iteration. The building blocks of object-oriented programming such as encapsulation, inheritance, polymorphism and generics are covered and reinforced with practical applications. Required weekly laboratory sessions deepen students' learning with hands-on opportunities to experiment with the concepts covered in the lectures.
1008 CPSC-115-21 Intro to Computer Science 1.25 LAB Spezialetti, Madalene W: 1:30PM-4:10PM TBA NUM  
  Enrollment limited to 20 Waitlist available: Y Mode of Instruction: In Person  
  Prerequisite: C- or better in Computer Science 110 or mathematics skills appropriate for enrolling in a calculus class.
  This course provides an introduction to computer science from broad and diverse perspectives, through object-oriented problem-solving using the Java programming language. Throughout the course, recurring themes are abstraction and effective use of basic algorithmic constructs such as sequence, selection and iteration. The building blocks of object-oriented programming such as encapsulation, inheritance, polymorphism and generics are covered and reinforced with practical applications. Required weekly laboratory sessions deepen students' learning with hands-on opportunities to experiment with the concepts covered in the lectures.
2621 CPSC-203-01 Math Foundatns of Comput 1.00 LEC Miyazaki, Takunari MWF: 10:00AM-10:50AM TBA NUM  
  Enrollment limited to 24 Waitlist available: Y Mode of Instruction: In Person  
  Prerequisite: C- or better in CPSC 115 or concurrent enrollment.
  An introduction to the principles of logic and discrete mathematics required in the study of computer science. Topics covered may include: propositional and predicate logic and their relationship to general proof techniques used in computing and correctness proofs of programs; mathematical induction applied to recursion and recurrence relations; set theory with an emphasis on infinite sets used in computing; counting principles useful in analyzing graphs and trees; relations and functions and their relationship to databases and functional programming languages. Computer programs will be used to explore concepts examined in the course.
2187 CPSC-215-01 Data Structures & Algorithms 1.25 LEC Johnson, Jonathan TR: 9:25AM-10:40AM TBA NUM  
  Enrollment limited to 24 Waitlist available: Y Mode of Instruction: In Person  
  Prerequisite: C- or better in Computer Science 115L.
  A study of data structures and algorithms using a high-level programming language. The basic data structures (lists, stacks, queues, trees, and files) and basic algorithms (searching, sorting, and file management) will be introduced and implemented. Data and procedural abstraction, software design principles, and the analysis of the complexity of algorithms will be discussed. Details related to programming will be covered in a required weekly lab.
2188 CPSC-215-20 Data Structures & Algorithms 1.25 LAB Johnson, Jonathan T: 1:30PM-4:10PM TBA NUM  
  Enrollment limited to 12 Waitlist available: Y Mode of Instruction: In Person  
  Prerequisite: C- or better in Computer Science 115L.
  A study of data structures and algorithms using a high-level programming language. The basic data structures (lists, stacks, queues, trees, and files) and basic algorithms (searching, sorting, and file management) will be introduced and implemented. Data and procedural abstraction, software design principles, and the analysis of the complexity of algorithms will be discussed. Details related to programming will be covered in a required weekly lab.
2189 CPSC-215-21 Data Structures & Algorithms 1.25 LAB Miyazaki, Takunari W: 1:30PM-4:10PM TBA NUM  
  Enrollment limited to 12 Waitlist available: Y Mode of Instruction: In Person  
  Prerequisite: C- or better in Computer Science 115L.
  A study of data structures and algorithms using a high-level programming language. The basic data structures (lists, stacks, queues, trees, and files) and basic algorithms (searching, sorting, and file management) will be introduced and implemented. Data and procedural abstraction, software design principles, and the analysis of the complexity of algorithms will be discussed. Details related to programming will be covered in a required weekly lab.
1531 CPSC-275-01 Intro to Computer Systems 1.25 LEC Yoon, Peter TR: 8:00AM-9:15AM TBA NUM  
  Enrollment limited to 24 Waitlist available: Y Mode of Instruction: In Person  
  Prerequisite: C- or better in Computer Science 215.
  This course introduces the fundamental organization and structure of modern computer systems from the perspective of a programmer. Students will become more effective programmers as they learn how computer systems compile, link, and execute programs, store information, and communicate. Topics covered will include data representations, computer arithmetic, low-level representations of programs, processor organization, the memory hierarchy and management, processes, and system-level I/O. A required weekly lab will involve a series of programming exercises related to these topics.
1870 CPSC-275-21 Intro to Computer Systems 1.25 LAB Yoon, Peter M: 1:30PM-4:10PM TBA NUM  
  Enrollment limited to 24 Waitlist available: Y Mode of Instruction: In Person  
  Prerequisite: C- or better in Computer Science 215.
  This course introduces the fundamental organization and structure of modern computer systems from the perspective of a programmer. Students will become more effective programmers as they learn how computer systems compile, link, and execute programs, store information, and communicate. Topics covered will include data representations, computer arithmetic, low-level representations of programs, processor organization, the memory hierarchy and management, processes, and system-level I/O. A required weekly lab will involve a series of programming exercises related to these topics.
3392 CPSC-304-01 Computer Graphics 1.00 LEC Yoon, Peter TR: 2:55PM-4:10PM TBA NUM  
  Enrollment limited to 24 Waitlist available: N Mode of Instruction: In Person  
  Prerequisite: C- or better in Computer Science 215.
  An introduction to geometric and computer graphics principles needed for developing software with graphical output. General principles of designing and testing of software systems with reusable components will be emphasized. Geometry and computer graphics topics covered will include coordinate systems, geometric transformations, windowing, curves, fractals, polyhedra, hidden lines, surfaces, color, and shading. Graphical programs that model phenomena from the natural sciences or aid the visualizing of conceptual models in computer science and mathematics will be used for examples and assignments.
3393 CPSC-310-01 Software Design 1.00 LEC Kousen, Kenneth TR: 10:50AM-12:05PM TBA NUM  
  Enrollment limited to 24 Waitlist available: Y Mode of Instruction: In Person  
  Prerequisite: C- or better in Computer Science 215.
  Object-oriented paradigm for software analysis and design using an object-oriented programming language as a means to efficient, reliable, modular, and reusable code. Topics covered will include problem solving and design processes, design patterns, object-oriented principles and language-specific techniques, and tools for object-oriented modeling.
3207 CPSC-316-01 Found Programming Lang 1.00 LEC Yoon, Peter TR: 9:25AM-10:40AM TBA NUM  
  Enrollment limited to 24 Waitlist available: N Mode of Instruction: In Person  
  Prerequisite: C- or better in Computer Science 215L and Computer Science 203 (or concurrent enrollment in 203).
  A study of the organization, specification, and behavior of programming languages. The course will focus on five different programming language paradigms: imperative, object-oriented, functional, logic, and concurrent. Programming assignments using example languages from each of these paradigms will be required. Emphasis will be placed on learning C++, PROLOG, and LISP in a Unix environment. Other topics covered include language syntax, control structures, objects, and functions.
3208 CPSC-340-01 Software Engineering 1.00 LEC Spezialetti, Madalene W: 6:30PM-9:00PM TBA NUM  
  Enrollment limited to 24 Waitlist available: Y Mode of Instruction: In Person  
  Prerequisite: C- or better in Computer Science 215L and Computer Science 203 (or concurrent enrollment in 203).
  The study of issues involved in developing large-scale software systems. Topics covered include software life cycle, system design and specification, advanced programming concepts, and techniques for software testing, debugging, and maintenance. The issues studied will be applied to team projects.
1441 CPSC-399-01 Independent Study 0.50 - 1.00 IND TBA TBA TBA Y  
  Enrollment limited to 15 Waitlist available: N Mode of Instruction: In Person  
  Independent work to develop maturity and initiative in the solution of a problem in the area of the student's special interests. This course may require concurrent registration in Computer Science 403 or 404. Submission of the special registration form, available in the Registrar's Office, and the approval of the instructor and chairperson are required for enrollment.
2924 CPSC-403-01 Computer Science Seminar 0.50 SEM Kousen, Kenneth R: 1:30PM-2:45PM TBA Y WEB  
  Enrollment limited to 19 Waitlist available: N Mode of Instruction: In Person  
  This course is open only to senior Computer Science majors.
  Students engaged in research (Computer Science 419) or independent study (Computer Science 399) and senior exercise students will meet with computer science faculty for oral presentations and critical discussions of journal papers, research plans, and research progress. Seniors using this course to satisfy the senior exercise requirement will be expected to complete a research or design project and make a formal presentation on its results to the seminar. The project may be an extension or revision of a project conducted in one of their other major courses.
1504 CPSC-466-01 Teaching Assistant 0.50 - 1.00 IND TBA TBA TBA Y  
  Enrollment limited to 15 Waitlist available: N Mode of Instruction: In Person  
  Submission of the special registration form, available online, and the approval of the instructor are required for enrollment. Guidelines are available in the College Bulletin. (0.5 - 1 course credit)
2452 CPSC-490-01 Research Assistantship 0.50 - 1.00 IND TBA TBA TBA Y  
  Enrollment limited to 15 Waitlist available: N Mode of Instruction: In Person  
  This course is designed to provide students with the opportunity to undertake substantial research work with a faculty member. Students need to complete a special registration form, available online.
2917 CPSC-498-01 Senior Project Part 1 0.50 IND TBA TBA TBA Y  
  Enrollment limited to 15 Waitlist available: N Mode of Instruction: In Person  
  This course is comprised of a research or implementation project and a final written report. This course is required for all senior computer science majors. Students must locate a project advisor and must submit a preliminary proposal to the project adviser by the last day of classes in the spring semester of the junior year. In addition to the proposal, submission of the special registration form and the approval of the instructor and chairperson are required for each semester of this year-long project.(1 course credit to be completed in two semesters.)