CS 125

CS 125 - Intro to Computer Science

Spring 2021

TitleRubricSectionCRNTypeHoursTimesDaysLocationInstructor
Intro to Computer ScienceCS125AL231155OLC4 -    Geoffrey Challen
Intro to Computer ScienceCS125ALP31152OLC4 -    Geoffrey Challen
Intro to Computer ScienceCS125AYA31157OLB00900 - 0950 T    
Intro to Computer ScienceCS125AYB31159OLB01000 - 1050 T    
Intro to Computer ScienceCS125AYC31160OLB01100 - 1150 T    
Intro to Computer ScienceCS125AYD31163OLB01200 - 1250 T    
Intro to Computer ScienceCS125AYE31176OLB01300 - 1350 T    
Intro to Computer ScienceCS125AYF31177OLB01400 - 1450 T    
Intro to Computer ScienceCS125AYH31168OLB01500 - 1550 T    
Intro to Computer ScienceCS125AYI31170OLB01600 - 1650 T    
Intro to Computer ScienceCS125AYJ31172OLB01700 - 1750 T    
Intro to Computer ScienceCS125AYM62256OLB01900 - 1950 T    
Intro to Computer ScienceCS125AYN62257OLB02000 - 2050 T    

Official Description

Basic concepts in computing and fundamental techniques for solving computational problems. Intended as a first course for computer science majors and others with a deep interest in computing. Course Information: Prerequisite: Three years of high school mathematics or MATH 112. Class Schedule Information: Students must register for one lab-discussion and one lecture section. Engineering students must obtain a dean's approval to drop this course after the second week of instruction.

Learning Goals

  1. Create computer programs that solve a variety of problems using appropriate techniques, including imperative, recursive, and object-oriented approaches. (1, 2, 6)
  2. Read and understand iterative and recursive computer code—determining intention, tracing runtime behavior, identifying bugs and errors that might occur, and estimating computational cost and complexity. (2)
  3. Develop and debug programs using industry-standard tools and best practices, including visual editing and debugging (IntelliJ and Android Studio), source version control (Git), and pair programming. (1, 2, 5, 6)
  4. Understand the features of computers that make them useful for solving problems, including computation, memory, storage, and networking. (2)
  5. Learn and apply classic computer science algorithms for sorting and searching data while understanding their behavior and running time. (1, 6)
  6. Write computer programs that represent and manipulate different types of information—such as text, audio, and visual data. (1, 2, 6)
  7. Formulate useful algorithms that solve real problems and can be implemented and run on a computer. (1)
  8. Use object-oriented design to appropriately structure data and couple data and behavior. (2, 6)

Topic List

  • Imperative programming:
    • variables and types
    • conditional expressions and statements
    • loops
    • single- and multi-dimensional arrays
    • functions
    • interfaces
    • throwing and handling exceptions
    • recursion
    • representing and working with different kinds of data
    • computational thinking
  • Object-oriented programming:
    • classes, instances, and references
    • class design: constructors; getters, and setters; instance and class variables
    • inheritance and subtype polymorphism
    • parametric polymorphism (generics)
    • data modeling
  • Data structures and algorithms:
    • Lists, trees, maps, and graphs
    • Searching, sorting, and hashing
    • Basic runtime analysis and big O notation
  • Software engineering:
    • debugging and testing
    • software version control
    • UI design and implementation

Required, Elective, or Selected Elective

Required

Last updated

3/21/2019by Geoffrey Challen