CS 125
CS 125 - Intro to Computer Science
Fall 2021
Title | Rubric | Section | CRN | Type | Hours | Times | Days | Location | Instructor |
---|---|---|---|---|---|---|---|---|---|
Intro to Computer Science | CS125 | AL1 | 35876 | OLC | 4 | - | Geoffrey Werner Challen |
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: Credit is not given for both CS 125 and CS 124. 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