An immersive experience designed to empower students to bring their software ideas to life while cultivating entrepreneurial skills. Through a hands-on approach, students will navigate the entire software development lifecycle, while also gaining a practical understanding of entrepreneurship. Students will engage in in-depth coding projects, refine their problem-solving skills, and learn to navigate real-world challenges commonly faced by tech entrepreneurs. The course will foster creativity, collaboration, and a deep understanding of the Agile methodology, preparing students for the dynamic landscape of technology and innovation.

Moodle Course Page
Date Time, Location M-W-F 12:00 - 12:50 pm, Davis 117
Instructor Naser Al Madi
Office: Davis 115
Email: nsalmadi AT colby.edu
Course Goals
  1. Understand the differences, advantages, and disadvantages of software development life cycle models
  2. Fully explain and contrast agile and waterfall process models
  3. Demonstrate the ability to perform standard software development procedures such as project planning, issue tracking, and version control, as part of a team
  4. Create and perform software validation and testing
  5. Create a project plan with requirements documents, such as user stories or other artifacts
  6. Evaluate the role evolution and refactoring play in the software development process
Milestones

There are weekly/biweekly milestones (Sprints) for the project. The sprints are designed to break your project into smaller increments, which leads you to work better with your group members and can allow me to provide support and feedback more efficiently.

The following table lists the expected content of each sprint.

Class Participation Class time will be used as follow:
  • Class time will be divided into short lectures and active learning sessions. Each lecture will prepare you for the milestone you are working on, and the active learning part will give you the opportunity to work with your teammates on applying what you learned.
  • For almost every milestone, each group will give an oral presentation with slides/demo to update the rest of the class on your progress. Each group member should present the part they worked on. Everyone in the class is expected to ask questions and everyone in the group is expected to answer questions.
  • Attending classes is an easy way for you to work with your group members and/or get help from me. So you are expected to attend classes. Let me and your group members know beforehand if you have to miss a class.
Grading The course grade will be determined as follows:
Activity Percentage Grading Rubrics
Team projects (sprints) 45% The grade for each milestone depends on the content, your contribution, and your oral presentation. I want to know what you did, if you ran into problems and didn't make much significant progress, talk to me about it. The oral presentations is based largely on your ability to communicate your work to me and to your classmates. In order to receive a high grade, the contributions of each team member must be well-integrated into a coherent presentation. This means you should spend more time thinking about how to talk to each other and to your classmates. Also, it is perfectly acceptable to spend most of your presentation talking about challenges, since that is how we learn.
Solo sprints 25% These are short coding assignments that you will do on your own. They are designed to help you learn the material and to give you a chance to show me what you know.
Quizzes 10% Short weekly or biweekly quizzes in class.
Teamwork and Participation 10% The grade for participation depends largely on your teamwork skills, and your participation in class.
Final Presentation 10% The presentation will be graded based on the design and content.
Collaboration, Academic honesty

This policy applies to anyone you work with other than your partner.

Computer science, both academically and professionally, is a collaborative discipline. In any collaboration, however, all parties are expected to make their own contributions and to generously credit the contributions of others. In our class, therefore, collaboration on homework and programming assignments is encouraged, but you as an individual are responsible for understanding all the material in the assignment and doing your own work. Always strive to do your best, give generous credit to others, start early, and seek help early from both your professors and classmates.

The following rules are intended to help you get the most out of your education and to clarify the line between honest and dishonest work. We reserve the right to ask you to verbally explain the reasoning behind any answer or code that you turn in and to modify your project grade based on your answers. It is vitally important that you turn in work that is your own. We do use automated plagiarism detection software, so please be sure to abide by these, rather minimal, rules. Reports of academic dishonesty are handled by an academic review board and a finding of academic dishonesty may result in significant sanctions. For more details on Colby's Academic Integrity policies and procedures, see colby.edu/academicintegrity.

  • If you have had a substantive discussion of any programming project with a classmate, then be sure to cite them in your write-up. If you are unsure of what constitutes "substantive", then ask me or err on the side of caution. As one rule of thumb, if you see more than 10 lines of someone else's code, then you should cite them. You will not be penalized for working together.
  • You must not copy answers or code from another student either by hand or electronically. Another way to think about it is that you should be talking English with one another, not program languages.
  • Assistive code autocomplete systems that generate more than a single token of code are not permitted. You are expected to write all your code on your own and be able to explain it and rewrite it without assistance.
