Refer to Discussion Forum, Facilitator Introduction and Expectations
CS 372 - Advanced Programming and Algorithms
CS372 – ADVANCED PROGRAMMING AND ALGORITHMS (3). Develops advanced programming skills. Presents advanced features of program design and analysis, group programming, and large projects design and implementation. Introduces analysis of computer algorithms from an efficiency point of view.
CS208 Computer Science Fundamentals and CS362 Data Structures
In order to successfully participate in this course, students are expected to have completed the course prerequisites. The prerequisites for CS372 are CS208 and CS362, and the prerequisite for CS362 is CS361. Therefore, students must have completed CS208, CS361 and CS362 (or their equivalents) and have a working knowledge of the following topics within each course:
The previous two programming courses (CS361 and CS362) showed how to use various control structures (if-then, while-do, functions, etc) to control the flow of the program and how to use various data structures (enumerated types, arrays, records, linked lists, etc) to store program data.
This course will explore several additional aspects of programming. The new concepts to be covered in CS372 are:
CS372 is challenging and covers a substantial amount of material at a rapid pace. The only way to succeed in programming is to practice. Programming can require a significant amount of time each week. There will also be team projects in this course, which will demand timeliness. If you are not willing or able to spend the necessary time for programming and team coordination, please reconsider whether this is the correct time to attend this class.
Upon completion of this course, learners should be able to:
Malik, D.S. (2010). Data Structures using C++ ( 2nd edition). Boston, MA: Course Technology; ISBN-13: 978-0-324-78201-1.
1. A PC-compatible computer system running an MS Windows operating system.
2. A C++ Compiler -- the preferred compiler is the free Dev-C++ compiler The newest version of Dev-C++ (Orwell), can be downloaded from: http://sourceforge.net/projects/orwelldevcpp/files/Setup%20Releases/ Download the most recent version:
Dev-Cpp x.x.x MinGW x.x.x Setup.exe (32-bit version)
OR
Dev-Cpp x.x.x TDM-GCC x64 x.x.x Setup.exe (64-bit version)
WARNING: If you had an older version loaded on your computer from an earlier class, such as the Bloodshed Dev-C++ compiler, you must uninstall it before installing the newer version.
Other ANSI standard C++ compilers can be used, but the facilitator will be most familiar with the Dev-C++ compiler listed above, and will most likely use the Dev-C++ compiler to grade your programs. If a student chooses to use another compiler, it is the student's responsibility to obtain any help needed to use the software, and to insure that all assigned programs compile and run correctly on the Dev-C++ compiler. For team projects, the Dev C++ compiler will be the default, unless all team members agree on using another compiler.
As with most of Regis learning activities, using various software applications to accomplish assignments requires students to exercise a great deal of responsibility for learning how to successfully operate the software applications. This class assumes a working knowledge of the C++ compiler from CS362. There are, however, many quality books on the market that support novice users if a student needs them.
Students will be prepared to ask questions on unclear areas and to respond to questions about information in the assigned reading for week 1 (listed in grid on next page).
Online Format: Sign on to worldclass.regis.edu and become familiar with the course navigation of the Web Curriculum. Complete assignments above.
Classroom-based Format: Complete assignments above by the first night of class.
Week | Topics | Readings | Graded Assignments or Assessments (Percentage) |
---|---|---|---|
1 |
|
Chap 1: pgs 1 – middle of 8 (SW development); Chap 3: pgs 132 – top of 155 (pointer review); Chap 5: pgs 266 – 310 (linked list review); Chap 7, all (stacks); Chap 8, all (queues) Optional: Chap 1: 18-51 (classes) |
Participation in Discussions (10% for all 8 weeks) Programming Assn 1 (individual – stacks and queues) 10% |
2 |
|
Chap 5: pgs 310 – 320 (doubly linked lists) Chap 1: pgs 8 – 17 (big-O) |
Participation in Discussions Programming Assn 2 (individual - doubly linked lists) 10% |
3 |
|
Chap 9: all (searching/hashing) | Participation in Discussions Programming Assn 3 Design (team – searching/hashing) |
4 |
|
Chap 6: all (recursion) | Participation in Discussions Programming Assn 3 (team – searching /hashing) 10% Midterm Exam 20% |
5 |
|
Chap 10: pgs 534 – top of 552 (comparison sorts) Appendix F: pgs 825 – 826 (insertion sort analysis) |
Participation in Discussions Programming Assn 4 Design (team – sorting) |
6 |
|
Chap 10: 552 – 567 (complex sorts) Appendix F: pgs 826 – 832 (quick sort analysis) | Participation in Discussions Programming Assn 4 (team – sorting) 10% |
7 |
|
Chap 11: pgs 600 - 608 (binary trees), 616 – top of 628 (binary search trees) | Participation in Discussions |
8 |
|
Participation in Discussions Programming Assn 5 (individual – binary trees) 10% Final Exam – 20% |
|
TOTAL: 100% |
Assignments | Weighted Percentage |
---|---|
Programming Assignments (5) Program 1 (individual) Program 2 (team) Program 3 (individual) Program 4 (team) Program 5 (individual) Programming Total |
10 % 10 % 10% 10% 10 % 50 % |
Midterm Exam | 20 % |
Final Exam | 20 % |
Participation in Discussions (Classroom: and other class activities) | 10% |
TOTAL | 100 % |
Each programming assignment will involve designing and writing a program, using the concepts discussed in the book and class, and may also include submission of analyses, teammate evaluations, structure charts, test data and/or test plans. Note: Programs that do not compile, are not modular, or that use any global variables, will NOT be accepted.
One of the goals of this class is to learn how to design and implement a program as part of a programming team. Therefore, some of your assignments will be team-programming assignments. Note that although students will work in teams, the grades will be individual.
CS372 Late policies Due to the requirement to forms teams in this class, there will be a strict adherence to the late policy. Programming assignments will be graded, and then 2% will be deducted for each day the assignment is late, up to the maximum allowed. Programming assignments turned in more than 1 day late (for assns 1-3) or 4 days late (for assns 4-5) will be given a grade of zero, and no feedback will be given.
There will be a midterm exam and a final exam. Exam questions will be cumulative, taken from reading assignments and course content. Exams will not be accepted late.
If you added this course during the drop/add period, after class began on Monday, you are responsible for immediately notifying the instructor that you joined the course late. None of the course due dates will be extended for you. Even if a due date already passed when you added the course, late points will still be deducted.
If you are repeating this course (due to a previous withdraw or low grade), you are responsible for immediately notifying the instructor. Course assignments that you submitted when you last took the course cannot be repeated -- you will be required to complete alternate assignments.
Plagiarism includes submitting code or anything else that was obtained from any other person, publication, or any internet web source. All individual assignments submitted in CS372 must be your own. And team assignments must be the work of the team member only.
In cases of suspected cheating or plagiarism, the instructor will discuss the matter with the student(s) involved. The instructor reserves the right to question any student orally or in writing about any assignment, and to use the evaluation of the student's understanding of the assignment and of the submitted solution as evidence of cheating. All cheating incidents will be reported to the Computer Science department, and may also be reported to the Academic Integrity Board for further action.
Review the CCIS Policies on the Regis University website.
NOTE TO LEARNERS: On occasion, the course facilitator may, at his or her discretion, alter the Learning Activities shown in this Syllabus. The alteration of Learning Activities may not, in any way, change the Learner Outcomes or the grading scale for this course as contained in this syllabus. Examples of circumstances that could justify alterations in Learning Activities could include number of learners in the course; compelling current events; special facilitator experience or expertise; or unanticipated disruptions to class session schedule.