CSC 221: Programming 2: Design and Object-Oriented Programming 1: 3 hours
Description
Description
A continuation of Programming 1. Students learn to design more complex larger object-oriented programs. Also includes graphical, event, and concurrent programming.
Goals for CSC 221 are:
- Write non-trivial programs on their own
- Understand and use OO program concepts well
- Improve the security of their program
- Understand the basics of multi-threaded programming
Course outcomes for CSC 221 are:
- Upon complete of CSC 221, students will:
- be able to design and code complex multi-object programs.
- be able to develop graphics based interfaces for programs
- understand the fundamentals of event and concurrent programming.
- understand the fundamentals of additional programming tools and environments including source code version software
Program outcomes for CSC 221 are:
- Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions. (Computing student learning outcome 1)
- Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program\x92s discipline. (Computing student learning outcome 2)
- Communicate effectively in a variety of professional contexts. (Computing student learning outcome 3)
- Recognize professional responsibilities and make informed judgments in computing practice based on legal, ethical, and moral principles. (Computing student learning outcome 4)
- Function effectively as a member or leader of a team engaged in activities appropriate to the program\x92s discipline. (Computing student learning outcome 5)
- Learn new areas of technology. (Computing student learning outcome 6)
- Apply computer science theory and software development fundamentals to produce computing-based solutions. (Computer Science student learning outcome 1)
- Support the delivery, use, and management of information systems within an information systems environment. (Computing and Information Systems student learning outcome 1)
- Apply security principles and practices to maintain operations in the presence of risks and threats. (Cyber Security student learning outcome 1)
Integration
- Self-learning at the introductory level by having some programming assignments that include using some simple features not covered in class
- Note taking at the introductory level by not posting lecture notes and holding students responsible for the content.
- Technical writing at the application level by requiring students to do a formal software development report and requiring quality writing (and grading the quality of the writing), Also by the end of the semester by refusing to accept reports that don't meet a bare min. standard (such as standards, spell check, using bullet lists as appropriate.
- Team work at the introductory level by having at least two assignments where students are working in teams
- Professionalism at the introductory level by having students estimate how long it takes to write programs and then analyze their estimate based on how long it actually took. They will also comment on what they learned and what they would want to to better with a program if they could.
- Cybersecurity at an introductory level by requiring students to document possible invalid input what happens for all programs. By the end of the semester, they should handle some of the invalid input (i.e. secure programming).
- Ethics at an introductory level by having at least one program assigned that could have ethical implications and having the students discuss that in their reports.
Details
- Professor: Dr. Cathy Bareiss
- Office SB 31
- Class Time: 2:00-2:50 MF
- Lab Time: 2:00-2:50 TR
- Class Location: S 025
- Textbook: Student membership in ACM. Resources from ACM Learning Center that will be used include:
- IST Introduction to Software TestingA Practical Guide to Testing, Design, Automation, and Execution. ISBN: 978-1-4842-9513-7. By Panagiotis Leloudas
- OOA Object-Oriented Analysis, Design and ImplementationAn Integrated Approach, Second Edition. ISBN: ISBN: 9783319242781. By Brahma Dathan and Sarnath Ramnath
- JID Java in Depth. ISBN: ISBN: 9789386551573. By SARIKA AGARWAL and HIMANI BANSAL
- BJP Beginning Java ProgrammingThe Object-Oriented Approach. ISBN: 978-1-118-73949-5. By Bart Baesens and Aimée Backiel and Seppe vanden Broucke
- JPS Java Programming SimplifiedFrom Novice to Professional - Start at the Beginning and Learn the World of Java. ISBN: 978-93-89845-143. By Dr. Muneer Ahmad Dar
- WGC Write Great CodeEngineering Software, Volume 3. ISBN: 978-1-59327-979-0. By Randall Hyde
Course Content
Policies
Assignments
There are two additional assignments involving reactions to current events. Announcements will
not be made in class. You are responsible to track these yourself. Standard late policy will apply to these assignments.
You are to react to current events/publications. A reaction to an article includes enough to convince me that you have read the entire article and not just the headline or first paragraph. It should include a summary of what was said and your reaction. Be sure to give a complete reference to the item. These should be turned in as a hard copy in class within one week of the item being published. You may pick when. Each one does have a deadline. The ones you pick must be unique to this course
- Write a reaction to one article in the ACM TechNews. It must be programming related. This needs to be completed by midterm.
- Write a reaction to one article in XRDS. It must be programming related. This needs to be completed before the final.
Other assignments/quizzes may be made throughout the semester
Labs
- Extra credit will only be made available based on the entire class needs. Such as an exam that most people did poorly on despite a good effort. Also each lab may have the opportunity to earn some extra credit. That should only be attempted if the regular lab is completed and done well.
Grades
Your grades are made up of:
- Grade scale
- 93% <= average <= 100% → A
- 90% <= average < 93% → A-
- 87% <= average < 90% → B+
- 83% <= average < 87% → B
- 80% <= average < 83% → B-
- 77% <= average < 80% → C+
- 73% <= average < 77% → C
- 70% <= average < 73% → C-
- 67% <= average < 70% → D+
- 63% <= average < 67% → D
- 60% <= average < 63% → D-
- 0% <= average < 60% → F
Tentative Schedule
Monday |
Tuesday Lab |
Thursday |
Friday Lab |
1/6 |
1/7 |
1/9: Class begin Class Day UML, GitHub, FSM, Objects OOA: 2.1-2.3 |
1/10: Objects lab. design/testing |
1/13: Objects/testing/cont. |
1/14: Objects d/t cont. |
1/16: Objects |
1/17: Objects: coding |
1/20: MLK Day no class |
1/21: Objects: coding cont. |
1/23: Interfaces and Inheritance |
1/25: Objects: TicTacToe design |
1/27: Inheritance |
1/28: Objects: TicTacToe design cont. |
1/30: Inheritance and interfaces |
1/31: Objects: coding |
2/3: Exam 1 |
2/4: Objects: coding |
2/6: GUI review |
2/7: GUI lab |
2/10: Secure programming |
2/11: GUI lab |
2/13: Secure programming |
2/14: Inheritance: design |
2/17: GUI review |
2/18: Inheritance: design cont. |
2/20: Merge Sort, Big 0, etc. |
2/21: Inheritance: coding |
2/24: Inheritance review |
2/25: Inheritance: coding |
2/27: SIGCSE Exam 2 |
2/28: SIGCSE Inheritance again: design |
3/3: Spring Break |
3/4: Spring Break |
3/6: Spring Break |
3/7: Spring break |
3/10: Inheritance review |
3/11: Redo Inheritance |
3/13: Inheritance review |
3/14: Redo inheritance |
3/17: In class project Redo due |
3/18: Inheritance again design cont. |
3/20: in class project |
3/21: Inheritance design cont. |
3/24: In class project Inherit 2 design due |
3/25: Inheritance again coding |
3/27: in class project |
3/28: Inheritance coding |
3/31: Linked lists |
4/1: Inheritance coding |
4/3: exam 3 |
4/4: Inheritance coding |
4/7: Linked lists Inheritance code due |
4/8: Missional AI Summit Last design |
4/10: Missional AI Summit |
4/11: Last design |
4/14: Queues |
4/15: Last coding Last Design Due |
4/17: Easter Break |
4/18: Easter Break |
4/21: Queues |
4/22: Last coding |
4/24: Exam 4 |
4/25: Last code (check canvas for due date) |
4/28: Finals Week Final Exam: 1:00-3:00 |
4/29: Finals Week |
5/1: Finals week |
5/2: Finals week |
Campus Integrity Policy
The student handbook (p. 156) states: Any act of deceit, falsehood or stealing by unethically copying or using someone elses work in an academic situation is strictly prohibited.
- A student found guilty of plagiarism or cheating will receive an F(zero) for that particular paper, assignment or exam. Should this occur, the professor will have an interview with the student and will submit a written report of the incident to the academic dean.
- If a second offense should occur, the student will be asked to appear before the professor, the academic dean and the vice president for student development.
The student should realize that at this point continuation in a course and even his/her academic career may be in jeopardy. In the event of a recommendation for dismissal, the matter shall be referred to the Student Development Committee.
AI Use Policy
It is expected that any coursework (including, but not limited to, essays, papers, exams, projects, and lab reports) submitted by a student will be a product of their own creation, demonstrating their achievement of the learning outcomes related to the assigned task. With this in mind, note that submitting work that includes unauthorized or undocumented use of Artificial Intelligence (AI) may be considered as cheating or plagiarism. If you are unsure about appropriate use of AI on a given assignment, talk with your professor.
Services
The Americans with Disabilities Act (ADA) is a law which provides civil rights protection for people with disabilities. Bethel University, in compliance with equal access laws, requests that students with disabilities seeking to acquire accommodations make an appointment with the Center for Academic SuccessDisability Services. It is located in the Miller-Moore Academic Center, 033. You may also phone 574-807-7460 or email
rachel.kennedy@betheluniversity.com.edu for an appointment.
Education Majors:
Please use the link below to review all appropriate standards.
Standards