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.