600.120 Intermediate Programming Summer 2014
Syllabus
https://sites.google.com/site/jhu600120/syllabus
Course Information:
Instructor: Dr. Anwar Mamat
email: anwarmamat@gmail.com
Course Meeting Times:
Mo/Tu/Th/Fr 9:00 am - 11:30 am [Maryland 30]
Office Hours: TBA
TA
Nishikant Deshmukh
Office Hours: Mo/Tu/Fr 12:00-2:00pm at Croft Hall 219 conference room
Phone: 443-562-2229
Email: nishikant@jhu.edu
Required Textbooks
1. The C Programming Language, Second Edition by Brian W. Kernighan and Dennis M. Ritchie.
2. C++ How to Program (5th Edition) ISBN: 0-13-185757-6
Online access is availabile for Hopkins students for 5th and 6th editions, which is what we will use. To get to the electronic versions, first go to the Johns Hopkins library website. Search for "Deitel C++" and click on the first result. There are two electronic versions listed on the right side, under the "FIND IT" icon. One is 5th edition and one is 6th edition. Click either to start reading it.
Prerequisites
AP CS, 600.107, 600.112 or equivalent.
Tutorials (Borrowed from Dr. Joanne Seliniski, http://www.cs.jhu.edu/~joanne/cs120/)
C reference card and a brief C tutorial.
Check out these pages for help on learning and using unix: CS undergrad/class accounts, Unix Overview, reference card.
Creating your own linux environment: installation instructions for VirtualBox and Lubuntu.
Help learning and using the vi editor (for unix): Tutorial, reference card
Here is a tutorial for several unix tools, including make, gdb, emacs and unix, from our friends at Stanford.
Here are some helpful makefile tutorials: tutor1, tutor2 .
Here is a gdb reference card.
C Programming vs. Java Programming
Course description
This course teaches intermediate to advanced programming, using C and C++. We will cover functional programming techniques using C in the first half of the semester. We will study object-oriented programming and design patterns using C++. Topics include C/C++ data types, arrays, bitwise operations, strings, recursion, dynamic memory allocation, polymorphism, inheritance, templates, and exceptions.
Course Objectives
-
To familiarize the trainee with basic concepts of computer programming and developer tools.
-
Write portable, modular and safe C code.
-
Develop complex object oriented systems in C++.
-
Use a variety of libraries for C and C++.
-
Work in a Unix environment.
-
Use development, measurement and testing tools.
Grading
Students will complete 7 programming projects, a midterm and a final. You are expected to attend and actively participate in class. These grading components will be weighted as below. All grades will be available on Blackboard.
60% - programming assignments
15% - mid-term (6/13, in class) Closed book. Students can bring one page 8*11 doubele-side cheat sheet.
20% - final (6/27, in class) [final exam will be comprehensive, covering all course material.]
5% - participation.
Assignments
There will be 7 programming assignments. Check the "Assignments" section for assignment details and due dates. If not otherwise specified, all assignments are individual assignments. Submit your solutions to Blackboard. Your solution must compile and run on the ugrad unix server. No credit will be given if your code does not compile.
Late Policy
No late assignment. Solutions to assignments will be available as soon as they are due. Write your program incrementally. If you do not have the perfect solution, submit the your working code with a README.txt file, in which you explain what parts you did not complete.
Attendance
You are required to attend all class sessions. If you have to miss a class, let me know in advance. You are responsible for all the materials while you are absent. I will stay in the classroom until 12:00pm to answer your questions. Contact me if you need extra help.
Academic integrity
All work turned in for grading or review by the instructors must be the your own work. You can reuse classroom examples and code from the textbook. But most of your code, you have write yourself from scratch. Presenting work that is not your own will result in disciplinary action. For more information, see the guide on "Academic Ethics for Undergraduates" and the Ethics Board web site.
Students with Disabilities
Any student with a disability who may need accommodations in this class must provide me with an accommodation letter from Student Disability Services (385 Garland, studentdisabilityservices@jhu.edu, (410) 516-4720).
|