IIntro

Syllabus

Instructor Contact info

Instructor: Dr. John F. Santore
Office: Science Center 333
E-Mail: jsantore@bridgew.edu
Website:http://webhost.bridgew.edu/jsantore/Spring2023/Capstone


Office Hours FoR Spring 2023

  • Monday 10-11am
  • Wednesday 4:45-5:45pm
  • Thursday 2-3pm
  •  Friday 10-11am
  • or by appointment

I   also will take appointments if you cannot make my other office hours, however, I generally have meetings and work prepared for a day or two ahead so plan on about 48 hours from the time I get your request to us being able to meet.



Course Description:

Course Description (comp490):

This course provides the capstone experience for computer science majors. It pulls together the fundamental elements of the discipline and illustrates how these elements work together in practice. It generally assumes you have taken, or are taking, all of the required CS courses by the time you take this course. This course also exposes students to some cutting edge aspects of computer science. It requires students to think and write critically about the effects that our discipline can have on individuals and society. Students will design and implement a large team programming project and build projects in stages, experiencing the after effects of their earlier decisions.

Course Prerequisites: Comp442/Comp390 (software engineering) and Senior Standing


Course Description (comp530):

Topics in this course will include construction of reliable software, software tools, software testing methodologies, structured design, structured programming, software characteristics and quality and formal proofs of program correctness. Chief programmer teams and structure walk-throughs will be employed. Offered periodically.  
Course Prerequisite: Admission to the MS program in Computer Science or consent of instructor

Course Outcomes

At the end of the course Students will:

  • Satisfactorily programs part of an existing large project  
  • Accurately describes the merits and possible unintended consequences of a computational system, service or proposal 
  • Identifies disruptive effects of latest computing advancements on individuals, organizations, and society 
  • Can articulate differences/trade-offs of multiple designs
  • Works together as part of a team. 
  • Builds a significant project using 3rd party library with little formal instruction on those libraries
  • Demonstrates use of state-of-the-practice (or state-of-the-art) development techniques including automated testing for 1 & 6 above
  • Can work effectively with data and data stores.

Textbooks:

One required Textbook:


Title:

The Pragmatic Programmer (20th Anniversary Edition)

Author:

David Thomas and Andrew Hunt

ISBN

978-0-13-595705-9

    Class Requirements and Grading

    • Project related work: 55% (coding, testing, design, etc)
    • Class(homework/quizzes/participation/presentation(s)):15%
    • Exams 30% : Midterm and Final (usually a presentation and paper combo)

Project Work

There will be one group project and one solo project in this class. Each will be done in steps. You will be given the opportunity to form your own groups in the first or second weeks of the class. To assure that every student does his or her fair share of the work, exit interviews will be done after some deliverables where each student discuss the team's solution and work on their part of the project. Each person needs to understand the project and the group's contributions to the project. Questions on the quizzes and homeworks may also be used to assess your understanding of the project. Unlike some group projects, in this class, every group member  is expected to understand their own group's work in totality.

Late project work will be assessed a late penalty. Very late work will have the late penalty exceed the value of the assignment. I will sometimes publish my solution to some of the sprints for the first project. You are welcome to use those solutions as the basis of your next sprint, but I cannot take any late projects after I publish my solution for obvious reasons.

Non-Project Work

Non-project work (exams and misc assignments) are individual assignments and should not be done with any other classmates. (discussion without recording devices is always allowed for homeworks, exams are closed neighbor) The exam part of the grade will be split 15% for the midterm and 15% for the final exam.

Students with Special Needs

Anyone who has special needs should contact me in the first week of classes with their letter from the Academic Achievement center so that reasonable accommodations can be agreed on.

Academic Integrity

See the 2023 academic integrity policy (Undergraduate) or Or the Graduate Academic integrity policy  for a complete description of the academic integrity procedure at Bridgewater.

Academic integrity will be taken very seriously in this class. All individual work must be your own. If you cheat or otherwise represent the work of others as your own. You will receive an F for the course.

Guidelines for proper academic integrity:

Discussing problems with your classmates can help you understand the problems and kinds of solutions to those problems that you will learn about in this class. In an effort to make in clear what sort of discussions are appropriate and encouraged in this class and which cross the line to academic dishonesty I use the following guidelines: You may discuss any out of class problem I assign in this class with your classmates or other so long as no one is using any sort of recording implement including, but not limited to, computers, digital recorders, pens, pencils, phones etc. This lets you talk about theoretical solutions without sharing the actual implementations. As soon as anyone in the group is typing, writing etc, all conversations must stop. You may look at someone else's program code only very briefly in order to spot a simple syntax error. As a rule of thumb, if you find yourself looking at someone else's code for more than about 30-45 seconds it is probably time to stop. If you are having trouble with your program, come to the instructors office hours for more help.

Most in class exams and quizzes are open book and closed neighbor.


Of course for your group work, your entire group is intended to produce a single deliverable and are expected to work together on all parts of that so the above does not apply to members of a group working together on their group work. On that second project (not the sprints for the first project), groups may work as closely as they wish, up to an including pair programming for all if you wish.


Standards for in class behavior:

All students coming into the in class sections will need to abide by the University's Covid Guidelines. This semester we are allowed to relax the mask  requirement in individual classrooms, and I shall do that. Mask (medical, not Halloween) or not as you need to.


You are all adults and are expected to act as adults in this class. While questions are encouraged in this class, if a particular line of questioning is taking us too far afield, I will ask the student to come by my office hours or to see me after class.

Cell phones,  and other devices should be silenced while in class. If you work of EMS or something similar, please turn your cell phones/ other electronics etc to vibrate mode so that you are not disrupting others in the class.

In the unlikely case of trouble makers in the class, those who are simply attempting to disrupt the class will be asked to stop; those who will not, will be referred to the college for appropriate action. The BSU statement of class behavior can also be found  with the academic integrity policy above

    Tentative Schedule

I may well rearrange some of the later material based on classroom interaction.

Tentative Schedule: (I'll almost certainly move things around)

Week

Topic

Week 1

Introduction to the class Also soft skills throughout semester

Week 2

Using APIs /Automated Testing/ Continuous Integration

Week 3

Continuous Integration/Using and Storing Data

Week 4

Pragmatic programming/Code smells/Clean Code Part 1

Week 5

Data handling part 2

Week 6

Pragmatic programming/Code smells/Clean Code Part 2

Week 7

Automated Testing Part 2

Week 8

The effects of computing advances on individuals and society

Week 9

Design and Design Tradeoffs

Week 10

More Automated Testing / Intellectual Property?

Week 11

Group work, remote work

Week 12

Ethics and unintended consequences

Week 13

Pragmatic programming/Code smells/Clean Code 3

Week 14

Automated testing/formatting/pull requests and workflows

Final Exam week

Presenting your amazing accomplishments.