Difference: CSC122SylF2022 (13 vs. 14)

Revision 142022-11-14 - cathybareiss

Line: 1 to 1
 
META TOPICPARENT name="SyllabiFall2022"

CSC 122: Programming 2: Data Structures: 3 hours.

Description

A continuation of Programming 1. Students learn data structures including stacks, queues, trees, lists, graphs. Other data structures and sorting and searching are covered. Students learn both how to use the data structures via standard api's and how to implement them. 2 lectures and one lab per week. Lab: CSC 122. Prerequisite: CSC 121

Goals for CSC 122 are:

  1. Enhance the ability to program
  2. Understand different data structures
  3. Be able to use different data structures well

Course outcomes for CSC 122 are:

  • Upon completion of CSC 122, students will know:
    • how to use and build different data structures including stacks, queues, trees, graphs, and lists
    • a number of different searches and sorts (including O(nlogn) sorts)
    • how to identify Big-O for given algorithms
    • how to completely document code and programs
    • how to thoroughly test a program (including most error conditions)
    • how to identify some potential security issues with code being developed
    • the importance of designing before coding and practice it when warranted.

Program outcomes for CSC 122 are:

  1. Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions. (Computing student learning outcome 1)
  2. Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline. (Computing student learning outcome 2)
  3. Communicate effectively in a variety of professional contexts. (Computing student learning outcome 3)
  4. Recognize professional responsibilities and make informed judgments in computing practice based on legal, ethical, and moral principles. (Computing student learning outcome 4)
  5. Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline. (Computing student learning outcome 5)
  6. Learn new areas of technology. (Computing student learning outcome 6)

Integration

  1. Self-learning at the introductory level by having some programming assignments that include using some simple features not covered in class (such as using a pre-defined data type)
  2. Note taking at the introductory level by not posting lecture notes and holding students responsible for the content.
  3. 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.
  4. Team work at the introductory level by having at least two assignments where students are working in pairs with one developing the data structure and the other using it. Students need to take on both roles during the semester. Students also might have a third assignment where they are assigned one of the two roles and they have a partner that they don't know and must only communicate via the interface.
  5. Professionalism at the introductory level by having students track how long it takes to write programs (so that they are better equip to estimate this in the future) and comment on what they learned and what they would want to to better with a program if they could.
  6. 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).
  7. 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.
Line: 22 to 22
 
  1. Hashing
  2. Using a binary tree to do Huffman codes
  3. Own data structure
Changed:
<
<
  1. Graphs
>
>
  1. Coloring Graphs
 

Homework, Assignments, Quizzes, etc.

Changed:
<
<
  1. Reactions 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 s 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. These must be unique to this course.
>
>
  1. Reactions 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 s 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. These must be unique to this course.
 
    1. Write a reaction to one article in the ACM TechNews. This needs to be completed by midterm.
    2. Write a reaction to one article in XRDS. This needs to be completed before the final.
    3. Write a reaction to one article in the Communication of the ACM. This needs to be completed before the final
Changed:
<
<
  1. Other assignments or quizzes as assigned.
>
>
  1. Other assignments or quizzes as assigned.
 

Extra credit

Changed:
<
<
To be eligible for extra credit you must be attending class 80% of the time (according to when you turn it in). If you are in sports that causes you to miss class, you should not be missing class on any of the other days.

>
>
To be eligible for extra credit you must be attending class 80% of the time (according to when you turn it in). If you are in sports that causes you to miss class, you should not be missing class on any of the other days.

 There are three types of extra credit available:
Changed:
<
<
  1. Extra credit for an assignment or exam. This will be if I determine to offer the entire class some credit for improving work on a given item. This will be used to raise the grade on that item. Details will be given in class when/if this happens.
  2. The College Gems. This can have a direct impact on your grade. See that page for more details
  3. Extra credit that will be used at the end of the class to decide if I should "bump" you up to the next mark.
>
>
  1. Extra credit for an assignment or exam. This will be if I determine to offer the entire class some credit for improving work on a given item. This will be used to raise the grade on that item. Details will be given in class when/if this happens.
  2. The College Gems. This can have a direct impact on your grade. See that page for more details
  3. Extra credit that will be used at the end of the class to decide if I should "bump" you up to the next mark.
 
    1. There may be events that I give extra credit for attending. To earn this, you must attend the event (in person unless otherwise stated) and write a 1/2 page summary of what was said. This is to be turned in as a hard copy within 3 working days of the event.
    2. Do a second reaction to an article in the Communications of the ACM
    3. Do a second reaction to an article in the ACM TechNews.
Line: 76 to 77
 
Oct 17
Hashing B cont.
Oct 19
Review of Sorts
Oct 20
Tree Design
Oct 21
Exam 2
Oct 24
Tree D cont.
Oct 26
Chapter 8
Oct 27
Tree Build
Oct 28
Chapter 8
Oct 31
Tree B cont.
Nov 2
Chapters 8 & 9
Nov 3
Own Design
Nov 4:
Chapter 9
Changed:
<
<
Nov 7
Own D cont.
Nov 9
Advanced data structures
Nov 10: CCSC:SE
Own Build
Nov 11: CCSC SE
Exam 3
>
>
Nov 7
Own D cont.
Nov 9
Advanced data structures
Nov 10: CCSC:SE
Own Build
Nov 11: CCSC SE
Exam 3
 
Nov 14
Own B cont.
Nov 16
Chapter 12
Nov 17
Graph Design
Nov 18
Chapter 12
Nov 21
Graph D cont.
Nov 23
Chapter 12
Nov 24: Thanksgiving break Nov 25: Thanksgiving break
Nov 28
Graph Build
Nov 30
Chapter 12
Dec 1
Graph B cont.
Dec 2: Exam 4
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2026 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback