This course introduces the "algorithmic thinking" and the design and implementation processes necessary for you to solve complex, real-world problems with computers. We introduce the Java programming language to learn to write programs; understand the features of programming languages; decompose problems; develop algorithms; and use important software practices. We include software architecture (structure), classes (ways of modeling things), handling data, some computer ethics, standards, and maintaining program correctness. This course and its successor, CS 142 will help you become more competent and comfortable on the paths to both computer science and professional software development. CS 100 is strongly recommended for students with no programming experience. This class may include students from multiple sections. (Elective)
P (2.0 or higher) or concurrent enrollment in MATH 98 or equivalent
Course Outcomes
- Implement basic numerical algorithms.
- Implement common search algorithms, including linear searches.
- Apply the concepts of modeling and abstraction with respect to problem solving.
- Design a simple class hierarchy using superclasses, and subclasses.
- Design an algorithm in a programming language to solve a simple problem.
- Create code in a programming language that includes primitive data types, references, variables, expressions, assignments, I/O, control structures, and functions.
- Apply a variety of strategies to test and debug programs.
- Use an integrated development environment (IDE) to create, execute,test, and debug secure programs.
- Use standard libraries for a given programming language.
- Differentiate among intellectual property, fair-use, copyright, patent,trademark, and plagiarism.
- Develop technical artifacts.
- Develop and use Unit Tests to guide development and verify software methods.
- Write programs involving multiple classes and files, user I/O and internal storage.