CS 50x2 Accelerated Programming
|Dr. E. T. Hammerand|
|Office||CSM 125||Office Hours||11:30-12:30 TR|
other times by appointment.
|Phone||870-972-3978 ext. email@example.com|
Accelerated overview of each subject in the Computer Science undergraduate programming core (Structured Programming, OOP, and Data Structures). Corequisites: CS 5012, CS 5022, CS 5032. Fall.
Student Learning Outcomes
After completion of this course, students will have met the following student learning outcomes:
- Demonstrate a general understanding of computing technology.
- Design and implement programs in the C++ programming language.
- Ability to use an industry-standard toolchain for writing, compiling, and executing C++ code.
- Demonstrate an understanding of the basic principles of computer programming.
- Demonstrate an understanding of the Structured Programming paradigm.
- Develop algorithms and programs to apply mathematical concepts.
- Apply critical thinking and problem-solving skills to develop solutions to non-trivial programming problems.
- Demonstrate technical communication skills through written algorithms and code documentation.
- Understanding Abstract Data Types: motivations and basic concepts.
- Understanding of the behavior of basic data structures (lists, stacks, queues, trees (binary trees and tree traversals), graphs).
- Ability to analyze a problem and determine the appropriate data structure for the problem.
- Understand the importance of data modeling and data structures in advanced programming.
- Understand and analyze elementary algorithms: sorting and searching.
- Ability to analyze the impact of data structures technique on the performance of algorithms (time and space complexity)/programs.
- Data structure implementation issues. Understanding of dynamic versus array implementations of data structures, factors involved in deciding on an implementation technique.
- Practice in writing modular programs using the data structures that have been studied.
- Understanding the mechanics of code design, organization, and the development environment.
- Understanding data structure implementation in C++ using header files and implementation files.
- Demonstrate adeptness of object oriented programming in developing solutions to problems demonstrating usage of data abstraction, encapsulation, and inheritance
- Be familiar with basic techniques of algorithm analysis
- Be familiar with writing recursive methods
- Be familiar with advanced data structures such as balanced search trees, hash tables, priority queues and the disjoint set union/find data structure
- Be familiar with several advanced sorting algorithms including quicksort, mergesort and heapsort
- Be familiar with some graph algorithms such as shortest path and minimum spanning tree
- Master analyzing problems and writing program solutions to problems using the above techniques
CS 5012/5022/5032 is intended to provide core undergraduate Computer Science competencies linked to the following B.S. degree-level student learning outcomes:
- Graduates of the B.S./B.A. Computer Science degree program attain the ability to apply knowledge of computing and mathematics appropriate to the discipline.
- Graduates of the B.S./B.A. Computer Science degree program attain the ability to analyze a problem, and identify and define the computing requirements appropriate to its solution.
- Graduates of the B.S./B.A. Computer Science degree program attain the ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs.
- Graduates of the B.S./B.A. Computer Science degree program attain an understanding of professional, ethical, legal, security and social issues and responsibilities.
- Graduates of the B.S./B.A. Computer Science degree program attain the ability to analyze the local and global impact of computing on individuals, organizations, and society.
- Graduates of the B.S./B.A. Computer Science degree program attain recognition of the need for and an ability to engage in continuing professional development.
- Graduates of the B.S./B.A. Computer Science degree program attain the ability to use current techniques, skills, and tools necessary for computing practice.
- C++: types, operators, variables, program structure/syntax
- Selection and repetition
- Functions (pass-by-value and pass-by reference)
- Recursion: Writing recursive functions. Direct and indirect recursion
- Introduction to complexity analysis
- Arrays and Pointers
- Sorting, searching (BubbleSort)
- Structures VS. parallel arrays,
- Starting Out with C++ From Control Structures Through Objects, 8th ed. (ISBN: 9780133769395), by Gaddis, Tony. Addison Wesley
- Data Structures and Algorithms in C++, 4th ed. (ISBN-13: 978-1-133-60842-4), by Adam Drozdek, Cengage Learning
You can access this server using your LDAP account. Check your A-State email for an email from admin at cs.astate.edu that contains your CS LDAP Account information. All student accounts are reset every semester.
The following are required if you want to use your own computer for programming assignments. All requirements can be met by software available for free download online; commercial versions are also acceptable, if you prefer. The software listed below is installed on all lab computers in the CSM building.
- programmer's text editor (such as Komodo Edit - http://www.openkomodo.com/)
- secure shell client (such as MobaXterm - http://mobaxterm.mobatek.net/)
- a compiler such as
Attendance will be taken each day. If you must miss a class, it is your responsibility to cover the material that was covered in class on that day. Check the course website and contact the course instructor if you must miss a class. If you must miss an exam, quiz, or other in-class assignment, you should alert the instructor before the class meeting; failure to do so may result in your being unable to make up the work. Any arrangements for make up exams, quizzes, or other in-class assignments will be expected to result in completion of the work within three business days of the absence except in extreme circumstances.
Homework will be assigned regularly to reinforce the lecture material. The homework due dates will be posted with the assignment. Assignments will be graded according to the Computer Science Program Guidelines. Late homework will receive reduced credit as shown below. We will also have short weekly exams (quizzes).
|Grade Breakdown||Grading Scale||Late Homework Penalty|
|Exams/Quizzes||50%||90 - 100||A||1 day late||-10%|
|Homework||25%||80 - 89||B||2 days late||-30%|
|Final Exam||25%||70 - 79||C||3 days late||-50%|
|60 - 69||D||4 or more days late||-100%|
Please be respectful of others and realize that this is a learning environment. Discussion is encouraged, but please try to remain on-topic. Always be on time for class (excessive tardiness will count as absence). Although you are encouraged to discuss problems and assignments with each other, cheating (including, but not limited to, plagiarism) is unacceptable and will not be tolerated. If you are caught cheating, you will receive a zero score for that assignment and the Department and/or University may choose to take further action (See the Academic Misconduct Policy in the ASU Student Handbook. Turn off or silence all cell phones and other noisy electronic devices (including music players) during class. All electronic equipment is prohibited during exams, and all caps or hats which cover the eyes must be removed or turned backward. Students who become disruptive to the class will be asked to leave.
- Students who require academic adjustments in the classroom due to a disability must first register with ASU Disability Services. Following registration and within the first two weeks of class, please contact me to discuss appropriate accommodations. Appropriate arrangements can be made to ensure equal access to this course.
- Official grades must be obtained from the Student Self-Service website, or in person during my office hours. Neither the department secretaries nor I can discuss grades over the phone. You can track your progress in this course from the "Grades" section of the CSCADE (http://cscade.cs.astate.edu) website.
- Any other questions should be directed to the course instructor through email or during my office hours. This is a general policy statement and is subject to change by the instructor. More policies and information are available on the course website. Please read and be familiar with the information there as well.