CS 125
CS 125 - Intro to Computer Science
Spring 2021
Title | Rubric | Section | CRN | Type | Hours | Times | Days | Location | Instructor |
---|---|---|---|---|---|---|---|---|---|
Intro to Computer Science | CS125 | AL2 | 31155 | OLC | 4 | - | Geoffrey Werner Challen | ||
Intro to Computer Science | CS125 | ALP | 31152 | OLC | 4 | - | Geoffrey Werner Challen | ||
Intro to Computer Science | CS125 | AYA | 31157 | OLB | 0 | 0900 - 0950 | T | ||
Intro to Computer Science | CS125 | AYB | 31159 | OLB | 0 | 1000 - 1050 | T | ||
Intro to Computer Science | CS125 | AYC | 31160 | OLB | 0 | 1100 - 1150 | T | ||
Intro to Computer Science | CS125 | AYD | 31163 | OLB | 0 | 1200 - 1250 | T | ||
Intro to Computer Science | CS125 | AYE | 31176 | OLB | 0 | 1300 - 1350 | T | ||
Intro to Computer Science | CS125 | AYF | 31177 | OLB | 0 | 1400 - 1450 | T | ||
Intro to Computer Science | CS125 | AYH | 31168 | OLB | 0 | 1500 - 1550 | T | ||
Intro to Computer Science | CS125 | AYI | 31170 | OLB | 0 | 1600 - 1650 | T | ||
Intro to Computer Science | CS125 | AYJ | 31172 | OLB | 0 | 1700 - 1750 | T | ||
Intro to Computer Science | CS125 | AYM | 62256 | OLB | 0 | 1900 - 1950 | T | ||
Intro to Computer Science | CS125 | AYN | 62257 | OLB | 0 | 2000 - 2050 | T |
See full schedule from Course Explorer
Web Page
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.
Course Director
Learning Goals
- Create computer programs that solve a variety of problems using appropriate techniques, including imperative, recursive, and object-oriented approaches. (1, 2, 6)
- 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)
- 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)
- Understand the features of computers that make them useful for solving problems, including computation, memory, storage, and networking. (2)
- Learn and apply classic computer science algorithms for sorting and searching data while understanding their behavior and running time. (1, 6)
- Write computer programs that represent and manipulate different types of information—such as text, audio, and visual data. (1, 2, 6)
- Formulate useful algorithms that solve real problems and can be implemented and run on a computer. (1)
- 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