AI Policy

Understanding and using AI are important skills that you will master as part of your CS education at Colby, and the following policy will provide a controlled way for you to use AI to your learning advantage in this course:

  • Students may use AI tools (e.g., ChatGPT) solely for understanding concepts, reviewing examples, or receiving feedback on their code. These tools can be valuable for clarifying ideas and enhancing comprehension.
  • Using AI to generate any code, solutions, or answers is not permitted and considered academic misconduct.
  • Students must be able to demonstrate their understanding of solutions through verbal explanations, either in class discussions, office hours, or during assessments.
  • The use of AI code completion tools, such as GitHub Copilot or other similar platforms, is not permitted. Students must write and develop their code independently to ensure they are practicing and reinforcing the skills taught in the course.

  • Here are some examples of prompts that do not violate the AI policy:
    • “What is the difference between a stack and a queue?”
    • “How does a binary search tree work?”
    • “I'm encountering this error message 'IndexError: list index out of range' when running my code. What does it mean, and how can I fix it?”
    • “Can you explain how Dijkstra's algorithm works? I'm trying to understand its steps and how it’s applied in practice.”
    • “Can you help me debug my code? Don't generate any code, just help me understand why my code is not working.”

  • Here are some examples of prompts that violate the AI policy:
    • “Can you provide me with a solution to this problem?”
    • “Can you write a function that ...?”
    • “Can you generate a code snippet that ....?”
    • “Can you fix my code so that ...?”

  • Violations of this policy, including the use of AI for generating code, may result in penalties ranging from a warning to a failing grade for the assignment or course, in accordance with Colby's academic integrity policy.
The Colby Affirmation

Colby College is a community dedicated to learning and committed to the growth and well-being of all its members.

As a community devoted to intellectual growth, we value academic integrity. We agree to take ownership of our academic work, to submit only work that is our own, to fully acknowledge the research and ideas of others in our work, and to abide by the instructions and regulations governing academic work established by the faculty.

As a community built on respect for ourselves, each other, and our physical environment, we recognize the diversity of people who have gathered here and that genuine inclusivity requires active, honest, and compassionate engagement with one another. We agree to respect each other, to honor community expectations, and to comply with College policies.

As a member of this community, I pledge to hold myself and others accountable to these values. More ...

Title IX Statement

Colby College prohibits and will not tolerate sexual misconduct or gender-based discrimination of any kind. Colby is legally obligated to investigate sexual misconduct (including, but not limited to, sexual assault and sexual harassment) and other specific forms of behavior that violate federal and state laws (Title IX and Title VII, and the Maine Human Rights Act). Such behavior also requires the College to fulfill certain obligations under two other federal laws, the Violence Against Women Act (VAWA) and the Jeanne Clery Disclosure of Campus Security Policy and Campus Statistics Act (Clery Act). To learn more about what constitutes sexual misconduct or to report an incident, see: http://www.colby.edu/studentlife/handbook-section/f-sexualmisconduct/

I am committed to all Colby students feeling safe, accepted, and included in all aspects of their college experiences, including this course. Colby prohibits and will not tolerate sexual misconduct or gender based discrimination of any kind and is obligated, by federal and state laws, to respond to reports and provide resources to students. As your professor I am considered a "responsible employee" which requires me to report incidence of sexual misconduct, dating violence, or harassment to the Title IX Coordinator.

If you wish to access confidential support services, you may contact:

  • The Counseling Center: 207-859-4490
  • The Title IX Confidential Advocate, Emily Schusterbauer: 207-859-4093
  • The Office of Religious and Spiritual Life: 207-859-4272
  • Maines's 24/7 Sexual Assault Helpline: 1-800-871-7741
Religious Holidays

Colby College supports the religious practices of students, faculty, and staff, but we don't always know which people will observe which holidays. Since I need to plan course activities in advance, I need to know in advance, if you need to miss a class or have a deadline adjusted in order to observe a holiday. Please notify me by email at least 14 days in advance of any religious holiday that will affect your ability to participate in this course.

© 2022 Naser Al Madi. Page last modified: 01/10/2022