The development of algorithms and their implementations in a higher-level programming language, with emphasis on proper design principles and advanced programming concepts. Introduction to the performance analysis of algorithms. Course requirements include a substantial number of programming projects.

COS 161 represents the second installment in an introductory sequence within the field of computer science. Completing this course is a prerequisite for the Computer Science major, and students are encouraged to review the complete requirements for the Computer Science program.

Prerequisite: Grade of C or higher in COS 160 or permission of instructor.

Learning Outcomes

By the end of this course, students will be able to:

  • Articulate fundamental concepts related to object-oriented programming, emphasizing the role and significance of classes in Java.
  • Demonstrate an understanding of the principles of class design and object-oriented programming by explaining the relationships between classes, objects, and methods.
  • Apply knowledge of classes to design and implement effective solutions, demonstrating proficiency in creating and utilizing courses in Java.
  • Analyze and evaluate the effectiveness of class hierarchies and relationships in solving complex programming problems.
  • Assess the trade-offs involved in different class design choices.
  • Create and implement well-designed class structures to solve real-world programming challenges.
  • Synthesize their understanding of classes, inheritance, and polymorphism to develop robust and scalable software solutions.

Textbook

Reges, S. & Stepp, M. (2020). Building Java Programs: A back to basics approach (5th ed.). Pearson. ISBN: 978-0135471944.

Syllabus

Spring 2024

Offered

Fall and Spring Semesters