Post

Course Teaching: [SOFTWARE CONSTRUCTION] [2022/2023]

Course Teaching: [SOFTWARE CONSTRUCTION] [2022/2023]

Course Overview

In this course, students engage with concepts related to the construction of software systems at scale, building on their understanding of the basic building blocks of data structures, algorithms, and program and computer structures. The course covers technical topics in four areas: (1) concepts of design for complex systems, (2) object-oriented programming, (3) static and dynamic analysis for programs, and (4) concurrency. At the conclusion of this course, students will have substantial experience building medium-sized software systems in Java.


Course Snapshot

  • Credits: [3]
  • Audience: [Undergraduates]
  • Delivery Mode: [In-person]
  • No. of Students: [30]
  • Students Evaluation: [N/A]

Teaching Objectives

  1. Demonstrate detailed knowledge of Object-Oriented Programming principles. 

  2. Restate common design paradigms, architectural styles, and design patterns associated with these paradigms.

  3. Recognize concurrency principles and sources of complexity in software.

  4. Apply software construction techniques in software development projects to solve real-life problems.

  5. Use Java API’s concurrent data structures in a thread-safe program.

  6. Practice configuration management techniques and use tools, such as GitHub to construct quality software.

  7. Work effectively as a member or leader in a software development project.


Assessment & Student Engagement

  • Strategies for Engagement: (discussions, group work, etc.)
  • Assessment MethodsWeighting
    Quizzes15%
    Assignment10%
    Project25%
    Exam50%

Reflections

  • What worked well:
  • What could be improved:
  • Student feedback highlights:

Resources

  • Joshua Bloch, Effective Java, Addison-Wesley Professional, 3rd Edition, 2017, ISBN: 978-0134685991
  • Craig Larman, Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, Prentice Hall, 3rd Edition, 2004, ISBN: 978-0131489066
  • Doug Lea, David Holmes, Joseph Bowbeer, Joshua Bloch, Tim Peierls, Brian Goetz, Java Concurrency in Practice, Addison-Wesley Professional, 1st Edition, 2006. ISBN: 978-0321349606 \

Testimonials (optional)

If you’ve taken this course and you’re visiting this site, feel free to drop a comment and share your thoughts or experience!


This post is licensed under CC BY 4.0 by the author.