CS 410 Professional Workforce Development (Spring 2024)
Thomas J. Kennedy
1 Basic Course Information
The course schedule and website are located at https://www.cs.odu.edu/~tkennedy/cs410/latest.
1.1 Catalog Description
Laboratory work required. Provides students with challenges of business environments in developing a technology based project. Students identify a societal problem, identify solutions, define project solutions, develop project objectives, conduct feasibility analysis, establish organizational group structure to meet project objectives and develop formal specifications. Students make formal technical project presentations and develop web documentation. Students prepare a draft grant proposal.
1.2 Overall Description
You will work with a team to identify a societal problem, propose a software solution, refine that software solutione, and defend that software solution. Once you have designed a real-world solution… your team (and you) will work to reduce the scope of the project into something that can be prototyped next semester in CS 411W.
1.3 Prerequisites
- Students must have earned a C or better in CS350 or be currently enrolled in CS350.
1.3.1 General Programming Knowledge
Students should be familiar with certain basic programming techniques that are largely independent of any specific programming language:
- using editors, compilers and other basic software development tools.
- basic software design (i.e., stepwise refinement and top-down design)
- software testing, including the use of scaffolding code (stubs and drivers), selection of test cases for black-box testing, and head to head testing.
- debugging, including the use of debugging output, the use of automatic debuggers to set breakpoints and trace program execution, and the general process of reasoning backwards from failure locations to the faulty code responsible for the failure.
1.3.2 C++ & Java Knowledge
I will assume that you are familiar with the basics of C++ or Java. This includes:
- the various C++ statements and control-flow constructs,
- the built-in data types,
- the use of arrays, pointers, pointers to arrays, and linked lists,
- the use and writing of functions, and
- the basic use of structs and/or classes for implementing abstract data types.
1.3.3 Python 3 & Rust Knowledge
Prior knowledge of Python and Rust is neither expected nor assumed.
In general, CS students at the 400 level should be able to pick up new programming languages with only moderate effort. If you need resources to get started with Python… take some time to work through the CS 263 materials
1.3.4 Unix/Linux
All students in the course will receive accounts on the CS Dept. network, and knowledge of how to work with the Linux servers is part of the course prerequisites. This course does not require familiarity with shell scripting. All other topics in CS 252 are required.
Some assignments will require the use of software available only on the Linux servers. Others may require (or, at least, be simplified by) use of the X windowing system.
1.3.5 General Computer Literacy
You will be studying techniques in this course for preparing professional-quality software documentation. The key embedded word in “software documentation” is “document”. Students taking this course should be able to use word processors and other common tools to produce good quality documents, including mixing text and graphics in a natural and professional manner.
1.4 When and Where
I am teaching two sections of CS 410, both online. Both sections use the same syllabus and course materials.
Scheduled Recitation Meetings will be held via Zoom. Meeting information can be found in Canvas under Course Collaboration Tool. Recordings of these meetings will be available under Media Gallery.
1.5 Instructor
Instructor | Office | Phone # | Home Page & Office Hours | |
---|---|---|---|---|
Thomas J. Kennedy | Dragas 1100D | 757.683.7725 | tkennedy@cs.odu.edu | https://www.cs.odu.edu/~tkennedy |
Important: All email related to this course should have the phrase CS 410 somewhere in the subject line. This flags your message in my mailbox for faster attention.
I try to respond to all (properly marked) messages
- before I leave campus each day (Monday through Friday)
- within 48 on weekends & holidays.
Any delays in replying to email will be noted in a Canvas Announcement.
1.5.1 Office Hours
My general office hours are available at https://www.cs.odu.edu/~tkennedy/. Instructions for scheduling a formal appointment are listed on the same page and here. My office hours consist of web-conference (Zoom) appointments.
General questions about course content and reports of website problems should normally be asked in the Forums on Canvas or via email.
2 Required Materials
2.1 Textbooks
There is no textbook for CS 410. All material will be provided through Canvas and the course site.
2.2 Supplemental Materials
All supplemental resources and materials will be available in Canvas.
2.3 Technology Requirements
2.3.1 Computer Accounts
Students will need an account on the CS Dept. Linux network to participate in this class. This account is unrelated to any University-wide account you may have from ODU’s Information Technology Services (ITS).
If you have had a CS Unix account in the recent past, you should find it still active with your login name, password, and files unchanged. If you have had an account and it has not been restored, contact the CS Dept systems staff at root@cs.odu.edu requesting that it be restored.
If you do not yet have such an account, go to the CS Dept. home page and look for “Account Creation” under “Online Services”. All students in this course are responsible for making sure they have a working CS Unix account prior to the second week of class.
3 Course Objectives
Upon successful completion of this course, students will have participated in the development of a set of documents that define a proposed research solution to a defined problem supported by formal presentations. Students will be required to use a combination of
-
knowledge gained from the series of courses completed at university
-
external experience from business or industry,
-
research efforts of the specific problem areas that are identified by mentors.
The problem contains aspects of requirements that a project manager would be required to solve in a commercial or research environment. Students will develop plans, analysis documents, and design documents for the various aspects of the project solution.
The use of current technology in the support of the design and development of the problem solution is a critical component of the process. Students will take on the role of project managers and be required to develop management level briefings through formal presentations.
The development of these briefings is expected to require research along with interviews of experts in the particular domain. One or more presentations will be a critical design review that seeks the approval for continuation of the project.
The various presentations will require students to work as individuals making a presentation, members of a team to prepare a group presentation as well as leaders of group efforts in support of the overall project.
4 Course Topics
- Project Analysis
- Project Interviewing
- Risk Analysis
- Group Interactions
- Simulation
- Prototyping
- Technical Writing
- Project Planning
- Project Resources
- COTS Hardware and Software
- Human/Computer Interface
- Presentation Techniques
5 Course Schedule
The course schedule is available in Canvas under Modules and Calendar. An alternate schedule/outline can be accessed at https://www.cs.odu.edu/~tkennedy/cs410/latest/Directory/outline/index.html.
6 Grading
Assignments | Collected Assignments | 10% | Individual |
Formal Presentation I | Project Analysis | 10% | Individual |
Formal Presentation II | Feasibility | 25% | Group/Individual |
Formal Presentation III | Project Design | 25% | Group/Individual |
Final Exam | Prototype Design/User Stories | 10% | Group/Individual |
Lab 1 | Lab 1 First Draft | 10% | Individual |
Project Website | GitHub Pages | 10% | Group |
Example 1: Grading Schema
Percent Letter Grade 4pt Value $\geq 94$ A 4.0 $\geq 90$ A- 3.7 $\geq 87$ B+ 3.3 $\geq 84$ B 3.0 $\geq 80$ B- 2.7 $\geq 77$ C+ 2.3 $\geq 74$ C 2.0 $\geq 70$ C- 1.7 $\geq 67$ D+ 1.3 $\geq 64$ D 1.0 $\geq 60$ D- 0.7 $< 59$ F 0.0
6.1 Presentations and Discussion Activities
Throughout the semester… discussion activities will be announced. These activities will include required discussion board activities. Details will be discussed during recitation and through Canvas Announcements. Discussion activities will be used to evaluate each team’s project as a whole and each student’s understanding of and contribution to the project. Discussion performance will be used to adjust individual grades for each presentation.
7 Course Policies
7.1 Attendance
Recitation attendance is not required. It is your responsibility to
- watch the recording of any recitation that you are unable to attend
- follow up with your team regarding any team feedback provided during recitation
- contribute meaningfully to development of presentation materials
7.2 Due Dates and Late Submissions
Late papers, assignments, projects, and make-up exams will not normally be permitted.
Exceptions will be made only in situations of unusual and unforeseeable circumstances beyond the student’s control, and such arrangements must be made prior to the due date in any situations where the conflict is foreseeable.
“I’ve fallen behind and can’t catch up”, “I’m having a busier semester than I expected”, or “I registered for too many classes this semester” are not grounds for an extension.
Extensions to due dates will not be granted simply to allow “porting” from one system to another. “But I had it working on my home PC!” is not an acceptable excuse.
7.3 Group Membership
You will be assigned to a team consisting of five (5) to nine (9) students. The assignment will be based on:
- project preferences based on an upcoming assignment
- requests to work with friends or colleagues
- instructor discretion based on course requirements
You will remain in your team for CS 410 and into CS 411W
7.4 Continuing into CS 411W
CS 410 and CS 411W are essentially “one course split into two (2) semesters.” When registering for CS 411W… you need to:
-
select a CS 411W lecture and recitation taught by your CS 410 teacher
-
try to select the same recitation as your team
-
check with your teacher regarding any additional scheduling considerations.
7.5 Contribution
You will recognize some prose CS 350. Much of this section is based on the CS 350 syllabus.
You will work as part of a team for most of the semester (i.e., from week 2 onward).
Your grade will include (and be based on)…
- Active participation within your team
- Active contribution to your team
- Active engagement with your team
Procrastination and just-before-the-deadline submissions are detrimental to any team dynamic, and will result in lowered grades.
7.6 Civility Among Team Members
You will recgnize some prose CS 350. Much of this section is based on the CS 350 syllabus.
You will be working with your team for many weeks, and there will be a lot of communication expected among team members.
In accordance with the Monarch Creed and Code of Ethics, I expect all students to maintain civility in their dealings with one another.
Language that is abusive, harassing, or threatening to members of the class or that fosters high levels of personal and emotional anxiety may, at the instructor’s discretion, result in expulsion from the team. Given the importance of the team project to this course, that is likely to result in a failing grade. Egregious or repeated violations will be referred to appropriate authorities for possible disciplinary action.
7.7 Unsatisfactory Performance
If a student fails to contribute meaningfully within his/her group, or a student feels he/she cannot contribute meaningfully within his/her group, the instructor or student may arrange a meeting. The meeting may be conducted face-to-face, via network conferencing, or via email. The instructor may consult other CS 410/411W instructors or ask other CS 410/411W instructors to attend the meeting.
During the meeting the instructor and student will discuss the student’s current contributions and expected contributions moving forward. The instructor and student will arrange a follow-up meeting. If by the follow-up meeting, the student has not made the expected (i.e., agreed upon) contributions he/she may not pass the course.
7.8 Academic Honesty
Everything turned in for grading in this course must be your own work. If an assignment is explicitly described as a team assignment, it must be the work of the team members only.
The instructor reserves the right to question a student orally or in writing and to use his evaluation of the student’s understanding of the assignment and of the submitted solution as evidence of cheating. Violations will be reported to the Office of Student Conduct & Academic Integrity for consideration for possible punitive action.
Students who contribute to violations by sharing their code/designs with others may be subject to the same penalties.
- Students are expected to use standard Unix protection mechanisms (
chmod
) to keep their assignments from being read by their classmates. Failure to do so will result in grade penalties, at the very least.
This policy is not intended to prevent students from providing legitimate assistance to one another. Students are encouraged to seek/provide one another aid in learning to use the operating system, in issues pertaining to the programming language, or to general issues relating to the course subject matter.
Students should avoid, however, explicit discussion of approaches to solving a particular programming assignment, and under no circumstances should students show one another their code for an ongoing assignment, nor discuss such code in detail.
Use of Online Resources
You may not post details of course assignments, projects, or tests at online Forums, Bulletin Boards, Homework sites, etc., soliciting help.
You may use information that you have not solicited but have located, subject to the following restrictions:
-
Just as when writing a paper, if you use someone else’s ideas, you must cite your sources appropriately. Within code, such citations appear in comments.
Example:
⋮ double x = 23.0; double xsqrt = sqrt(x); // Search algorithm based upon code by S Zeil at // https://www.cs.odu.edu/~zeil/cs361/latest/Public/functionAnalysis/index.html#orderedsequentialsearch int loc = 0; while (loc < arraySize && numbers[loc] < xsqrt) ⋮
-
Just as when writing a paper, if you use someone else’s words (code), you must cite your sources appropriately and mark the quoted text. Within code, such citations appear in comments.
Example:
⋮ double x = 23.0; double xsqrt = sqrt(x); // Begin quoted code from S Zeil at // https://www.cs.odu.edu/~zeil/cs361/latest/Public/functionAnalysis/index.html#orderedsequentialsearch int loc = 0; while (loc < listLength && list[loc] < searchItem) { ++loc; } // End quoted code ⋮
-
Failure to appropriately cite any such “found code” will be taken as evidence of plagiarism.
-
The overall principle stated in the first sentence of this section remains in effect. “Everything turned in for grading in this course must be your own work.” If the bulk of your assignment, code, paper, etc., are copied, even with appropriate citation, to the degree that, in the judgment of the instructor, you have not demonstrated your own knowledge of the course material, you will receive a zero for that exercise.
8 University Policies
8.1 Code of Student Conduct and Academic Integrity
The Office of Student Conduct & Academic Integrity (OSCAI) oversees the administration of the student conduct system, as outlined in the Code of Student Conduct. Old Dominion University is committed to fostering an environment that is: safe and secure, inclusive, and conducive to academic integrity, student engagement, and student success. The University expects students and student organizations/groups to uphold and abide by standards included in the Code of Student Conduct. These standards are embodied within a set of core values that include personal and academic integrity, fairness, respect, community, and responsibility.
8.2 Honor Pledge
By attending Old Dominion University, you have accepted the responsibility to abide by the Honor Pledge:
I pledge to support the Honor System of Old Dominion University. I will refrain from any form of academic dishonesty or deception, such as cheating or plagiarism. I am aware that as a member of the academic community it is my responsibility to turn in all suspected violations of the Honor Code. I will report to a hearing if summoned.
8.3 University Email Policy
Reformatted to follow https://ww1.odu.edu/about/policiesandprocedures/computing/standards/11/02.
8.3.1 Student Email
With the increasing reliance and acceptance of electronic communication, email is considered an official means for University communication. Old Dominion University provides each student an email account for the purposes of teaching and learning, research, administration, and service. It is important that all students are aware of the expectations associated with email use as outlined in the Student Email Standard.
8.3.2 Email Account Activation
It is the responsibility of every eligible student to activate MIDAS, the Monarch Identification and Authorization System, in order to obtain email access.
8.3.3 Expectations Regarding Use of Email
The email account provided by the University is considered to be an official point of contact for correspondence. Students are expected to check their official e-mail account on a frequent and consistent basis in order to stay current with University communications. Mail sent to the ODU email address may include notification of University-related actions, including academic, financial, and disciplinary actions. For more information about student email, please visit Student Computing.
8.3.4 Educational Uses of Email
University offices and instructors cannot validate that a communication coming by email is from an ODU student unless it comes from a valid ODU email address. If students send mail from non-ODU email accounts (e.g., Hotmail or Yahoo), faculty and staff are not obligated to respond and may request that official e-mail accounts be used.
8.4 Withdrawal
Enrollment in this course indicates your acceptance of its teaching focus, requirements, and policies. Please review the syllabus and the course requirements as soon as possible. If you believe that the nature of this course does not meet your interests, needs or expectations, if you are not prepared for the amount of work involved – or if you anticipate assignment deadlines or adherence to course policies will constitute an unacceptable hardship for you – you should drop the course by the drop/add deadline, which is listed in the ODU Schedule of Classes. Visit the Office of the University Registrar for more information.
8.5 Educational Accessibility
Old Dominion University is committed to ensuring equal access to all qualified students with disabilities in accordance with the Americans with Disabilities Act. The Office of Educational Accessibility (OEA) is the campus office that works with students who have disabilities to provide and/or arrange reasonable accommodations.
-
If you experience a disability which will impact your ability to access any aspect of my class, please present me with an accommodation letter from OEA so that we can work together to ensure that appropriate accommodations are available to you.
-
If you feel that you will experience barriers to your ability to learn and/or testing in my class but do not have an accommodation letter, please consider scheduling an appointment with OEA to determine if academic accommodations are necessary.
The Office of Educational Accessibility is located at 1021 Student Success Center and their phone number is (757) 683-4655. Additional information is available at the OEA website