CS 125 - Intro to Computer Science

Spring 2020

TitleRubricSectionCRNTypeHoursTimesDaysLocationInstructor
Intro to Computer ScienceCS125AL231155LEC41000 - 1050 M W F  THEAT Lincoln Hall Geoffrey Werner Challen
Intro to Computer ScienceCS125ALP31152LEC41000 - 1050 M W F  THEAT Lincoln Hall Geoffrey Werner Challen
Intro to Computer ScienceCS125AYA31157LBD00900 - 0950 T  0403 Siebel Center for Comp Sci Heather Huynh
Intro to Computer ScienceCS125AYB31159LBD01100 - 1150 T  0403 Siebel Center for Comp Sci Beichen Zhang
Intro to Computer ScienceCS125AYC31160LBD01300 - 1350 T  0403 Siebel Center for Comp Sci Hyo Jin Do
Intro to Computer ScienceCS125AYD31163LBD01500 - 1550 T  0403 Siebel Center for Comp Sci Mingkun Gao
Intro to Computer ScienceCS125AYE31176LBD01700 - 1750 T  0403 Siebel Center for Comp Sci Jishnu Dey
Intro to Computer ScienceCS125AYF31177LBD01800 - 1850 T  0403 Siebel Center for Comp Sci Jishnu Dey
Intro to Computer ScienceCS125AYH31168LBD01700 - 1750 T  1111 Siebel Center for Comp Sci Sneha R Krishna Kumaran
Intro to Computer ScienceCS125AYI31170LBD01900 - 1950 T  0403 Siebel Center for Comp Sci Zhenyi Tang
Intro to Computer ScienceCS125AYJ31172LBD01800 - 1850 T  1111 Siebel Center for Comp Sci Zhenyi Tang
Intro to Computer ScienceCS125AYK31174LBD02000 - 2050 T  1111 Siebel Center for Comp Sci Beichen Zhang
Bruno Seo
Intro to Computer ScienceCS125AYM62256LBD01200 - 1250 T  0403 Siebel Center for Comp Sci Sneha R Krishna Kumaran
Intro to Computer ScienceCS125AYN62257LBD01000 - 1050 T  0403 Siebel Center for Comp Sci Heather Huynh
Intro to Computer ScienceCS125AYO62258LBD01600 - 1650 T  0403 Siebel Center for Comp Sci Mingkun Gao
Intro to Computer ScienceCS125AYP62259LBD01400 - 1450 T  0403 Siebel Center for Comp Sci Hyo Jin Do
Intro to Computer ScienceCS125AYS62262LBD02000 - 2050 T  0403 Siebel Center for Comp Sci Beichen Zhang
Bruno Seo
Intro to Computer ScienceCS125AYT62264LBD01900 - 1950 T  1111 Siebel Center for Comp Sci Bruno Seo

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

Assessment and Revisions

Revisions in last 6 years Approximately when revision was done Reason for revision Data or documentation available?
Introduced modern IDE: Eclipse 2007/8 Criteria (i) Informal discussion with Dir. of UG studies(Pitt) & CS225 Instructor (Heeren)
Created new, interesting programming assignments that also included unit-tests 2007/8 Previous assignments were outdated and uninspiring Informal discussion with Dir. of UG studies(Pitt) & CS225 Instructor (Heeren)
Added team-based projects 2009/8 Provide additional non-exam based content to re-inforce the utility of the CS experience within a broader context; ABET Criterion (d) Informal discussion with Dir. of UG studies(Pitt) & CS225 Instructor (Heeren)
Removed converting recursive function to an iterative function 2009/8 Weaker students used this as a prop to avoid reasoning recursively Informal discussion with Dir. of UG studies(Pitt) & CS225 Instructor (Heeren)
Added 1hour lab intro to C++ compilation, make, vim and the bash shell 2010/8 Reduce the perceived gap between CS125 and CS225. Broaden studen horizons beyond course constraints of Java+Eclipse; ABET Criterion (i) Informal discussion with Dir. of UG studies(Pitt) & CS225 Instructor (Heeren)
Revised team-based projects to be more open-ended. Add peer-led code reviews 2010/8 Give students team-based experience; ABET Criterion (d) Informal discussion with Dir. of UG studies(Pitt) & CS225 Instructor (Heeren)
Added optional Android training & competition 2010/8 Provide additional non-exam based content to re-inforce the utility of the CS experience within a broader context Informal discussion with Dir. of UG studies(Pitt) & CS225 Instructor (Heeren)
Replaced OO inheritance from Midterm 3 with array-based map and queue 2011/8 Replace OO syntax testing with implementation and reasoning about new data structures Informal discussion with Dir. of UG studies(Pitt) & CS225 Instructor (Heeren)

Required, Elective, or Selected Elective

Required

Last updated

3/21/2019by Geoffrey Werner Challen