10000 things all ICS students should do before graduating

It’s Commencement time! So I thought I’d compile a list of 1010 10000 things I believe all ICS students should have done (by  themselves) by the time they get their diplomas. With luck, students have come across some of these in courses. Most likely, that won’t happen, so students need to make time for extra-curricular activities.

This list is inspired by others out there, but, as the title says, it’s about doing, as opposed to knowing or learning. First-hand experience is the absolute best route for exploring the fun things that can be done with computers. Once we make it work and/or surpass the hurdles, we feel empowered (startup companies, anyone?). It also builds up the critical skill of finding things out by oneself.

Here is my list, in no particular order:

0000 – Buy your own domain name.

0001 – Install an Apache web server and configure it in a non-trivial way, e.g. to serve multiple domains.

0010 – Install WordPress and have your own blog. Write blog posts regularly. Write well. Good writing is a critical skill to master in this profession.

0011 – Run your own web site at home or in a hosting company.

0100 – Write at least one complete LAMP web app, preferably two — one where P=PHP, the other where P=Python.

0101 – Have your own [physical or virtual] server on the cloud.

0110 – Install VMWare or equivalent in order to boot up your laptop with more than one OS.

0111 – Configure your home DSL router so that you serve a web site or other kind of server from your home machine / laptop to your friends.

1000 -Use a packet sniffer to learn about the network requests your computer does to your favorite game server.

1001 – Make contributions to an open source project.

1010 – Write an app that uses at least one of the popular Web APIs, like Facebook Connect or one of Google’s.

1011 – Use Google AdSense on your web site, and make money just by virtue of attracting traffic.

1100 – Compile a complicated open source project from scratch, like OpenSim orMatterhorn. (Thanks, Sean!)

1101 – Read works of literature and, besides enjoying the ride, pay close attention to how the author tells the story and makes use of words. Your programs should be as carefully written as those works of art! (Thanks, Beki!)

1110 – Get yourself involved in a software project where requirements are bound to change halfway through — that’s about 0.01% of homework projects and about 99.99% of real world projects, so find one of the latter kind. Finish the project with patience and the ability to take criticism in a constructive way. (Thanks, Lorraine!)

1111 – Write an application using map-reduce. Run it on Google app-engine or amazon EC2.


补全以下代码private String cid;// Course id, e.g., CS110. private String name;// Course name, e.g., Introduce to Java Programming. private Integer credit;// Credit of this course private GradingSchema gradingSchema; //Grading schema of this course // enum GradingSchema{FIVE_LEVEL, PASS_FAIL} private Integer capacity;// Course capacity. private Integer leftCapacity;// Course capacity left. You should update the left capacity when enrolling students. private Set<Timeslot> timeslots;// One course may have one or more timeslots. e.g., a lecture in Monday's 10:20-12:10, and a lab in Tuesday's 14:00-15:50. public Course(String cid, String name, Integer credit, GradingSchema gradingSchema, Integer capacity) // constructor public void addTimeslot(Timeslot timeslot) //Record a timeslot for this course private Integer id;// A unique student id, should be an 8-digit integer: Undergraduates' ids should start with 1; Postgraduates' ids should start with 3. e.g., 12213199. private String name;// Student’s name private Map<Course, Grade> courses;// Enrolled courses, using Map structure to store course and its grade as a pair. Grade is an enum type enum Grade{PASS,FAIL,A,B,C,D,F}with an attribute: Double gradePoint protected Student(Integer id, String name) // constructor public abstract boolean canGraduate() // Checks if this student satisfies all the graduating conditions. Hint: you are allowed to change this abstract method into non-abstract to check if the student satisfies the common graduation conditions. public void enroll(Course course) // Tries to enroll the course, do some checks before enrolling. public void recordGrade(Course course, Grade grade)// Records the grade of a course that is current learning. public double getGpa() // Calculates the GPA for this student. public UndergraduateStudent(Integer id, String name)// constructor public boolean canGraduate() //Additional graduating conditions for undergraduate students public PostgraduateStudent(Integer id, String name)// constructor public boolean canGraduate() //Additional graduating conditions for postgraduate students
06-02
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值