Course Structure and Policies
Thomas J. Kennedy
1 Syllabus
All students are responsible for reading the course syllabus and abiding by the policies described there.
1.1 Course Pre-requisites
-
CS 252 (Introduction to Unix for Programmers)
-
and
- CS 330 (Object-Oriented Programming and Design), or
- CS 361 (Advanced Data Structures and Algorithms)
- Students who have not taken CS 330 are encouraged to take CS 382 (Introduction to Java) as a pre-requisite or, at the very least, to work through that course’s website during the first few weeks of the semester.
2 Course Structure
2.1 Sessions
-
Lectures: online - no meeting times
Lecture materials for this course will be available on-line, primarily in printed/text form.
-
Recitations: Tuesdays, 3:00pm-5:00pm or 7:10pm-9:10pm (selected weeks)
Refer to LeoOnline/BannerXE for your recitation time
Recitations will be conducted by network conferencing.
Attendance is mandatory in the scheduled weeks.
Recordings will not be available.
2.1.1 Recitations
Recitations will be used for special topics and for meetings with teams once the semester project is underway.
- They will not meet every week.
- Meetings will be on-line.
- You will attend from your “development machine”.
2.2 Review Recordings
I provide recorded Reviews on the course site. These are, in general, condensed versions of what would traditionally be live lectures. This includes:
- CS 350 (this course)
- CS 330 (Object Oriented Programming and Design)
- CS 333 (Accelerated CS 150/250)
As a general policy I make all three sets of reviews available to CS 350 and CS 330 students. You will find direct links to CS 350 Review Recordings throughout the outline. I will update these reviews throughout the semester (as necessary).
3 Activities
Each module in the course outline contains a variety of activities.
- Not all are graded.
- But unless specifically stated otherwise, all are required
- And should be completed by the end of that module
3.1 Readings
- lecture notes
- textbook chapters & web articles
3.2 Assignments
Individual assignments will include:
- Unit Testing (two parts)
- Version Control (git)
- Test-Driven Development
- Build Manager (gradle)
- Continuous Integration (Github Actions)
3.3 Labs
There are a number of activities marked in the outline as “Labs”.
- These are ungraded activities.
- They are, nonetheless, required.
- Many of the later assignments will make direct use of files, code, and/or skills from an earlier lab.
3.4 Semester Project
A moderately large program on which you will work in teams of 4-6 people.
Four phases:
- Writing Requirements
- Planning for construction: writing user stories
- Early construction: build management, version control, story tracking, project website
- Later construction: documentation management, continuous integration, system testing
-
In general, your team will be evaluated upon process as much as upon their ability to produce working code.
The idea is to see if you have established a team process such that, if you had enough time, you would have eventually implemented the entire process.
-
The team score will be modified for individuals based on evidence of teamwork.
3.4.1 Project Teams
- Teams will be assigned randomly.
- Each Team will draft a contract defining their expectations of acceptable participation.
- There will be options for voluntarily leaving a team, and for being fired from
-
You will choose your own teams for the remaining phases
- Must be members of your recitation section.
3.4.2 Project and Recitations
The construction phases (starting with Phase 3) will be evaluated in part via one or more team meetings with the instructor.
- Held during recitation period
- The instructor will ask questions about team’s overall progress.
- The instructor may direct questions to specific team members to be sure that everyone shares an understanding of the project and required skills.
-
General rule is that if one member of a team does not know something, that’s a mark against that person. If two people don’t know something, that’s a mark against the entire team.
-
-
At end of some meetings, you may receive a short test/assignment, which each team member must complete individually within a limited time period (a day or less).
3.4.3 Expectations
The team project is a integral part of this course.
-
Students are expected to actively participate in and contribute to their teams.
- This engagement with the team will be part of the grade.
- It is possible to be fired from a team if your teammates believe that you are slacking.
-
Procrastination and deadline-brinkmanship are detrimental to any team dynamic.
- Students who work early and often will be rewarded.
4 Exams
- Midterm & Final
- Administered on-line
- Dates & times on the course calendar
- Final exam is cumulative.
5 Communications
Contact Info
Instructor | Office | Phone # | Home Page & Office Hours | |
---|---|---|---|---|
Thomas J. Kennedy | Dragas 1100D | 757.683.7725 | tkennedy@cs.odu.edu | http://www.cs.odu.edu/~tkennedy |
Important: The course name “CS350” should appear in the subject line of all course-related email.
I try to respond to all (properly marked) messages before I leave campus each day (Monday through Friday). On weekends and holidays within 48 on weekends & holidays.