CIT 5910 Introduction to Software Development Syllabus


Course Overview
CIT 5910 is designed to introduce students to the fundamentals of software development, focusing on the key concepts, tools, and techniques necessary for building robust and maintainable software. This course will cover a range of topics, including programming languages, software design principles, testing, version control, and software development methodologies. Students will engage in hands-on projects that simulate real-world software development scenarios, providing a practical understanding of the material.

Course Objectives
By the end of this course, students will:

  • Gain a strong foundation in software development principles and practices.
  • Develop proficiency in at least one programming language.
  • Understand the software development lifecycle and its phases.
  • Learn how to apply software design patterns and principles.
  • Gain experience with version control systems like Git.
  • Understand the importance of testing and how to implement various testing strategies.
  • Be able to work collaboratively in a team to develop software solutions.

Course Structure
The course is structured into weekly modules, each focusing on different aspects of software development. The key modules include:

  • Week 1: Introduction to Programming Languages
    An overview of programming languages, focusing on syntax, semantics, and best practices. Students will start with a simple programming language and gradually move to more complex ones.

  • Week 2: Software Design Principles
    Introduction to key design principles like SOLID, DRY, and KISS. Students will learn how to apply these principles in their coding practices.

  • Week 3: Version Control Systems
    Understanding the importance of version control in software development. Hands-on practice with Git and GitHub.

  • Week 4: Software Development Methodologies
    An exploration of different development methodologies such as Agile, Waterfall, and DevOps. The focus will be on Agile practices, including Scrum and Kanban.

  • Week 5: Testing and Debugging
    Introduction to testing strategies, including unit testing, integration testing, and end-to-end testing. Students will also learn debugging techniques.

  • Week 6: Project Development and Collaboration
    Students will work in teams to develop a software project, applying all the concepts learned in the course. Emphasis will be placed on collaboration, code review, and documentation.

Grading and Assessment

  • Assignments (30%): Weekly assignments that assess students' understanding of the material.
  • Midterm Exam (20%): A written exam covering the first half of the course content.
  • Final Project (30%): A team-based project that requires students to develop a fully functional software application.
  • Participation (20%): Active participation in class discussions, group activities, and peer reviews.

Required Texts and Materials

  • Textbook: "Software Engineering: A Practitioner's Approach" by Roger S. Pressman.
  • Software: Students will need to install a programming environment suitable for the course (e.g., PyCharm, Visual Studio Code).
  • Online Resources: Access to GitHub for version control and project collaboration.

Instructor Information

Course Policies

  • Attendance: Regular attendance is required. More than three unexcused absences may result in a lower grade.
  • Late Assignments: Assignments submitted after the due date will receive a 10% penalty per day, up to three days. After that, late submissions will not be accepted.
  • Academic Integrity: Students are expected to uphold the university's academic integrity policy. Plagiarism, cheating, or any form of academic dishonesty will result in disciplinary action.

Course Schedule

  • Week 1: Introduction to Programming Languages
    • Lecture: Introduction to Python
    • Lab: Writing your first Python program
    • Assignment: Basic Python exercises
  • Week 2: Software Design Principles
    • Lecture: Understanding SOLID principles
    • Lab: Refactoring code using SOLID principles
    • Assignment: Design a small software module
  • Week 3: Version Control Systems
    • Lecture: Introduction to Git and GitHub
    • Lab: Setting up a repository and committing changes
    • Assignment: Collaborative project setup
  • Week 4: Software Development Methodologies
    • Lecture: Agile vs. Waterfall
    • Lab: Simulating a Scrum sprint
    • Assignment: Create a project backlog and sprint plan
  • Week 5: Testing and Debugging
    • Lecture: Writing unit tests in Python
    • Lab: Debugging common Python errors
    • Assignment: Implement a test suite for your project
  • Week 6: Project Development and Collaboration
    • Lecture: Best practices in collaborative development
    • Lab: Code reviews and project integration
    • Assignment: Final project submission and presentation

Conclusion
CIT 5910 serves as a comprehensive introduction to software development, equipping students with the skills and knowledge necessary to excel in the field. Through a combination of lectures, hands-on labs, and collaborative projects, students will develop a deep understanding of the software development process and be well-prepared for more advanced courses and professional opportunities.

Popular Comments
    No Comments Yet
Comment

0