COMP 240: Computer Applications, Spring 2024

This syllabus is subject to change based on specific class needs, especially the schedule. Significant deviations will be discussed in class. Individual exceptions to the policies and schedule are granted only in cases of true emergency. Please make arrangements with me if an emergency arises.

Logistics

Content

Description

In this course, students will work in small groups to develop three different computer applications. Each application will expose them to a different computing platform along with the tools and computing concepts used in developing programs for that platform. The platform and purpose of each applications will vary from year to year and instructor to instructor, but common choices of platforms include: the command line interface, the web, mobile devices, and high-performance computing. Students will maintain and develop their projects using GitHub and Git version control software. Emphasis will be placed on building effective software development teams as well as building the software itself. Upon completing the course students will know how to apply basic software engineering practices in a small group setting, how to maintain software through the git version control system, and will have experience with tools and best-practices for developing modern software applications for three different computing platforms.

Sources

Books and reference materials will be based on projects assigned but are likely to be a combination of online resources and instructor provided handouts. As part of their projects students will learn to seek out and work with reference material for programming tools and languages in addition to textbooks.

Software

Every project will use git and GitHub for collaboration and version control. If you are familiar with the command line you may prefer to simply use the git command; otherwise you should install a graphical client. You will need to download gititself. Although it comes with a basic graphical client, you may prefer to install a third-party client; GitHub Desktop will suit our needs, although you may choose whichever you wish.

Policies

Assessment

Assignments and Workload

The weekly workload for this course will vary by student and by week but should be about 12-13 hours per week on average. The following table provides a rough estimate of the distribution of time over different course components for a 16 week semester, as well as detailing the type, amount, and relative value of all assignments.

Category Amount Final Grade Weight Time/Week (Hours)
Class Meetings 42 15% (Participation) 2.5
Presentations 12 35% 2
Projects 3 45% 7-8
Project/Peer/Self Evaluations 3 5% 0.5
Total   100% 12-13

You can expect to spend most class meetings checking in with your current development team and the course instructor. Accompanying each project there will be four presentations: three checkpoint presentations and one final presentation with an application demo. These presentations will take place during scheduled class times.

Presentations

Presentations should cover at least four topics:

  1. Where we are: A demonstration of the current state of the project.
  2. How we got here: A presentation of the technical details as well as how the group worked together to get the project to its current state.
  3. Group SWOT analysis: In terms of the work presented, what were your group strengths and weaknesses? What opportunities do you have to move things forward for the next push? What threatens your progress?
  4. What’s next?: What do you plan to accomplish by the next checkpoint presentation? How will you achieve that goal given items identified by your SWOT analysis?

A clear-headed analysis of your group’s effectiveness is equally as important as progress on the code. Your group should be clearly working together to pursue a shared goal, helping one another, and generally exploring the ways in which how you work as a group impacts your progress.

Presetnations should consist of a short slide deck as well as live demos of features and/or GitHub.

Projects

Projects are a group effort. You’ll be called on both individually and as a group to evaluate your projects in two ways:

Grading

Your individual project and presentation grades will be determined based on the overall group effort as well as your individual contributions to the application. Individual contributions will be assessed throughthe project tracking features on GitHub/GitLab, through feedback provided by peer-reviews done about your work, and through your own self-evaluations. It will not necessarily be the case that each member of a group receive the same grade on a project or presentation. Participation grades will be determined by class attendance, contributions to discussions on GitHub/GitLab, and through the quality of your peer-reviews submitted about other members of the class. During the final exam period you will be required to carry out one last self-evaluation and self-reflection about the work you did throughout the course of the semester.

Your final grade is based on a weighted average of particular assignment categories. You can estimate your current grade based on your scores and these weights. You may always visit the instructor outside of class to discuss your current standing. Assignments and final grades use a standard grading scale shown below and will not be curved except in rare cases when deemed necessary by the instructor.

This courses uses a standard grading scale. Assignments and final grades will not be curved except in rare cases when its deemed necessary by the instructor. Percentage grades translate to letter grades as follows:

Score Grade
94–100 A
90–93 A-
88–89 B+
82–87 B
80–81 B-
78–79 C+
72–77 C
70–71 C-
68–69 D+
62–67 D
60–61 D-
0–59 F

You are always welcome to challenge a grade that you feel is unfair or calculated incorrectly. Mistakes made in your favor will never be corrected to lower your grade. Mistakes made not in your favor will be corrected. Basically, after the initial grading your score can only go up as the result of a challenge*.

You are always welcome to challenge a grade that you feel is unfair or calculated incorrectly. Mistakes made in your favor will never be corrected to lower your grade. Mistakes made not in your favor will be corrected. Basically, after the initial grading your score can only go up as the result of a challenge.

Schedule

The following tentative calendar should give you a feel for how work is distributed throughout the semester. Assignments and events are listed in the week they are due or when they occur. This calendar is subject to change based on the circumstances of the course.

Date Topic Assignment and Readings
Tue 01/16 (Week 1) Logistics, Github P0
Thu 01/18 Git and Git Classroom  
Tue 01/23 (Week 2) Project 1: Battlecode P1, read Project Overview
Thu 01/25    
Tue 01/30 (Week 3)    
Thu 02/01 Project 1 Checkpoint 1  
Tue 02/06 (Week 4)    
Thu 02/08 Project 1 Checkpoint 2  
Tue 02/13 (Week 5)    
Thu 02/15 Project 1 Checkpoint 3  
Tue 02/20 (Week 6)    
Thu 02/22 Project 1 Presentation  
Tue 02/27 (Week 7) Project 2: Game of Life P2
Thu 02/29    
Tue 03/05 (Week 8)    
Thu 03/07 Project 2 Checkpoint 1  
(Tue 03/12 – Thu 03/14) (Spring Break)  
Tue 03/19 (Week 9)    
Thu 03/21 Project 2 Checkpoint 2  
Tue 03/26 (Week 10)    
Thu 03/28 Project 2 Checkpoint 3  
Tue 04/02 (Week 11)    
Thu 04/04 Project 2 Presentation  
Tue 04/09 (Week 12) Project 3: Baseball Dashboard P3
Thu 04/11    
Tue 04/16 (Week 13)    
Thu 04/18 Project 3 Checkpoint 1  
Tue 04/23 (Week 14)    
Thu 04/25 Project 3 Checkpoint 2  
Tue 04/30 (Week 15)    
Thu 05/02 Project 3 Checkpoint 3  
Tue 05/07 (Week 16) Project 3 Presentation  
TBD Final Exam Time (We will not meet)  

Monmouth College Services